/** * Cross-tab messaging bus — BroadcastChannel with localStorage fallback. * No secrets on the wire; payloads must be non-sensitive sync signals only. */ export interface CrossTabEnvelope { tabId: string; sequence: number; payload: TMessage; } export interface CrossTabPublishOptions { /** * When true (default), notify same-tab subscribers synchronously on publish. * Auth buses that already apply local side effects should pass false so * publish is cross-tab only (BroadcastChannel + storage) — avoids self-echo. */ readonly notifyLocalSubscribers?: boolean; } export interface CrossTabBus { publish(message: TMessage, options?: CrossTabPublishOptions): void; subscribe(handler: (msg: TMessage) => void): () => void; close(): void; } interface CrossTabBusOptions { readonly channelName: string; readonly debounceMs?: number; } export declare function createCrossTabBus(options: CrossTabBusOptions): CrossTabBus; export {}; //# sourceMappingURL=CrossTabBus.d.ts.map