export interface PerWindowEntry { subscribers: Set; } export interface PerWindowRegistry> { 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>(onFirstSubscribe: (window: Window) => E, onLastUnsubscribe: (entry: E) => void, name?: string): PerWindowRegistry;