ag-charts-community
Version:
Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue
11 lines (10 loc) • 564 B
TypeScript
export interface PerWindowEntry<S> {
subscribers: Set<S>;
}
export interface PerWindowRegistry<S, E extends PerWindowEntry<S>> {
subscribe(window: Window, subscriber: S): () => void;
/** Returns a snapshot copy so callers can iterate safely while subscribers self-unsubscribe. */
snapshot(entry: E): S[];
get(window: Window): E | undefined;
}
export declare function createPerWindowRegistry<S, E extends PerWindowEntry<S>>(onFirstSubscribe: (window: Window) => E, onLastUnsubscribe: (entry: E) => void, name?: string): PerWindowRegistry<S, E>;