import type { AgentSession } from "../../session/agent-session.js"; import { STTController } from "../../stt/index.js"; import type { RpcDictationFrame } from "./rpc-types.js"; /** The controller surface used by RPC; tests can substitute the microphone boundary. */ export type RpcDictationController = Pick; export type RpcDictationControllerFactory = (session: AgentSession) => RpcDictationController; /** Owns one draft-only native microphone capture for an RPC session. */ export declare class RpcDictationBridge { #private; constructor(session: AgentSession, output: (frame: RpcDictationFrame) => void, createController?: RpcDictationControllerFactory); get active(): boolean; /** Resolves only when the microphone is recording; stopping a pending start cancels it. */ start(id: string): Promise; /** Stops the mic and flushes transcription, or returns empty text with no capture. */ stop(): Promise<{ text: string; }>; /** Cancel pending work and close the microphone immediately when the RPC process is going away. */ dispose(): void; }