import type { ChorusConfigFile, ChorusPreset, ModelInfo, ModelRef } from "../types.js"; import { type StorePaths } from "../store.js"; import type { CustomUiLike } from "./select.js"; export interface ConfigViewModel { config: ChorusConfigFile | null; healthMessage?: string; voiceWarnings: string[]; availableConductors: ModelRef[]; } export type ConfigMenuAction = "show" | "models" | "mode-direct" | "mode-subagent" | "history-on" | "history-off" | "timeout" | "timeout-default" | "conductor-timeout" | "conductor-timeout-default"; export declare function buildConfigViewModel(args: { config: ChorusConfigFile | null; registry: ModelInfo[]; selectedVoices?: ModelRef[]; }): ConfigViewModel; export declare function saveConfigFromUi(args: { config: ChorusConfigFile; registry: ModelInfo[]; paths?: StorePaths; }): Promise; export declare function validateConfigFromUi(config: ChorusConfigFile, registry: ModelInfo[]): string[]; export declare function conductorOptions(registry: ModelInfo[], selectedVoiceModels: ModelRef[]): ModelRef[]; export declare function describePreset(preset: ChorusPreset): string; export declare function pickConfigMenuAction(args: { ui: CustomUiLike; title: string; active: ChorusPreset | undefined; defaultTimeoutMs: number; warnings?: string[]; }): Promise; export declare function pickTimeoutMs(args: { ui: CustomUiLike; title: string; currentMs: number; }): Promise;