/** The tag's lifecycle for one viewer: `set()` once the startup checkpoint has * cleared, `clear()` on teardown so a stray tag can't outlive the pane. * `pane()` is the id teardown reports as this viewer's home. * * Split into a claim + a clear because ordering matters: a remote relay's "no * node"/"no running broker" close can still throw AFTER the socket is up, so * the tag is claimed only past that checkpoint — while `clear()` must be safe * to call from a teardown that runs before it was ever claimed. */ export declare function createPaneTag(remote: boolean, nodeId: string): { set: () => void; clear: () => void; pane: () => string | undefined; }; export declare function tagAttachPane(remote: boolean, pane: string | undefined, nodeId: string, setOpt?: (pane: string, name: string, value: string) => void): void; export declare function untagAttachPane(remote: boolean, pane: string | undefined, setOpt?: (pane: string, name: string, value: string) => void): void;