export type AdapterBackend = "openai-realtime" | "gemini-live"; export interface ClientAudioMessage { type: "audio"; audio: string; } export interface ClientVideoFrameMessage { type: "video_frame"; frame: string; mimeType: string; source?: "camera" | "screen"; } export interface ClientTextMessage { type: "text"; text: string; } export interface ClientFileMessage { type: "file"; name: string; mimeType: string; data: string; text?: string; } export type ClientMessage = ClientAudioMessage | ClientVideoFrameMessage | ClientTextMessage | ClientFileMessage; export interface ServerAudioDelta { type: "audio_delta"; audio: string; } export interface ServerTranscript { type: "transcript"; role: "user" | "assistant"; text: string; partial?: boolean; } export interface ServerAgentWorking { type: "agent_working"; query: string; } export interface ServerAgentDone { type: "agent_done"; result: string; } export interface ServerToolCall { type: "tool_call"; toolName: string; args: Record; } export interface ServerToolResult { type: "tool_result"; toolName: string; content: string; isError: boolean; } export interface ServerAgentThinking { type: "agent_thinking"; text: string; } export interface ServerError { type: "error"; message: string; } export interface ServerInterrupt { type: "interrupt"; } export interface ServerFilesChanged { type: "files_changed"; } export interface ServerMemorySaving { type: "memory_saving"; status: "start" | "done"; text?: string; } export interface ServerLogEntry { type: "log_entry"; entry: { id: number; ts: string; source: string; level: string; message: string; }; } export type ServerMessage = ServerAudioDelta | ServerTranscript | ServerAgentWorking | ServerAgentDone | ServerToolCall | ServerToolResult | ServerAgentThinking | ServerError | ServerInterrupt | ServerFilesChanged | ServerMemorySaving | ServerLogEntry; export interface MultimodalAdapter { connect(opts: { toolHandler: (query: string) => Promise; onMessage: (msg: ServerMessage) => void; }): Promise; send(msg: ClientMessage): void; disconnect(): Promise; } export interface MultimodalAdapterConfig { apiKey: string; model?: string; voice?: string; instructions?: string; } export interface VoiceServerOptions { port?: number; adapter: AdapterBackend; adapterConfig: MultimodalAdapterConfig; agentDir: string; model?: string; env?: string; } export type VoiceAdapterConfig = MultimodalAdapterConfig; export type VoiceAdapter = MultimodalAdapter; export declare const DEFAULT_VOICE_INSTRUCTIONS: string;