/**
 * Data-channel event bridge.
 *
 * Connects NeuroLink's event emitter to the LiveKit room's data channel: it
 * forwards NeuroLink events (text deltas, tool start/result, HITL prompts,
 * stream lifecycle) to the browser as small versioned envelopes, and accepts
 * control messages (HITL responses) back, re-emitting them onto the emitter so
 * NeuroLink's HITL manager resolves.
 *
 * This is the WebRTC counterpart of the chat-mode SSE controller: same event
 * source, different transport. The browser renders the envelopes (transcript,
 * tool status, charts, confirmation prompts).
 *
 * `@livekit/rtc-node` is an optional dependency, imported dynamically only for
 * the `RoomEvent` enum value. All payloads arrive typed as `unknown` and are
 * narrowed with runtime guards — no type assertions.
 *
 * See docs/features/livekit-voice-agent.md.
 */
import type { LiveKitEventBridgeHandle, LiveKitEventBridgeParams } from "../../types/index.js";
/**
 * Attach the data-channel event bridge to a room.
 *
 * Returns a handle whose `dispose()` removes every listener and stops
 * publishing; it is safe to call more than once.
 */
export declare function attachEventBridge(params: LiveKitEventBridgeParams): Promise<LiveKitEventBridgeHandle>;
