import { type RoomClipboard } from './store'; /** Another same-origin editor tab with a map open, discovered over BroadcastChannel. */ export interface PeerInfo { tabId: string; fileName: string; roomCount: number; } /** Rooms sent over from another tab, waiting for the user to place them. */ export interface IncomingRooms { fromFileName: string; clipboard: RoomClipboard; } /** Broadcast this tab's current map (or lack of one) to the other tabs. */ export declare function announceSelf(): void; /** Ask every tab to re-announce — used to refresh names/counts when the context menu opens. */ export declare function refreshPeers(): void; /** Send a room snapshot to another tab. The receiver acks the transfer; if no ack * arrives within the timeout the peer is presumed gone and dropped from the list. * Outcome is reported via the status bar. */ export declare function sendRoomsToPeer(peer: PeerInfo, clipboard: RoomClipboard): void; /** Open the cross-tab channel. Returns a cleanup that says goodbye and closes it. */ export declare function initPeers(): () => void;