/** Ephemeral Realtime session creation for browser/mobile clients. */ import type { AuthInput } from "./auth.js"; import { type RealtimeModel } from "./config.js"; import { type ClientSecretRequestOptions } from "./client-secret.js"; import type { RealtimeSessionTool, ToolRegistry } from "./tools.js"; export type ReasoningEffort = "none" | "minimal" | "low" | "medium" | "high"; export interface RealtimeSessionConfig { type: "realtime"; model?: RealtimeModel; instructions?: string; output_modalities?: Array<"text" | "audio">; audio?: Record; tools?: RealtimeSessionTool[]; tool_choice?: "auto" | "none" | "required" | string; reasoning?: { effort?: ReasoningEffort; [key: string]: unknown; }; [key: string]: unknown; } export interface RealtimeSessionServiceOptions extends ClientSecretRequestOptions { auth?: AuthInput; tools?: ToolRegistry | readonly RealtimeSessionTool[]; /** Additional MCP/connectors or advanced definitions to compose with a registry. */ sessionTools?: readonly RealtimeSessionTool[]; defaultModel?: RealtimeModel; defaultInstructions?: string; safetyIdentifier?: string; timeoutMs?: number; } export interface MintOptions { model?: RealtimeModel; voice?: string; instructions?: string; reasoningEffort?: ReasoningEffort; session?: Partial; signal?: AbortSignal; } export interface MintedSecret { value: string; expiresAt?: number; model: RealtimeModel; } export declare class RealtimeSessionService { private readonly options; constructor(options?: RealtimeSessionServiceOptions); buildSession(options?: MintOptions): RealtimeSessionConfig; mint(options?: MintOptions): Promise; } /** One-shot convenience helper. */ export declare function mintClientSecret(options?: MintOptions, serviceOptions?: RealtimeSessionServiceOptions): Promise; //# sourceMappingURL=session.d.ts.map