UNPKG

@cosmicmind/patternjs

Version:

A library of Design Patterns in TypeScript.

16 lines 786 B
export type ObservableTopics = { readonly [K: string]: unknown; }; export type ObservableTopicMap<T extends ObservableTopics> = { [K in keyof T]: Set<((message: T[K]) => void)>; }; export declare class Observable<T extends ObservableTopics> { protected readonly topics: Partial<ObservableTopicMap<T>>; constructor(); subscribe<K extends keyof T>(topic: K, ...fn: ((message: T[K]) => void)[]): void; once<K extends keyof T>(topic: K, ...fn: ((message: T[K]) => void)[]): void; unsubscribe<K extends keyof T>(topic: K, ...fn: ((message: T[K]) => void)[]): void; protected publish<K extends keyof T>(topic: K, message: T[K]): () => void; protected publishSync<K extends keyof T>(topic: K, message: T[K]): void; } //# sourceMappingURL=Observable.d.ts.map