import { z } from "zod";
export declare const PersistedConfigSchema: z.ZodObject<{
    version: z.ZodOptional<z.ZodLiteral<1>>;
    daemon: z.ZodOptional<z.ZodObject<{
        listen: z.ZodOptional<z.ZodString>;
        allowedHosts: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<true>, z.ZodArray<z.ZodString, "many">]>>;
        mcp: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            injectIntoAgents: z.ZodOptional<z.ZodBoolean>;
        }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            injectIntoAgents: z.ZodOptional<z.ZodBoolean>;
        }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            injectIntoAgents: z.ZodOptional<z.ZodBoolean>;
        }, z.ZodTypeAny, "passthrough">>>;
        cors: z.ZodOptional<z.ZodObject<{
            allowedOrigins: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strict", z.ZodTypeAny, {
            allowedOrigins?: string[] | undefined;
        }, {
            allowedOrigins?: string[] | undefined;
        }>>;
        relay: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            endpoint: z.ZodOptional<z.ZodString>;
            publicEndpoint: z.ZodOptional<z.ZodString>;
        }, "strict", z.ZodTypeAny, {
            enabled?: boolean | undefined;
            endpoint?: string | undefined;
            publicEndpoint?: string | undefined;
        }, {
            enabled?: boolean | undefined;
            endpoint?: string | undefined;
            publicEndpoint?: string | undefined;
        }>>;
    }, "strict", z.ZodTypeAny, {
        mcp?: z.objectOutputType<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            injectIntoAgents: z.ZodOptional<z.ZodBoolean>;
        }, z.ZodTypeAny, "passthrough"> | undefined;
        relay?: {
            enabled?: boolean | undefined;
            endpoint?: string | undefined;
            publicEndpoint?: string | undefined;
        } | undefined;
        listen?: string | undefined;
        allowedHosts?: true | string[] | undefined;
        cors?: {
            allowedOrigins?: string[] | undefined;
        } | undefined;
    }, {
        mcp?: z.objectInputType<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            injectIntoAgents: z.ZodOptional<z.ZodBoolean>;
        }, z.ZodTypeAny, "passthrough"> | undefined;
        relay?: {
            enabled?: boolean | undefined;
            endpoint?: string | undefined;
            publicEndpoint?: string | undefined;
        } | undefined;
        listen?: string | undefined;
        allowedHosts?: true | string[] | undefined;
        cors?: {
            allowedOrigins?: string[] | undefined;
        } | undefined;
    }>>;
    app: z.ZodOptional<z.ZodObject<{
        baseUrl: z.ZodOptional<z.ZodString>;
    }, "strict", z.ZodTypeAny, {
        baseUrl?: string | undefined;
    }, {
        baseUrl?: string | undefined;
    }>>;
    providers: z.ZodOptional<z.ZodObject<{
        openai: z.ZodOptional<z.ZodObject<{
            apiKey: z.ZodOptional<z.ZodString>;
        }, "strict", z.ZodTypeAny, {
            apiKey?: string | undefined;
        }, {
            apiKey?: string | undefined;
        }>>;
        local: z.ZodOptional<z.ZodObject<{
            modelsDir: z.ZodOptional<z.ZodString>;
        }, "strict", z.ZodTypeAny, {
            modelsDir?: string | undefined;
        }, {
            modelsDir?: string | undefined;
        }>>;
    }, "strict", z.ZodTypeAny, {
        local?: {
            modelsDir?: string | undefined;
        } | undefined;
        openai?: {
            apiKey?: string | undefined;
        } | undefined;
    }, {
        local?: {
            modelsDir?: string | undefined;
        } | undefined;
        openai?: {
            apiKey?: string | undefined;
        } | undefined;
    }>>;
    agents: z.ZodOptional<z.ZodObject<{
        providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            command: z.ZodOptional<z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{
                mode: z.ZodLiteral<"default">;
            }, "strict", z.ZodTypeAny, {
                mode: "default";
            }, {
                mode: "default";
            }>, z.ZodObject<{
                mode: z.ZodLiteral<"append">;
                args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            }, "strict", z.ZodTypeAny, {
                mode: "append";
                args?: string[] | undefined;
            }, {
                mode: "append";
                args?: string[] | undefined;
            }>, z.ZodObject<{
                mode: z.ZodLiteral<"replace">;
                argv: z.ZodArray<z.ZodString, "many">;
            }, "strict", z.ZodTypeAny, {
                mode: "replace";
                argv: string[];
            }, {
                mode: "replace";
                argv: string[];
            }>]>>;
            env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        }, "strict", z.ZodTypeAny, {
            command?: {
                mode: "default";
            } | {
                mode: "append";
                args?: string[] | undefined;
            } | {
                mode: "replace";
                argv: string[];
            } | undefined;
            env?: Record<string, string> | undefined;
        }, {
            command?: {
                mode: "default";
            } | {
                mode: "append";
                args?: string[] | undefined;
            } | {
                mode: "replace";
                argv: string[];
            } | undefined;
            env?: Record<string, string> | undefined;
        }>>>;
    }, "strict", z.ZodTypeAny, {
        providers?: Record<string, {
            command?: {
                mode: "default";
            } | {
                mode: "append";
                args?: string[] | undefined;
            } | {
                mode: "replace";
                argv: string[];
            } | undefined;
            env?: Record<string, string> | undefined;
        }> | undefined;
    }, {
        providers?: Record<string, {
            command?: {
                mode: "default";
            } | {
                mode: "append";
                args?: string[] | undefined;
            } | {
                mode: "replace";
                argv: string[];
            } | undefined;
            env?: Record<string, string> | undefined;
        }> | undefined;
    }>>;
    features: z.ZodOptional<z.ZodObject<{
        dictation: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            stt: z.ZodOptional<z.ZodObject<{
                provider: z.ZodOptional<z.ZodPipeline<z.ZodString, z.ZodEnum<["openai", "local"]>>>;
                model: z.ZodOptional<z.ZodString>;
                confidenceThreshold: z.ZodOptional<z.ZodNumber>;
            }, "strict", z.ZodTypeAny, {
                provider?: "local" | "openai" | undefined;
                model?: string | undefined;
                confidenceThreshold?: number | undefined;
            }, {
                provider?: string | undefined;
                model?: string | undefined;
                confidenceThreshold?: number | undefined;
            }>>;
        }, "strict", z.ZodTypeAny, {
            enabled?: boolean | undefined;
            stt?: {
                provider?: "local" | "openai" | undefined;
                model?: string | undefined;
                confidenceThreshold?: number | undefined;
            } | undefined;
        }, {
            enabled?: boolean | undefined;
            stt?: {
                provider?: string | undefined;
                model?: string | undefined;
                confidenceThreshold?: number | undefined;
            } | undefined;
        }>>;
        voiceMode: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            llm: z.ZodOptional<z.ZodObject<{
                provider: z.ZodOptional<z.ZodString>;
                model: z.ZodOptional<z.ZodString>;
            }, "strict", z.ZodTypeAny, {
                provider?: string | undefined;
                model?: string | undefined;
            }, {
                provider?: string | undefined;
                model?: string | undefined;
            }>>;
            stt: z.ZodOptional<z.ZodObject<{
                provider: z.ZodOptional<z.ZodPipeline<z.ZodString, z.ZodEnum<["openai", "local"]>>>;
                model: z.ZodOptional<z.ZodString>;
            }, "strict", z.ZodTypeAny, {
                provider?: "local" | "openai" | undefined;
                model?: string | undefined;
            }, {
                provider?: string | undefined;
                model?: string | undefined;
            }>>;
            turnDetection: z.ZodOptional<z.ZodObject<{
                provider: z.ZodOptional<z.ZodPipeline<z.ZodString, z.ZodEnum<["openai", "local"]>>>;
            }, "strict", z.ZodTypeAny, {
                provider?: "local" | "openai" | undefined;
            }, {
                provider?: string | undefined;
            }>>;
            tts: z.ZodOptional<z.ZodObject<{
                provider: z.ZodOptional<z.ZodPipeline<z.ZodString, z.ZodEnum<["openai", "local"]>>>;
                model: z.ZodOptional<z.ZodString>;
                voice: z.ZodOptional<z.ZodEnum<["alloy", "echo", "fable", "onyx", "nova", "shimmer"]>>;
                speakerId: z.ZodOptional<z.ZodNumber>;
                speed: z.ZodOptional<z.ZodNumber>;
            }, "strict", z.ZodTypeAny, {
                provider?: "local" | "openai" | undefined;
                model?: string | undefined;
                voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
                speakerId?: number | undefined;
                speed?: number | undefined;
            }, {
                provider?: string | undefined;
                model?: string | undefined;
                voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
                speakerId?: number | undefined;
                speed?: number | undefined;
            }>>;
        }, "strict", z.ZodTypeAny, {
            enabled?: boolean | undefined;
            tts?: {
                provider?: "local" | "openai" | undefined;
                model?: string | undefined;
                voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
                speakerId?: number | undefined;
                speed?: number | undefined;
            } | undefined;
            stt?: {
                provider?: "local" | "openai" | undefined;
                model?: string | undefined;
            } | undefined;
            llm?: {
                provider?: string | undefined;
                model?: string | undefined;
            } | undefined;
            turnDetection?: {
                provider?: "local" | "openai" | undefined;
            } | undefined;
        }, {
            enabled?: boolean | undefined;
            tts?: {
                provider?: string | undefined;
                model?: string | undefined;
                voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
                speakerId?: number | undefined;
                speed?: number | undefined;
            } | undefined;
            stt?: {
                provider?: string | undefined;
                model?: string | undefined;
            } | undefined;
            llm?: {
                provider?: string | undefined;
                model?: string | undefined;
            } | undefined;
            turnDetection?: {
                provider?: string | undefined;
            } | undefined;
        }>>;
    }, "strict", z.ZodTypeAny, {
        dictation?: {
            enabled?: boolean | undefined;
            stt?: {
                provider?: "local" | "openai" | undefined;
                model?: string | undefined;
                confidenceThreshold?: number | undefined;
            } | undefined;
        } | undefined;
        voiceMode?: {
            enabled?: boolean | undefined;
            tts?: {
                provider?: "local" | "openai" | undefined;
                model?: string | undefined;
                voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
                speakerId?: number | undefined;
                speed?: number | undefined;
            } | undefined;
            stt?: {
                provider?: "local" | "openai" | undefined;
                model?: string | undefined;
            } | undefined;
            llm?: {
                provider?: string | undefined;
                model?: string | undefined;
            } | undefined;
            turnDetection?: {
                provider?: "local" | "openai" | undefined;
            } | undefined;
        } | undefined;
    }, {
        dictation?: {
            enabled?: boolean | undefined;
            stt?: {
                provider?: string | undefined;
                model?: string | undefined;
                confidenceThreshold?: number | undefined;
            } | undefined;
        } | undefined;
        voiceMode?: {
            enabled?: boolean | undefined;
            tts?: {
                provider?: string | undefined;
                model?: string | undefined;
                voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
                speakerId?: number | undefined;
                speed?: number | undefined;
            } | undefined;
            stt?: {
                provider?: string | undefined;
                model?: string | undefined;
            } | undefined;
            llm?: {
                provider?: string | undefined;
                model?: string | undefined;
            } | undefined;
            turnDetection?: {
                provider?: string | undefined;
            } | undefined;
        } | undefined;
    }>>;
    log: z.ZodOptional<z.ZodObject<{
        level: z.ZodOptional<z.ZodEnum<["trace", "debug", "info", "warn", "error", "fatal"]>>;
        format: z.ZodOptional<z.ZodEnum<["pretty", "json"]>>;
        console: z.ZodOptional<z.ZodObject<{
            level: z.ZodOptional<z.ZodEnum<["trace", "debug", "info", "warn", "error", "fatal"]>>;
            format: z.ZodOptional<z.ZodEnum<["pretty", "json"]>>;
        }, "strict", z.ZodTypeAny, {
            format?: "pretty" | "json" | undefined;
            level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
        }, {
            format?: "pretty" | "json" | undefined;
            level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
        }>>;
        file: z.ZodOptional<z.ZodObject<{
            level: z.ZodOptional<z.ZodEnum<["trace", "debug", "info", "warn", "error", "fatal"]>>;
            path: z.ZodOptional<z.ZodString>;
            rotate: z.ZodOptional<z.ZodObject<{
                maxSize: z.ZodOptional<z.ZodString>;
                maxFiles: z.ZodOptional<z.ZodNumber>;
            }, "strict", z.ZodTypeAny, {
                maxSize?: string | undefined;
                maxFiles?: number | undefined;
            }, {
                maxSize?: string | undefined;
                maxFiles?: number | undefined;
            }>>;
        }, "strict", z.ZodTypeAny, {
            path?: string | undefined;
            level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
            rotate?: {
                maxSize?: string | undefined;
                maxFiles?: number | undefined;
            } | undefined;
        }, {
            path?: string | undefined;
            level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
            rotate?: {
                maxSize?: string | undefined;
                maxFiles?: number | undefined;
            } | undefined;
        }>>;
    }, "strict", z.ZodTypeAny, {
        format?: "pretty" | "json" | undefined;
        file?: {
            path?: string | undefined;
            level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
            rotate?: {
                maxSize?: string | undefined;
                maxFiles?: number | undefined;
            } | undefined;
        } | undefined;
        level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
        console?: {
            format?: "pretty" | "json" | undefined;
            level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
        } | undefined;
    }, {
        format?: "pretty" | "json" | undefined;
        file?: {
            path?: string | undefined;
            level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
            rotate?: {
                maxSize?: string | undefined;
                maxFiles?: number | undefined;
            } | undefined;
        } | undefined;
        level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
        console?: {
            format?: "pretty" | "json" | undefined;
            level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
        } | undefined;
    }>>;
}, "strict", z.ZodTypeAny, {
    features?: {
        dictation?: {
            enabled?: boolean | undefined;
            stt?: {
                provider?: "local" | "openai" | undefined;
                model?: string | undefined;
                confidenceThreshold?: number | undefined;
            } | undefined;
        } | undefined;
        voiceMode?: {
            enabled?: boolean | undefined;
            tts?: {
                provider?: "local" | "openai" | undefined;
                model?: string | undefined;
                voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
                speakerId?: number | undefined;
                speed?: number | undefined;
            } | undefined;
            stt?: {
                provider?: "local" | "openai" | undefined;
                model?: string | undefined;
            } | undefined;
            llm?: {
                provider?: string | undefined;
                model?: string | undefined;
            } | undefined;
            turnDetection?: {
                provider?: "local" | "openai" | undefined;
            } | undefined;
        } | undefined;
    } | undefined;
    agents?: {
        providers?: Record<string, {
            command?: {
                mode: "default";
            } | {
                mode: "append";
                args?: string[] | undefined;
            } | {
                mode: "replace";
                argv: string[];
            } | undefined;
            env?: Record<string, string> | undefined;
        }> | undefined;
    } | undefined;
    providers?: {
        local?: {
            modelsDir?: string | undefined;
        } | undefined;
        openai?: {
            apiKey?: string | undefined;
        } | undefined;
    } | undefined;
    version?: 1 | undefined;
    log?: {
        format?: "pretty" | "json" | undefined;
        file?: {
            path?: string | undefined;
            level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
            rotate?: {
                maxSize?: string | undefined;
                maxFiles?: number | undefined;
            } | undefined;
        } | undefined;
        level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
        console?: {
            format?: "pretty" | "json" | undefined;
            level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
        } | undefined;
    } | undefined;
    daemon?: {
        mcp?: z.objectOutputType<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            injectIntoAgents: z.ZodOptional<z.ZodBoolean>;
        }, z.ZodTypeAny, "passthrough"> | undefined;
        relay?: {
            enabled?: boolean | undefined;
            endpoint?: string | undefined;
            publicEndpoint?: string | undefined;
        } | undefined;
        listen?: string | undefined;
        allowedHosts?: true | string[] | undefined;
        cors?: {
            allowedOrigins?: string[] | undefined;
        } | undefined;
    } | undefined;
    app?: {
        baseUrl?: string | undefined;
    } | undefined;
}, {
    features?: {
        dictation?: {
            enabled?: boolean | undefined;
            stt?: {
                provider?: string | undefined;
                model?: string | undefined;
                confidenceThreshold?: number | undefined;
            } | undefined;
        } | undefined;
        voiceMode?: {
            enabled?: boolean | undefined;
            tts?: {
                provider?: string | undefined;
                model?: string | undefined;
                voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
                speakerId?: number | undefined;
                speed?: number | undefined;
            } | undefined;
            stt?: {
                provider?: string | undefined;
                model?: string | undefined;
            } | undefined;
            llm?: {
                provider?: string | undefined;
                model?: string | undefined;
            } | undefined;
            turnDetection?: {
                provider?: string | undefined;
            } | undefined;
        } | undefined;
    } | undefined;
    agents?: {
        providers?: Record<string, {
            command?: {
                mode: "default";
            } | {
                mode: "append";
                args?: string[] | undefined;
            } | {
                mode: "replace";
                argv: string[];
            } | undefined;
            env?: Record<string, string> | undefined;
        }> | undefined;
    } | undefined;
    providers?: {
        local?: {
            modelsDir?: string | undefined;
        } | undefined;
        openai?: {
            apiKey?: string | undefined;
        } | undefined;
    } | undefined;
    version?: 1 | undefined;
    log?: {
        format?: "pretty" | "json" | undefined;
        file?: {
            path?: string | undefined;
            level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
            rotate?: {
                maxSize?: string | undefined;
                maxFiles?: number | undefined;
            } | undefined;
        } | undefined;
        level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
        console?: {
            format?: "pretty" | "json" | undefined;
            level?: "error" | "info" | "fatal" | "warn" | "debug" | "trace" | undefined;
        } | undefined;
    } | undefined;
    daemon?: {
        mcp?: z.objectInputType<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            injectIntoAgents: z.ZodOptional<z.ZodBoolean>;
        }, z.ZodTypeAny, "passthrough"> | undefined;
        relay?: {
            enabled?: boolean | undefined;
            endpoint?: string | undefined;
            publicEndpoint?: string | undefined;
        } | undefined;
        listen?: string | undefined;
        allowedHosts?: true | string[] | undefined;
        cors?: {
            allowedOrigins?: string[] | undefined;
        } | undefined;
    } | undefined;
    app?: {
        baseUrl?: string | undefined;
    } | undefined;
}>;
export type PersistedConfig = z.infer<typeof PersistedConfigSchema>;
type LoggerLike = {
    child(bindings: Record<string, unknown>): LoggerLike;
    info(...args: any[]): void;
};
export declare function loadPersistedConfig(seaworkHome: string, logger?: LoggerLike): PersistedConfig;
export declare function savePersistedConfig(seaworkHome: string, config: PersistedConfig, logger?: LoggerLike): void;
export {};
//# sourceMappingURL=persisted-config.d.ts.map