import type { CodexConversionConfig } from "../../adapter/activation/config.ts"; import { type VoiceContextModel, type RealtimeV3Voice, type VoiceContextReasoning } from "../../adapter/activation/config.ts"; interface VoiceSettings { apiProvider: string; model: CodexConversionConfig["voice"]["model"]; realtimeVoice: CodexConversionConfig["voice"]["realtimeVoice"]; realtimeAlternateVoice: CodexConversionConfig["voice"]["realtimeAlternateVoice"]; webSearch: boolean; v3Voice: RealtimeV3Voice; v3AlternateVoice: RealtimeV3Voice; contextModel?: VoiceContextModel | undefined; contextReasoning: VoiceContextReasoning; taskDelegationReasoning: VoiceContextReasoning; autoResumeRealtime: boolean; refreshRealtimeAfterCompaction: boolean; delegationAcknowledgements: boolean; forwardReasoningSummaries: boolean; } export interface VoiceSettingsDependencies { readConfig(): CodexConversionConfig; getConfig(): CodexConversionConfig; saveVoice(patch: Partial): void; models(): { provider: string; modelId: string; }[]; scope(): string; hasWebSearch?: (() => boolean) | undefined; } export declare function createVoiceSettings(dependencies: VoiceSettingsDependencies): { getConfig: () => { executionMode: import("../../adapter/activation/execution-mode.ts").ExecutionMode; voiceFeaturesOnly: boolean; prompt: { heavySystemPromptOverwrite: import("../../adapter/activation/config-contract.ts").HeavySystemPromptOverwrite; currentTimeReminderMinutes: 0 | 30 | 60; }; scope: { allProviders: import("../../adapter/activation/config-contract.ts").AllProvidersMode; additionalProviders: string[]; }; tools: { autoReasoning: boolean; customRustBinariesDir: string; viewImageFallback: boolean; applyPatchOnly: boolean; viewImageOnly: boolean; }; ui: { statusLine: boolean; toolRenaming: boolean; compactTools: import("../../adapter/activation/config-contract.ts").CompactToolsMode; codeModeDetails: boolean; backgroundShellWidget: boolean; backgroundShellToggleShortcut: string; backgroundShellPrevShortcut: string; backgroundShellNextShortcut: string; backgroundShellCloseShortcut: string; }; compaction: { method: import("../../adapter/activation/config-contract.ts").CompactionMethod; v2UserMessageRetention: import("../../adapter/activation/config-contract.ts").V2UserMessageRetention; }; notebook: { journals: "off" | "week" | "on"; checkpointCleanup: "never" | "month" | "week"; maxHeapMiB: number; plainCommandOutput: boolean; profile?: string | undefined; }; openai: { fast: import("../../adapter/activation/config-contract.ts").FastModeConfig; daybreak: boolean; verbosity: import("../../adapter/activation/config-contract.ts").CodexVerbosity; lunaCacheKeepaliveMinutes: import("../../adapter/activation/config-contract.ts").LunaCacheKeepaliveMinutes; lunaCacheKeepaliveIntervalMinutes: import("../../adapter/activation/config-contract.ts").LunaCacheKeepaliveIntervalMinutes; cacheKeepalive: boolean; cacheKeepaliveIntervalMinutes: import("../../adapter/activation/config-contract.ts").CacheKeepaliveIntervalMinutes; proxyResponsesLite: boolean; cacheDiagnostics: import("../../adapter/activation/config-contract.ts").CacheDiagnosticsMode; harnessIdentifierHeader: boolean | "codex"; }; voice: { model: "codex-live-1.1" | "realtime-2.1" | "realtime-2.1-mini"; apiProvider: string; realtimeVoice: "alloy" | "ash" | "ballad" | "cedar" | "coral" | "echo" | "marin" | "sage" | "shimmer" | "verse"; realtimeAlternateVoice: "alloy" | "ash" | "ballad" | "cedar" | "coral" | "echo" | "marin" | "sage" | "shimmer" | "verse"; webSearch: boolean; v3Voice: RealtimeV3Voice; v3AlternateVoice: RealtimeV3Voice; autoResumeRealtime: boolean; refreshRealtimeAfterCompaction: boolean; audioSetupCompleted: boolean; delegationAcknowledgements: boolean; forwardReasoningSummaries: boolean; dictationShortcut: string; realtimeShortcut: string; muteShortcut: string; serverShortcut: string; dictationShortcutMode: import("../../adapter/activation/config-contract.ts").DictationShortcutMode; contextModel?: VoiceContextModel | undefined; contextReasoning: VoiceContextReasoning; taskDelegationModel: string; taskDelegationReasoning: VoiceContextReasoning; inputDevice?: string | undefined; outputDevice?: string | undefined; }; }; settings: () => { config: { model: "codex-live-1.1" | "realtime-2.1" | "realtime-2.1-mini"; apiProvider: string; realtimeVoice: "alloy" | "ash" | "ballad" | "cedar" | "coral" | "echo" | "marin" | "sage" | "shimmer" | "verse"; realtimeAlternateVoice: "alloy" | "ash" | "ballad" | "cedar" | "coral" | "echo" | "marin" | "sage" | "shimmer" | "verse"; v3Voice: "arbor" | "breeze" | "cove" | "ember" | "juniper" | "maple" | "sol" | "spruce" | "vale"; v3AlternateVoice: "arbor" | "breeze" | "cove" | "ember" | "juniper" | "maple" | "sol" | "spruce" | "vale"; contextModel: VoiceContextModel | null; contextReasoning: "high" | "low" | "max" | "medium" | "minimal" | "off" | "xhigh"; taskDelegationModel: string; taskDelegationReasoning: "high" | "low" | "max" | "medium" | "minimal" | "off" | "xhigh"; }; voices: readonly ["juniper", "maple", "spruce", "ember", "vale", "breeze", "arbor", "sol", "cove"]; voiceModels: readonly ["codex-live-1.1", "realtime-2.1", "realtime-2.1-mini"]; webSearchAvailable: boolean | null; realtimeVoices: readonly ["alloy", "ash", "ballad", "coral", "echo", "sage", "shimmer", "verse", "marin", "cedar"]; contextModels: { provider: string; modelId: string; }[]; contextReasoningLevels: readonly ["off", "minimal", "low", "medium", "high", "xhigh", "max"]; scope: string; }; configureSettings(body: Record): { config: { model: "codex-live-1.1" | "realtime-2.1" | "realtime-2.1-mini"; apiProvider: string; realtimeVoice: "alloy" | "ash" | "ballad" | "cedar" | "coral" | "echo" | "marin" | "sage" | "shimmer" | "verse"; realtimeAlternateVoice: "alloy" | "ash" | "ballad" | "cedar" | "coral" | "echo" | "marin" | "sage" | "shimmer" | "verse"; v3Voice: "arbor" | "breeze" | "cove" | "ember" | "juniper" | "maple" | "sol" | "spruce" | "vale"; v3AlternateVoice: "arbor" | "breeze" | "cove" | "ember" | "juniper" | "maple" | "sol" | "spruce" | "vale"; contextModel: VoiceContextModel | null; contextReasoning: "high" | "low" | "max" | "medium" | "minimal" | "off" | "xhigh"; taskDelegationModel: string; taskDelegationReasoning: "high" | "low" | "max" | "medium" | "minimal" | "off" | "xhigh"; }; voices: readonly ["juniper", "maple", "spruce", "ember", "vale", "breeze", "arbor", "sol", "cove"]; voiceModels: readonly ["codex-live-1.1", "realtime-2.1", "realtime-2.1-mini"]; webSearchAvailable: boolean | null; realtimeVoices: readonly ["alloy", "ash", "ballad", "coral", "echo", "sage", "shimmer", "verse", "marin", "cedar"]; contextModels: { provider: string; modelId: string; }[]; contextReasoningLevels: readonly ["off", "minimal", "low", "medium", "high", "xhigh", "max"]; scope: string; }; }; export {};