interface BroadcastMessage { type: string; payload?: T; senderId: string; targetId?: string; timestamp: number; } type MessageHandler = (message: BroadcastMessage) => void | Promise; type SyncRequestHandler = () => T | Promise; export declare class SyncBroadcastChannel { private channel; private readonly tabId; private messageHandlers; private syncHandler?; private syncTimeoutMs; private closed; private pendingSyncRequests; constructor(channelName: string); private error; private handleMessage; private handleError; private postMessage; /** * Подписка на сообщения канала */ subscribe(handler: MessageHandler): () => boolean; /** * Установка обработчика запросов на синхронизацию */ setSyncHandler(handler: SyncRequestHandler): void; /** * Отправка сообщения всем подписчикам */ broadcast(type: string, payload?: T): void; /** Закрыт ли канал (dev double-mount / teardown). Потребители могут пропустить initial-sync. */ get isClosed(): boolean; /** Запрос синхронизации данных с других вкладок. */ requestSync(): Promise; /** * Закрытие канала */ close(): void; } export {};