import type { VoiceConnectOptions, VoiceProvider, VoiceSession } from './voice.js'; export interface OpenAIRealtimeVoiceProviderOptions { apiKey: string; /** Realtime model id. Default `gpt-realtime`. */ model?: string; /** Override base URL — useful for Azure or compatible gateways. */ baseUrl?: string; /** Provider name override for telemetry. Default `openai-realtime`. */ name?: string; /** Extra headers (e.g. organization id). */ headers?: Record; } /** * OpenAI Realtime voice provider. Connects via WebSocket; emits * `audio_delta` / `text_delta` / `transcript` / `tool_call` / `response_done` * events. No transitive dependency on `ws` — uses the global `WebSocket` * available on Node 22+ and browsers. * * ```ts * const provider = new OpenAIRealtimeVoiceProvider({ apiKey }); * const session = await provider.connect({ * instructions: 'You are a friendly intake agent.', * voice: 'alloy', * tools: [submitField], * }); * for await (const event of session.events()) { * if (event.type === 'audio_delta') speaker.write(event.audio); * if (event.type === 'tool_call') { * const output = await runTool(event.name, event.input); * await session.submitToolResult({ id: event.id, output }); * } * if (event.type === 'response_done') break; * } * ``` */ export declare class OpenAIRealtimeVoiceProvider implements VoiceProvider { readonly name: string; private readonly apiKey; private readonly model; private readonly baseUrl; private readonly extraHeaders; constructor(options: OpenAIRealtimeVoiceProviderOptions); connect(options?: VoiceConnectOptions): Promise; } //# sourceMappingURL=voice-openai-realtime.d.ts.map