import { type H3Event } from "h3"; import { type ActionEntry } from "../agent/production-agent.js"; export declare const REALTIME_VOICE_SESSION_PATH = "/_agent-native/realtime-voice/session"; export declare const REALTIME_VOICE_TOOL_PATH = "/_agent-native/realtime-voice/tool"; export declare const REALTIME_VOICE_MAX_SDP_BYTES: number; export declare const REALTIME_VOICE_MAX_TOOL_BODY_BYTES: number; export declare const REALTIME_VOICE_MAX_TOOL_OUTPUT_CHARS = 16000; export declare const REALTIME_VOICE_MAX_TOOLS = 32; export declare const REALTIME_VOICE_MAX_TOOL_SCHEMA_BYTES = 32000; export declare const REALTIME_VOICE_MAX_SESSION_BYTES = 64000; export declare const REALTIME_VOICE_TOOL_GRANT_TTL_MS: number; export declare const REALTIME_VOICE_MAX_TOOL_GRANT_SESSIONS = 256; export declare const REALTIME_VOICE_CAPABILITY_HEADER = "X-Agent-Native-Realtime-Capability"; export interface RealtimeVoiceRequestContext { event: H3Event; userEmail: string; orgId?: string; browserTabId?: string; } export interface RealtimeVoiceToolExecutionRequest extends RealtimeVoiceRequestContext { name: string; args: Record; callId: string; sessionId?: string; } export interface RealtimeVoiceToolExecutionResult { status: "completed" | "failed" | "approval_required"; output: string; approvalKey?: string; } export interface MountRealtimeVoiceRoutesOptions { /** Server-controlled model. Defaults to gpt-realtime-2.1. */ model?: string; /** Server-controlled output voice. Defaults to marin. */ voice?: string; /** Static app guidance appended to the safe default voice instructions. */ instructions?: string; /** Per-request app/navigation guidance. It is sent only to OpenAI. */ getInstructions?: (context: RealtimeVoiceRequestContext) => string | null | undefined | Promise; /** Optional app-specific active-organization resolver. */ resolveOrgId?: (event: H3Event) => string | null | undefined | Promise; /** * Central agent tool executor supplied by the agent-chat plugin. The executor * owns validation, approval, journaling, timeout, mutation notification, and * action-result normalization; this transport must not call ActionEntry.run. */ executeTool: (request: RealtimeVoiceToolExecutionRequest) => RealtimeVoiceToolExecutionResult | Promise; } export declare function resolveRealtimeVoiceTranscriptionLanguage(acceptLanguage: string | null | undefined): string; export declare function resolveRealtimeVoiceLanguagePreference(value: string | null | undefined, acceptLanguage: string | null | undefined): string; export declare function resolveRealtimeVoiceReasoningEffort(value: string | null | undefined): "minimal" | "low" | "medium"; export declare function resolveRealtimeVoicePreference(value: string | null | undefined, fallback: string): string; /** * Hash the authenticated identity before sending it to OpenAI. The stable * digest is useful for abuse detection without disclosing the user's email. */ export declare function realtimeVoiceSafetyIdentifier(userEmail: string): Promise; /** Mount the authenticated OpenAI Realtime WebRTC and tool bridge routes. */ export declare function mountRealtimeVoiceRoutes(nitroApp: any, actions: Record, options: MountRealtimeVoiceRoutesOptions): { sessionPath: string; toolPath: string; }; //# sourceMappingURL=realtime-voice.d.ts.map