@towns-protocol/sdk
Version:
For more details, visit the following resources:
33 lines • 1.06 kB
TypeScript
interface Subscription<T> {
id: number;
fn: (value: T, prevValue: T) => void;
condition: (value: T) => boolean;
once: boolean;
}
export declare class Observable<T> {
private _nextId;
protected subscribers: Subscription<T>[];
protected _value: T;
protected _dispose?: () => void;
constructor(value: T);
get value(): T;
set(fn: (prevValue: T) => T): boolean;
setValue(newValue: T): boolean;
subscribe(subscriber: (newValue: T, prevValue: T) => void, opts?: {
fireImediately?: boolean;
once?: boolean;
condition?: (value: T) => boolean;
}): () => void;
when(condition: (value: T) => boolean, opts?: {
timeoutMs: number;
description?: string;
}): Promise<T>;
unsubscribe(subscriber: (value: T, prevValue: T) => void): void;
map<U>(fn: (value: T, prevValue: T, prevResult?: U) => U): Observable<U>;
throttle(ms: number): Observable<T>;
dispose(): void;
private notify;
private _notify;
}
export {};
//# sourceMappingURL=observable.d.ts.map