/**
 * Host side of a collab live session.
 *
 * Taps the host session's event stream and SessionManager append chokepoint,
 * broadcasting entries/events/state to guests through the relay. Guests prompt
 * and abort through us; the host machine runs the agent and tools. The host's
 * subagent ecosystem is mirrored too: task EventBus traffic (observer HUD),
 * agent-registry snapshots (Agent Hub table), hub chat/kill/revive commands,
 * and incremental subagent-transcript reads.
 */
import type { InteractiveModeContext } from "../modes/types";
import { type CollabParticipant } from "./protocol";
/** Display name for this process's user in collab sessions. */
export declare function collabDisplayName(ctx: InteractiveModeContext): string;
export declare class CollabHost {
    #private;
    constructor(ctx: InteractiveModeContext);
    get link(): string;
    /** Browser deep link (`https://<relay>/#<link>`) — the relay serves the web client at `/`. */
    get webLink(): string;
    /** Read-only variant of {@link link}: bare room key, no write token. */
    get viewLink(): string;
    /** Read-only variant of {@link webLink}. */
    get webViewLink(): string;
    get participants(): CollabParticipant[];
    start(relayUrl: string): Promise<void>;
    /** Broadcast a goodbye, detach all taps, and close the socket. */
    stop(reason: string): Promise<void>;
}
