@daiso-tech/core
Version:
The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.
45 lines (44 loc) • 1.9 kB
TypeScript
/**
* @module Lock
*/
import type { ISerdeTransformer } from "../../../../serde/contracts/_module-exports.js";
import { Lock, type ISerializedLock } from "../../../../lock/implementations/derivables/lock-provider/lock.js";
import type { OneOrMore } from "../../../../utilities/_module-exports.js";
import type { ILockAdapter, LockEventMap } from "../../../../lock/contracts/_module-exports.js";
import { type ILockStore } from "../../../../lock/implementations/derivables/lock-provider/lock-state.js";
import { TimeSpan, type KeyPrefixer } from "../../../../utilities/_module-exports.js";
import type { LazyPromise } from "../../../../async/_module-exports.js";
import type { IEventBus } from "../../../../event-bus/contracts/_module-exports.js";
/**
* @internal
*/
export type LockSerdeTransformerSettings = {
adapter: ILockAdapter;
lockStore: ILockStore;
keyPrefixer: KeyPrefixer;
createLazyPromise: <TValue = void>(asyncFn: () => PromiseLike<TValue>) => LazyPromise<TValue>;
defaultBlockingInterval: TimeSpan;
defaultBlockingTime: TimeSpan;
defaultRefreshTime: TimeSpan;
eventBus: IEventBus<LockEventMap>;
serdeTransformerName: string;
};
/**
* @internal
*/
export declare class LockSerdeTransformer implements ISerdeTransformer<Lock, ISerializedLock> {
private readonly adapter;
private readonly lockStore;
private readonly keyPrefixer;
private readonly createLazyPromise;
private readonly defaultBlockingInterval;
private readonly defaultBlockingTime;
private readonly defaultRefreshTime;
private readonly eventBus;
private readonly serdeTransformerName;
constructor(settings: LockSerdeTransformerSettings);
get name(): OneOrMore<string>;
isApplicable(value: unknown): value is Lock;
deserialize(serializedValue: ISerializedLock): Lock;
serialize(deserializedValue: Lock): ISerializedLock;
}