import { z } from 'zod';
/**
 * Agent model ref. Always an object with explicit `primary` and optional
 * `fallbacks` chain. No string-form shorthand — every write site builds the
 * object explicitly so reads never branch on shape.
 */
export declare const AgentModelRefSchema: z.ZodObject<{
    primary: z.ZodString;
    fallbacks: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strict>;
export type AgentModelConfig = z.infer<typeof AgentModelRefSchema>;
export declare const AgentTypedModelRoleSchema: z.ZodObject<{
    description: z.ZodOptional<z.ZodString>;
    model: z.ZodString;
    fallbacks: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strict>;
export type AgentTypedModelRole = z.infer<typeof AgentTypedModelRoleSchema>;
export declare const AgentModelsSchema: z.ZodOptional<z.ZodObject<{
    defaultRole: z.ZodOptional<z.ZodString>;
    roles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        description: z.ZodOptional<z.ZodString>;
        model: z.ZodString;
        fallbacks: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strict>>>;
}, z.core.$strict>>;
export type AgentModelsConfig = z.infer<typeof AgentModelsSchema>;
/**
 * Image-generation model ref. {@link AgentModelRefSchema} plus runtime knobs
 * (`timeoutMs`, `autoProviderFallback`) used by the image-generation runtime.
 */
export declare const AgentImageGenerationModelSchema: z.ZodObject<{
    primary: z.ZodString;
    fallbacks: z.ZodOptional<z.ZodArray<z.ZodString>>;
    timeoutMs: z.ZodOptional<z.ZodNumber>;
    autoProviderFallback: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strict>;
export type AgentImageGenerationModelConfig = z.infer<typeof AgentImageGenerationModelSchema>;
export type AgentTypedModel = AgentTypedModelRole & {
    id: string;
};
export declare const AgentsConfigSchema: z.ZodDefault<z.ZodObject<{
    default: z.ZodOptional<z.ZodString>;
    defaultPreset: z.ZodDefault<z.ZodString>;
    capabilityPresets: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        version: z.ZodDefault<z.ZodNumber>;
        extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
        models: z.ZodOptional<z.ZodObject<{
            defaultRole: z.ZodOptional<z.ZodString>;
            roles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                model: z.ZodString;
                fallbacks: z.ZodOptional<z.ZodArray<z.ZodString>>;
                description: z.ZodOptional<z.ZodString>;
            }, z.core.$strict>>>;
            policy: z.ZodOptional<z.ZodObject<{
                allowFallbacks: z.ZodOptional<z.ZodBoolean>;
                maxCostTier: z.ZodOptional<z.ZodEnum<{
                    low: "low";
                    medium: "medium";
                    high: "high";
                }>>;
            }, z.core.$strict>>;
        }, z.core.$strict>>;
        tools: z.ZodOptional<z.ZodDefault<z.ZodObject<{
            builtin: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
                mode: z.ZodEnum<{
                    allow: "allow";
                    confirm: "confirm";
                    deny: "deny";
                }>;
                scope: z.ZodOptional<z.ZodEnum<{
                    readonly: "readonly";
                    workspace: "workspace";
                    unrestricted: "unrestricted";
                }>>;
                limits: z.ZodOptional<z.ZodObject<{
                    maxCallsPerTurn: z.ZodOptional<z.ZodNumber>;
                    timeoutMs: z.ZodOptional<z.ZodNumber>;
                }, z.core.$strict>>;
            }, z.core.$strict>>>;
            mcp: z.ZodOptional<z.ZodObject<{
                servers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                    mode: z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>;
                    scope: z.ZodOptional<z.ZodEnum<{
                        readonly: "readonly";
                        workspace: "workspace";
                        unrestricted: "unrestricted";
                    }>>;
                    limits: z.ZodOptional<z.ZodObject<{
                        maxCallsPerTurn: z.ZodOptional<z.ZodNumber>;
                        timeoutMs: z.ZodOptional<z.ZodNumber>;
                    }, z.core.$strict>>;
                }, z.core.$strict>>>;
                tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                    mode: z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>;
                    scope: z.ZodOptional<z.ZodEnum<{
                        readonly: "readonly";
                        workspace: "workspace";
                        unrestricted: "unrestricted";
                    }>>;
                    limits: z.ZodOptional<z.ZodObject<{
                        maxCallsPerTurn: z.ZodOptional<z.ZodNumber>;
                        timeoutMs: z.ZodOptional<z.ZodNumber>;
                    }, z.core.$strict>>;
                }, z.core.$strict>>>;
            }, z.core.$strict>>;
        }, z.core.$strict>>>;
        skills: z.ZodOptional<z.ZodDefault<z.ZodObject<{
            mode: z.ZodDefault<z.ZodEnum<{
                off: "off";
                all: "all";
                allowlist: "allowlist";
                denylist: "denylist";
            }>>;
            allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
            deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strict>>>;
        memory: z.ZodOptional<z.ZodDefault<z.ZodObject<{
            mode: z.ZodDefault<z.ZodEnum<{
                off: "off";
                readOnly: "readOnly";
                confirmWrite: "confirmWrite";
                auto: "auto";
            }>>;
            sources: z.ZodDefault<z.ZodArray<z.ZodEnum<{
                workspace: "workspace";
                session: "session";
                userProfile: "userProfile";
                agentProfile: "agentProfile";
                curated: "curated";
            }>>>;
            writePolicy: z.ZodOptional<z.ZodObject<{
                userProfile: z.ZodOptional<z.ZodEnum<{
                    allow: "allow";
                    confirm: "confirm";
                    deny: "deny";
                }>>;
                agentProfile: z.ZodOptional<z.ZodEnum<{
                    allow: "allow";
                    confirm: "confirm";
                    deny: "deny";
                }>>;
                curated: z.ZodOptional<z.ZodEnum<{
                    allow: "allow";
                    confirm: "confirm";
                    deny: "deny";
                }>>;
                workspace: z.ZodOptional<z.ZodEnum<{
                    allow: "allow";
                    confirm: "confirm";
                    deny: "deny";
                }>>;
            }, z.core.$strict>>;
            retention: z.ZodOptional<z.ZodObject<{
                compaction: z.ZodDefault<z.ZodBoolean>;
                maxAgeDays: z.ZodOptional<z.ZodNumber>;
                maxItems: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strict>>;
            privacy: z.ZodOptional<z.ZodObject<{
                crossAgentSharing: z.ZodDefault<z.ZodEnum<{
                    allow: "allow";
                    deny: "deny";
                    readOnly: "readOnly";
                }>>;
                sensitiveWritePolicy: z.ZodDefault<z.ZodEnum<{
                    allow: "allow";
                    confirm: "confirm";
                    deny: "deny";
                }>>;
            }, z.core.$strict>>;
            providerRouting: z.ZodOptional<z.ZodObject<{
                searchStrategy: z.ZodDefault<z.ZodEnum<{
                    "local-first": "local-first";
                    "external-first": "external-first";
                    fanout: "fanout";
                    "local-only": "local-only";
                    "external-only": "external-only";
                }>>;
                writeStrategy: z.ZodDefault<z.ZodEnum<{
                    "local-first": "local-first";
                    "external-first": "external-first";
                    "local-only": "local-only";
                    "external-only": "external-only";
                    "write-through": "write-through";
                }>>;
                allowExternalWrites: z.ZodDefault<z.ZodBoolean>;
                allowedProviderIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
                autoWriteKinds: z.ZodOptional<z.ZodArray<z.ZodEnum<{
                    user_profile: "user_profile";
                    agent_note: "agent_note";
                    workspace_fact: "workspace_fact";
                    daily_note: "daily_note";
                    session_summary: "session_summary";
                    derived_insight: "derived_insight";
                }>>>;
            }, z.core.$strict>>;
            dreaming: z.ZodOptional<z.ZodObject<{
                enabled: z.ZodDefault<z.ZodBoolean>;
                frequency: z.ZodOptional<z.ZodString>;
                timezone: z.ZodOptional<z.ZodString>;
                phases: z.ZodOptional<z.ZodObject<{
                    light: z.ZodOptional<z.ZodObject<{
                        enabled: z.ZodOptional<z.ZodBoolean>;
                        cron: z.ZodOptional<z.ZodString>;
                        lookbackDays: z.ZodOptional<z.ZodNumber>;
                        limit: z.ZodOptional<z.ZodNumber>;
                        dedupeSimilarity: z.ZodOptional<z.ZodNumber>;
                    }, z.core.$strict>>;
                    deep: z.ZodOptional<z.ZodObject<{
                        enabled: z.ZodOptional<z.ZodBoolean>;
                        cron: z.ZodOptional<z.ZodString>;
                        minScore: z.ZodOptional<z.ZodNumber>;
                        minRecallCount: z.ZodOptional<z.ZodNumber>;
                        minUniqueQueries: z.ZodOptional<z.ZodNumber>;
                        limit: z.ZodOptional<z.ZodNumber>;
                        recencyHalfLifeDays: z.ZodOptional<z.ZodNumber>;
                        maxAgeDays: z.ZodOptional<z.ZodNumber>;
                    }, z.core.$strict>>;
                    rem: z.ZodOptional<z.ZodObject<{
                        enabled: z.ZodOptional<z.ZodBoolean>;
                        cron: z.ZodOptional<z.ZodString>;
                        lookbackDays: z.ZodOptional<z.ZodNumber>;
                        limit: z.ZodOptional<z.ZodNumber>;
                        minPatternStrength: z.ZodOptional<z.ZodNumber>;
                    }, z.core.$strict>>;
                }, z.core.$strict>>;
            }, z.core.$strict>>;
        }, z.core.$strict>>>;
        workflows: z.ZodOptional<z.ZodDefault<z.ZodObject<{
            default: z.ZodOptional<z.ZodString>;
            allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
            suggested: z.ZodOptional<z.ZodArray<z.ZodObject<{
                intent: z.ZodString;
                workflow: z.ZodString;
            }, z.core.$strict>>>;
        }, z.core.$strict>>>;
        boundaries: z.ZodOptional<z.ZodDefault<z.ZodObject<{
            requiresConfirmation: z.ZodDefault<z.ZodArray<z.ZodString>>;
            forbidden: z.ZodDefault<z.ZodArray<z.ZodString>>;
            escalation: z.ZodDefault<z.ZodArray<z.ZodString>>;
        }, z.core.$strict>>>;
        runtime: z.ZodOptional<z.ZodObject<{
            maxTurns: z.ZodOptional<z.ZodNumber>;
            timeoutMs: z.ZodOptional<z.ZodNumber>;
            maxToolFailuresPerTurn: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
        locks: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strict>>>;
    list: z.ZodDefault<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        enabled: z.ZodDefault<z.ZodBoolean>;
        extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
        identity: z.ZodObject<{
            name: z.ZodString;
            description: z.ZodOptional<z.ZodString>;
            role: z.ZodString;
            language: z.ZodDefault<z.ZodString>;
            tone: z.ZodDefault<z.ZodString>;
            avatar: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>;
        responsibilities: z.ZodObject<{
            primary: z.ZodArray<z.ZodString>;
            secondary: z.ZodOptional<z.ZodArray<z.ZodString>>;
            outOfScope: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strict>;
        workspace: z.ZodObject<{
            root: z.ZodString;
        }, z.core.$strict>;
        tools: z.ZodDefault<z.ZodObject<{
            builtin: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
                mode: z.ZodEnum<{
                    allow: "allow";
                    confirm: "confirm";
                    deny: "deny";
                }>;
                scope: z.ZodOptional<z.ZodEnum<{
                    readonly: "readonly";
                    workspace: "workspace";
                    unrestricted: "unrestricted";
                }>>;
                limits: z.ZodOptional<z.ZodObject<{
                    maxCallsPerTurn: z.ZodOptional<z.ZodNumber>;
                    timeoutMs: z.ZodOptional<z.ZodNumber>;
                }, z.core.$strict>>;
            }, z.core.$strict>>>;
            mcp: z.ZodOptional<z.ZodObject<{
                servers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                    mode: z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>;
                    scope: z.ZodOptional<z.ZodEnum<{
                        readonly: "readonly";
                        workspace: "workspace";
                        unrestricted: "unrestricted";
                    }>>;
                    limits: z.ZodOptional<z.ZodObject<{
                        maxCallsPerTurn: z.ZodOptional<z.ZodNumber>;
                        timeoutMs: z.ZodOptional<z.ZodNumber>;
                    }, z.core.$strict>>;
                }, z.core.$strict>>>;
                tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                    mode: z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>;
                    scope: z.ZodOptional<z.ZodEnum<{
                        readonly: "readonly";
                        workspace: "workspace";
                        unrestricted: "unrestricted";
                    }>>;
                    limits: z.ZodOptional<z.ZodObject<{
                        maxCallsPerTurn: z.ZodOptional<z.ZodNumber>;
                        timeoutMs: z.ZodOptional<z.ZodNumber>;
                    }, z.core.$strict>>;
                }, z.core.$strict>>>;
            }, z.core.$strict>>;
        }, z.core.$strict>>;
        skills: z.ZodDefault<z.ZodObject<{
            mode: z.ZodDefault<z.ZodEnum<{
                off: "off";
                all: "all";
                allowlist: "allowlist";
                denylist: "denylist";
            }>>;
            allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
            deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strict>>;
        memory: z.ZodDefault<z.ZodObject<{
            mode: z.ZodDefault<z.ZodEnum<{
                off: "off";
                readOnly: "readOnly";
                confirmWrite: "confirmWrite";
                auto: "auto";
            }>>;
            sources: z.ZodDefault<z.ZodArray<z.ZodEnum<{
                workspace: "workspace";
                session: "session";
                userProfile: "userProfile";
                agentProfile: "agentProfile";
                curated: "curated";
            }>>>;
            writePolicy: z.ZodOptional<z.ZodObject<{
                userProfile: z.ZodOptional<z.ZodEnum<{
                    allow: "allow";
                    confirm: "confirm";
                    deny: "deny";
                }>>;
                agentProfile: z.ZodOptional<z.ZodEnum<{
                    allow: "allow";
                    confirm: "confirm";
                    deny: "deny";
                }>>;
                curated: z.ZodOptional<z.ZodEnum<{
                    allow: "allow";
                    confirm: "confirm";
                    deny: "deny";
                }>>;
                workspace: z.ZodOptional<z.ZodEnum<{
                    allow: "allow";
                    confirm: "confirm";
                    deny: "deny";
                }>>;
            }, z.core.$strict>>;
            retention: z.ZodOptional<z.ZodObject<{
                compaction: z.ZodDefault<z.ZodBoolean>;
                maxAgeDays: z.ZodOptional<z.ZodNumber>;
                maxItems: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strict>>;
            privacy: z.ZodOptional<z.ZodObject<{
                crossAgentSharing: z.ZodDefault<z.ZodEnum<{
                    allow: "allow";
                    deny: "deny";
                    readOnly: "readOnly";
                }>>;
                sensitiveWritePolicy: z.ZodDefault<z.ZodEnum<{
                    allow: "allow";
                    confirm: "confirm";
                    deny: "deny";
                }>>;
            }, z.core.$strict>>;
            providerRouting: z.ZodOptional<z.ZodObject<{
                searchStrategy: z.ZodDefault<z.ZodEnum<{
                    "local-first": "local-first";
                    "external-first": "external-first";
                    fanout: "fanout";
                    "local-only": "local-only";
                    "external-only": "external-only";
                }>>;
                writeStrategy: z.ZodDefault<z.ZodEnum<{
                    "local-first": "local-first";
                    "external-first": "external-first";
                    "local-only": "local-only";
                    "external-only": "external-only";
                    "write-through": "write-through";
                }>>;
                allowExternalWrites: z.ZodDefault<z.ZodBoolean>;
                allowedProviderIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
                autoWriteKinds: z.ZodOptional<z.ZodArray<z.ZodEnum<{
                    user_profile: "user_profile";
                    agent_note: "agent_note";
                    workspace_fact: "workspace_fact";
                    daily_note: "daily_note";
                    session_summary: "session_summary";
                    derived_insight: "derived_insight";
                }>>>;
            }, z.core.$strict>>;
            dreaming: z.ZodOptional<z.ZodObject<{
                enabled: z.ZodDefault<z.ZodBoolean>;
                frequency: z.ZodOptional<z.ZodString>;
                timezone: z.ZodOptional<z.ZodString>;
                phases: z.ZodOptional<z.ZodObject<{
                    light: z.ZodOptional<z.ZodObject<{
                        enabled: z.ZodOptional<z.ZodBoolean>;
                        cron: z.ZodOptional<z.ZodString>;
                        lookbackDays: z.ZodOptional<z.ZodNumber>;
                        limit: z.ZodOptional<z.ZodNumber>;
                        dedupeSimilarity: z.ZodOptional<z.ZodNumber>;
                    }, z.core.$strict>>;
                    deep: z.ZodOptional<z.ZodObject<{
                        enabled: z.ZodOptional<z.ZodBoolean>;
                        cron: z.ZodOptional<z.ZodString>;
                        minScore: z.ZodOptional<z.ZodNumber>;
                        minRecallCount: z.ZodOptional<z.ZodNumber>;
                        minUniqueQueries: z.ZodOptional<z.ZodNumber>;
                        limit: z.ZodOptional<z.ZodNumber>;
                        recencyHalfLifeDays: z.ZodOptional<z.ZodNumber>;
                        maxAgeDays: z.ZodOptional<z.ZodNumber>;
                    }, z.core.$strict>>;
                    rem: z.ZodOptional<z.ZodObject<{
                        enabled: z.ZodOptional<z.ZodBoolean>;
                        cron: z.ZodOptional<z.ZodString>;
                        lookbackDays: z.ZodOptional<z.ZodNumber>;
                        limit: z.ZodOptional<z.ZodNumber>;
                        minPatternStrength: z.ZodOptional<z.ZodNumber>;
                    }, z.core.$strict>>;
                }, z.core.$strict>>;
            }, z.core.$strict>>;
        }, z.core.$strict>>;
        workflows: z.ZodDefault<z.ZodObject<{
            default: z.ZodOptional<z.ZodString>;
            allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
            suggested: z.ZodOptional<z.ZodArray<z.ZodObject<{
                intent: z.ZodString;
                workflow: z.ZodString;
            }, z.core.$strict>>>;
        }, z.core.$strict>>;
        boundaries: z.ZodDefault<z.ZodObject<{
            requiresConfirmation: z.ZodDefault<z.ZodArray<z.ZodString>>;
            forbidden: z.ZodDefault<z.ZodArray<z.ZodString>>;
            escalation: z.ZodDefault<z.ZodArray<z.ZodString>>;
        }, z.core.$strict>>;
        runtime: z.ZodOptional<z.ZodObject<{
            maxTurns: z.ZodOptional<z.ZodNumber>;
            timeoutMs: z.ZodOptional<z.ZodNumber>;
            maxToolFailuresPerTurn: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
        prompt: z.ZodOptional<z.ZodObject<{
            customInstructions: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>>;
        models: z.ZodOptional<z.ZodObject<{
            defaultRole: z.ZodString;
            roles: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
                model: z.ZodString;
                fallbacks: z.ZodOptional<z.ZodArray<z.ZodString>>;
                description: z.ZodOptional<z.ZodString>;
            }, z.core.$strict>>>;
            policy: z.ZodOptional<z.ZodObject<{
                allowFallbacks: z.ZodOptional<z.ZodBoolean>;
                maxCostTier: z.ZodOptional<z.ZodEnum<{
                    low: "low";
                    medium: "medium";
                    high: "high";
                }>>;
            }, z.core.$strict>>;
        }, z.core.$strict>>;
    }, z.core.$strict>>>;
}, z.core.$strict>>;
export declare const BrowserConfigSchema: z.ZodDefault<z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    backend: z.ZodDefault<z.ZodEnum<{
        local: "local";
        cdp: "cdp";
        cloud: "cloud";
        extension: "extension";
        cloakbrowser: "cloakbrowser";
    }>>;
    headless: z.ZodOptional<z.ZodBoolean>;
    allowPrivateUrls: z.ZodOptional<z.ZodBoolean>;
    commandTimeout: z.ZodOptional<z.ZodNumber>;
    cloudProvider: z.ZodOptional<z.ZodEnum<{
        local: "local";
        browserbase: "browserbase";
        "browser-use": "browser-use";
    }>>;
    cloud: z.ZodOptional<z.ZodObject<{
        apiKey: z.ZodOptional<z.ZodString>;
        projectId: z.ZodOptional<z.ZodString>;
        region: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
    cdpUrl: z.ZodOptional<z.ZodString>;
    extension: z.ZodOptional<z.ZodObject<{
        port: z.ZodOptional<z.ZodNumber>;
        host: z.ZodOptional<z.ZodString>;
        connectionTimeout: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
    cloakbrowser: z.ZodOptional<z.ZodObject<{
        keepOpen: z.ZodOptional<z.ZodBoolean>;
        temporaryProfile: z.ZodOptional<z.ZodBoolean>;
        cacheDir: z.ZodOptional<z.ZodString>;
        binaryPath: z.ZodOptional<z.ZodString>;
        timezone: z.ZodOptional<z.ZodString>;
        locale: z.ZodOptional<z.ZodString>;
        webrtcIp: z.ZodOptional<z.ZodString>;
        fingerprintPlatform: z.ZodOptional<z.ZodString>;
        extraArgs: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strict>>;
    humanize: z.ZodOptional<z.ZodBoolean>;
    humanPreset: z.ZodOptional<z.ZodEnum<{
        default: "default";
        careful: "careful";
    }>>;
    dialogPolicy: z.ZodOptional<z.ZodEnum<{
        must_respond: "must_respond";
        auto_dismiss: "auto_dismiss";
        auto_accept: "auto_accept";
    }>>;
    dialogTimeoutSeconds: z.ZodOptional<z.ZodNumber>;
}, z.core.$strict>>;
export { TelegramTopicConfigSchema, TelegramGroupConfigSchema, TelegramAccountConfigSchema, TelegramConfigSchema, } from '../../extensions/telegram/src/config-schema.js';
export type { TelegramConfig } from '../../extensions/telegram/src/config-schema.js';
export { WeixinAccountConfigSchema, WeixinConfigSchema } from '../../extensions/weixin/src/config-schema.js';
export type { WeixinConfig } from '../../extensions/weixin/src/config-schema.js';
export declare const BindingMatchSchema: z.ZodObject<{
    channel: z.ZodString;
    accountId: z.ZodOptional<z.ZodString>;
    peerKind: z.ZodOptional<z.ZodString>;
    peerId: z.ZodOptional<z.ZodString>;
    guildId: z.ZodOptional<z.ZodString>;
    teamId: z.ZodOptional<z.ZodString>;
    memberRoleIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export declare const BindingRuleSchema: z.ZodObject<{
    id: z.ZodOptional<z.ZodString>;
    agentId: z.ZodString;
    priority: z.ZodDefault<z.ZodNumber>;
    match: z.ZodObject<{
        channel: z.ZodString;
        accountId: z.ZodOptional<z.ZodString>;
        peerKind: z.ZodOptional<z.ZodString>;
        peerId: z.ZodOptional<z.ZodString>;
        guildId: z.ZodOptional<z.ZodString>;
        teamId: z.ZodOptional<z.ZodString>;
        memberRoleIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>;
    enabled: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
export declare const BindingsConfigSchema: z.ZodDefault<z.ZodArray<z.ZodObject<{
    id: z.ZodOptional<z.ZodString>;
    agentId: z.ZodString;
    priority: z.ZodDefault<z.ZodNumber>;
    match: z.ZodObject<{
        channel: z.ZodString;
        accountId: z.ZodOptional<z.ZodString>;
        peerKind: z.ZodOptional<z.ZodString>;
        peerId: z.ZodOptional<z.ZodString>;
        guildId: z.ZodOptional<z.ZodString>;
        teamId: z.ZodOptional<z.ZodString>;
        memberRoleIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>;
    enabled: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>>>;
export declare const SessionDmScopeSchema: z.ZodEnum<{
    main: "main";
    "per-peer": "per-peer";
    "per-channel-peer": "per-channel-peer";
    "per-account-channel-peer": "per-account-channel-peer";
}>;
export declare const SessionStorageConfigSchema: z.ZodObject<{
    pruneAfterMs: z.ZodOptional<z.ZodNumber>;
    maxEntries: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
export declare const SessionResetModeSchema: z.ZodEnum<{
    daily: "daily";
    idle: "idle";
}>;
export declare const SessionResetConfigSchema: z.ZodObject<{
    mode: z.ZodOptional<z.ZodEnum<{
        daily: "daily";
        idle: "idle";
    }>>;
    atHour: z.ZodOptional<z.ZodNumber>;
    idleMinutes: z.ZodOptional<z.ZodNumber>;
}, z.core.$strict>;
export declare const SessionResetByTypeSchema: z.ZodObject<{
    direct: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<{
            daily: "daily";
            idle: "idle";
        }>>;
        atHour: z.ZodOptional<z.ZodNumber>;
        idleMinutes: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
    group: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<{
            daily: "daily";
            idle: "idle";
        }>>;
        atHour: z.ZodOptional<z.ZodNumber>;
        idleMinutes: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
    thread: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<{
            daily: "daily";
            idle: "idle";
        }>>;
        atHour: z.ZodOptional<z.ZodNumber>;
        idleMinutes: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
}, z.core.$strict>;
export declare const SessionScopeSchema: z.ZodEnum<{
    "per-sender": "per-sender";
    global: "global";
}>;
export declare const SessionConfigSchema: z.ZodDefault<z.ZodObject<{
    scope: z.ZodDefault<z.ZodEnum<{
        "per-sender": "per-sender";
        global: "global";
    }>>;
    mainKey: z.ZodDefault<z.ZodString>;
    dmScope: z.ZodDefault<z.ZodEnum<{
        main: "main";
        "per-peer": "per-peer";
        "per-channel-peer": "per-channel-peer";
        "per-account-channel-peer": "per-account-channel-peer";
    }>>;
    identityLinks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
    resetTriggers: z.ZodOptional<z.ZodArray<z.ZodString>>;
    idleMinutes: z.ZodOptional<z.ZodNumber>;
    reset: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<{
            daily: "daily";
            idle: "idle";
        }>>;
        atHour: z.ZodOptional<z.ZodNumber>;
        idleMinutes: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
    resetByType: z.ZodOptional<z.ZodObject<{
        direct: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<{
                daily: "daily";
                idle: "idle";
            }>>;
            atHour: z.ZodOptional<z.ZodNumber>;
            idleMinutes: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
        group: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<{
                daily: "daily";
                idle: "idle";
            }>>;
            atHour: z.ZodOptional<z.ZodNumber>;
            idleMinutes: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
        thread: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<{
                daily: "daily";
                idle: "idle";
            }>>;
            atHour: z.ZodOptional<z.ZodNumber>;
            idleMinutes: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    resetByChannel: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<{
            daily: "daily";
            idle: "idle";
        }>>;
        atHour: z.ZodOptional<z.ZodNumber>;
        idleMinutes: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>>;
    storage: z.ZodOptional<z.ZodObject<{
        pruneAfterMs: z.ZodOptional<z.ZodNumber>;
        maxEntries: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>>;
}, z.core.$strip>>;
/** Channel buckets — shapes validated post-parse by registered channel plugins. */
export declare const ChannelsConfigSchema: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
export declare const SearchProviderEntrySchema: z.ZodObject<{
    type: z.ZodEnum<{
        brave: "brave";
        tavily: "tavily";
        bing: "bing";
        searxng: "searxng";
    }>;
    apiKey: z.ZodOptional<z.ZodString>;
    url: z.ZodOptional<z.ZodString>;
    disabled: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
export type SearchProviderEntry = z.infer<typeof SearchProviderEntrySchema>;
export declare const WebSearchConfigSchema: z.ZodObject<{
    maxResults: z.ZodDefault<z.ZodNumber>;
    providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
        type: z.ZodEnum<{
            brave: "brave";
            tavily: "tavily";
            bing: "bing";
            searxng: "searxng";
        }>;
        apiKey: z.ZodOptional<z.ZodString>;
        url: z.ZodOptional<z.ZodString>;
        disabled: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export type WebSearchConfig = z.infer<typeof WebSearchConfigSchema>;
export declare const WebsiteBlocklistSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    domains: z.ZodDefault<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export type WebsiteBlocklistConfig = z.infer<typeof WebsiteBlocklistSchema>;
export declare const WebToolsConfigSchema: z.ZodObject<{
    region: z.ZodOptional<z.ZodEnum<{
        global: "global";
        cn: "cn";
    }>>;
    search: z.ZodOptional<z.ZodObject<{
        maxResults: z.ZodDefault<z.ZodNumber>;
        providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
            type: z.ZodEnum<{
                brave: "brave";
                tavily: "tavily";
                bing: "bing";
                searxng: "searxng";
            }>;
            apiKey: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
            disabled: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strip>>>;
    }, z.core.$strip>>;
    blocklist: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        domains: z.ZodDefault<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type WebToolsConfig = z.infer<typeof WebToolsConfigSchema>;
export declare const ToolsConfigSchema: z.ZodDefault<z.ZodObject<{
    web: z.ZodOptional<z.ZodObject<{
        region: z.ZodOptional<z.ZodEnum<{
            global: "global";
            cn: "cn";
        }>>;
        search: z.ZodOptional<z.ZodObject<{
            maxResults: z.ZodDefault<z.ZodNumber>;
            providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
                type: z.ZodEnum<{
                    brave: "brave";
                    tavily: "tavily";
                    bing: "bing";
                    searxng: "searxng";
                }>;
                apiKey: z.ZodOptional<z.ZodString>;
                url: z.ZodOptional<z.ZodString>;
                disabled: z.ZodOptional<z.ZodBoolean>;
            }, z.core.$strip>>>;
        }, z.core.$strip>>;
        blocklist: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            domains: z.ZodDefault<z.ZodArray<z.ZodString>>;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
    media: z.ZodLazy<z.ZodOptional<z.ZodObject<{
        models: z.ZodOptional<z.ZodArray<z.ZodObject<{
            provider: z.ZodOptional<z.ZodString>;
            model: z.ZodOptional<z.ZodString>;
            capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
                image: "image";
                audio: "audio";
                video: "video";
            }>>>;
            type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"provider">, z.ZodLiteral<"cli">]>>;
            command: z.ZodOptional<z.ZodString>;
            baseUrl: z.ZodOptional<z.ZodString>;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            apiKey: z.ZodOptional<z.ZodString>;
            language: z.ZodOptional<z.ZodString>;
            prompt: z.ZodOptional<z.ZodString>;
        }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
        audio: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            provider: z.ZodDefault<z.ZodString>;
            fallback: z.ZodOptional<z.ZodObject<{
                enabled: z.ZodDefault<z.ZodBoolean>;
                order: z.ZodDefault<z.ZodArray<z.ZodString>>;
            }, z.core.$strip>>;
            timeoutMs: z.ZodOptional<z.ZodNumber>;
            models: z.ZodOptional<z.ZodArray<z.ZodObject<{
                provider: z.ZodOptional<z.ZodString>;
                model: z.ZodOptional<z.ZodString>;
                capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
                    image: "image";
                    audio: "audio";
                    video: "video";
                }>>>;
                type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"provider">, z.ZodLiteral<"cli">]>>;
                command: z.ZodOptional<z.ZodString>;
                baseUrl: z.ZodOptional<z.ZodString>;
                headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
                apiKey: z.ZodOptional<z.ZodString>;
                language: z.ZodOptional<z.ZodString>;
                prompt: z.ZodOptional<z.ZodString>;
            }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
            providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                apiKey: z.ZodOptional<z.ZodString>;
                model: z.ZodOptional<z.ZodString>;
                baseUrl: z.ZodOptional<z.ZodString>;
                headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
                language: z.ZodOptional<z.ZodString>;
                prompt: z.ZodOptional<z.ZodString>;
            }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
        }, z.core.$strict>>;
    }, z.core.$strip>>>;
}, z.core.$strip>>;
export declare const GatewayAuthRateLimitSchema: z.ZodOptional<z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    maxAttempts: z.ZodDefault<z.ZodNumber>;
    windowMs: z.ZodDefault<z.ZodNumber>;
    blockDurationMs: z.ZodDefault<z.ZodNumber>;
    lockoutMs: z.ZodOptional<z.ZodNumber>;
    exemptLoopback: z.ZodDefault<z.ZodBoolean>;
    burstCoalesceMs: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>>;
export declare const GatewaySecuritySchema: z.ZodOptional<z.ZodObject<{
    strict: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>;
export declare const GatewayTrustedProxySchema: z.ZodObject<{
    userHeader: z.ZodString;
    requiredHeaders: z.ZodOptional<z.ZodArray<z.ZodString>>;
    allowUsers: z.ZodOptional<z.ZodArray<z.ZodString>>;
    allowLoopback: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strict>;
export declare const GatewayAuthSchema: z.ZodDefault<z.ZodObject<{
    mode: z.ZodDefault<z.ZodEnum<{
        none: "none";
        token: "token";
        password: "password";
        "trusted-proxy": "trusted-proxy";
    }>>;
    token: z.ZodOptional<z.ZodString>;
    password: z.ZodOptional<z.ZodString>;
    allowTailscale: z.ZodOptional<z.ZodBoolean>;
    rateLimit: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        maxAttempts: z.ZodDefault<z.ZodNumber>;
        windowMs: z.ZodDefault<z.ZodNumber>;
        blockDurationMs: z.ZodDefault<z.ZodNumber>;
        lockoutMs: z.ZodOptional<z.ZodNumber>;
        exemptLoopback: z.ZodDefault<z.ZodBoolean>;
        burstCoalesceMs: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
    trustedProxy: z.ZodOptional<z.ZodObject<{
        userHeader: z.ZodString;
        requiredHeaders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        allowUsers: z.ZodOptional<z.ZodArray<z.ZodString>>;
        allowLoopback: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strict>>;
}, z.core.$strip>>;
export declare const GatewayTailscaleConsentSchema: z.ZodObject<{
    version: z.ZodString;
    acceptedAt: z.ZodString;
}, z.core.$strip>;
export declare const GatewayTailscaleSchema: z.ZodDefault<z.ZodObject<{
    mode: z.ZodDefault<z.ZodEnum<{
        off: "off";
        serve: "serve";
        funnel: "funnel";
    }>>;
    resetOnExit: z.ZodDefault<z.ZodBoolean>;
    consent: z.ZodOptional<z.ZodObject<{
        version: z.ZodString;
        acceptedAt: z.ZodString;
    }, z.core.$strip>>;
}, z.core.$strip>>;
export declare const GatewayRemoteSchema: z.ZodObject<{
    url: z.ZodString;
    token: z.ZodOptional<z.ZodString>;
    password: z.ZodOptional<z.ZodString>;
    transport: z.ZodDefault<z.ZodEnum<{
        direct: "direct";
        ssh: "ssh";
    }>>;
    sshTarget: z.ZodOptional<z.ZodString>;
    sshIdentity: z.ZodOptional<z.ZodString>;
    tlsFingerprint: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const GatewayTlsSchema: z.ZodDefault<z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    autoGenerate: z.ZodDefault<z.ZodBoolean>;
    certPath: z.ZodOptional<z.ZodString>;
    keyPath: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
export declare const GatewayModeSchema: z.ZodDefault<z.ZodEnum<{
    local: "local";
    remote: "remote";
}>>;
export declare const HeartbeatConfigSchema: z.ZodDefault<z.ZodObject<{
    enabled: z.ZodBoolean;
    intervalMs: z.ZodNumber;
    includeSystemPromptSection: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    target: z.ZodOptional<z.ZodString>;
    targetChatId: z.ZodOptional<z.ZodString>;
    prompt: z.ZodOptional<z.ZodString>;
    ackMaxChars: z.ZodOptional<z.ZodNumber>;
    isolatedSession: z.ZodOptional<z.ZodBoolean>;
    activeHours: z.ZodOptional<z.ZodObject<{
        start: z.ZodString;
        end: z.ZodString;
        timezone: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>>;
export declare const GatewayChannelConnectDeferModeSchema: z.ZodEnum<{
    off: "off";
    auto: "auto";
    explicit: "explicit";
}>;
export declare const TunnelConsentSchema: z.ZodObject<{
    version: z.ZodString;
    acceptedAt: z.ZodString;
}, z.core.$strip>;
export declare const TunnelConfigSchema: z.ZodDefault<z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    brokerUrl: z.ZodDefault<z.ZodString>;
    registrationSecret: z.ZodOptional<z.ZodString>;
    autoStart: z.ZodDefault<z.ZodBoolean>;
    subdomain: z.ZodOptional<z.ZodString>;
    consent: z.ZodOptional<z.ZodObject<{
        version: z.ZodString;
        acceptedAt: z.ZodString;
    }, z.core.$strip>>;
}, z.core.$strip>>;
export type TunnelConfig = z.infer<typeof TunnelConfigSchema>;
/**
 * Workspace-scoped concerns (file import, etc.). Distinct from
 * agent manifest workspace roots; this block carries
 * feature configuration for workspace-related routes.
 */
export declare const WorkspaceImportConfigSchema: z.ZodObject<{
    targetDir: z.ZodDefault<z.ZodString>;
    maxBytes: z.ZodDefault<z.ZodNumber>;
    allowOverwrite: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
export type WorkspaceImportConfig = z.infer<typeof WorkspaceImportConfigSchema>;
export declare const WorkspaceConfigSchema: z.ZodOptional<z.ZodObject<{
    import: z.ZodOptional<z.ZodObject<{
        targetDir: z.ZodDefault<z.ZodString>;
        maxBytes: z.ZodDefault<z.ZodNumber>;
        allowOverwrite: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
}, z.core.$strip>>;
export type WorkspaceConfig = z.infer<typeof WorkspaceConfigSchema>;
export declare const GatewayBindModeSchema: z.ZodEnum<{
    custom: "custom";
    auto: "auto";
    loopback: "loopback";
    lan: "lan";
    tailnet: "tailnet";
}>;
export declare const GatewayConfigSchema: z.ZodDefault<z.ZodObject<{
    bind: z.ZodOptional<z.ZodEnum<{
        custom: "custom";
        auto: "auto";
        loopback: "loopback";
        lan: "lan";
        tailnet: "tailnet";
    }>>;
    customBindHost: z.ZodOptional<z.ZodString>;
    port: z.ZodOptional<z.ZodNumber>;
    mode: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
        local: "local";
        remote: "remote";
    }>>>;
    remote: z.ZodOptional<z.ZodObject<{
        url: z.ZodString;
        token: z.ZodOptional<z.ZodString>;
        password: z.ZodOptional<z.ZodString>;
        transport: z.ZodDefault<z.ZodEnum<{
            direct: "direct";
            ssh: "ssh";
        }>>;
        sshTarget: z.ZodOptional<z.ZodString>;
        sshIdentity: z.ZodOptional<z.ZodString>;
        tlsFingerprint: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    tailscale: z.ZodOptional<z.ZodDefault<z.ZodObject<{
        mode: z.ZodDefault<z.ZodEnum<{
            off: "off";
            serve: "serve";
            funnel: "funnel";
        }>>;
        resetOnExit: z.ZodDefault<z.ZodBoolean>;
        consent: z.ZodOptional<z.ZodObject<{
            version: z.ZodString;
            acceptedAt: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>>>;
    tls: z.ZodOptional<z.ZodDefault<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        autoGenerate: z.ZodDefault<z.ZodBoolean>;
        certPath: z.ZodOptional<z.ZodString>;
        keyPath: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
    auth: z.ZodOptional<z.ZodDefault<z.ZodObject<{
        mode: z.ZodDefault<z.ZodEnum<{
            none: "none";
            token: "token";
            password: "password";
            "trusted-proxy": "trusted-proxy";
        }>>;
        token: z.ZodOptional<z.ZodString>;
        password: z.ZodOptional<z.ZodString>;
        allowTailscale: z.ZodOptional<z.ZodBoolean>;
        rateLimit: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            maxAttempts: z.ZodDefault<z.ZodNumber>;
            windowMs: z.ZodDefault<z.ZodNumber>;
            blockDurationMs: z.ZodDefault<z.ZodNumber>;
            lockoutMs: z.ZodOptional<z.ZodNumber>;
            exemptLoopback: z.ZodDefault<z.ZodBoolean>;
            burstCoalesceMs: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>;
        trustedProxy: z.ZodOptional<z.ZodObject<{
            userHeader: z.ZodString;
            requiredHeaders: z.ZodOptional<z.ZodArray<z.ZodString>>;
            allowUsers: z.ZodOptional<z.ZodArray<z.ZodString>>;
            allowLoopback: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strict>>;
    }, z.core.$strip>>>;
    heartbeat: z.ZodOptional<z.ZodDefault<z.ZodObject<{
        enabled: z.ZodBoolean;
        intervalMs: z.ZodNumber;
        includeSystemPromptSection: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        target: z.ZodOptional<z.ZodString>;
        targetChatId: z.ZodOptional<z.ZodString>;
        prompt: z.ZodOptional<z.ZodString>;
        ackMaxChars: z.ZodOptional<z.ZodNumber>;
        isolatedSession: z.ZodOptional<z.ZodBoolean>;
        activeHours: z.ZodOptional<z.ZodObject<{
            start: z.ZodString;
            end: z.ZodString;
            timezone: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
    }, z.core.$strip>>>;
    maxSseConnections: z.ZodOptional<z.ZodNumber>;
    corsOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
    publicUrl: z.ZodOptional<z.ZodString>;
    dangerouslyAllowHostHeaderOriginFallback: z.ZodOptional<z.ZodBoolean>;
    trustedProxies: z.ZodOptional<z.ZodArray<z.ZodString>>;
    allowRealIpFallback: z.ZodOptional<z.ZodBoolean>;
    security: z.ZodOptional<z.ZodObject<{
        strict: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>>;
    channelConnectDeferMode: z.ZodOptional<z.ZodEnum<{
        off: "off";
        auto: "auto";
        explicit: "explicit";
    }>>;
    channelConnectDeferIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
    channelConnectDeferSkipIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
    skillsMarketplaceProvider: z.ZodOptional<z.ZodString>;
    skillsStoreBaseUrl: z.ZodOptional<z.ZodString>;
    share: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        defaultTtlMs: z.ZodDefault<z.ZodNumber>;
        maxTtlMs: z.ZodDefault<z.ZodNumber>;
        maxActiveShares: z.ZodDefault<z.ZodNumber>;
        maxFileSize: z.ZodDefault<z.ZodNumber>;
        inlinePreviewMimes: z.ZodDefault<z.ZodArray<z.ZodString>>;
        directory: z.ZodDefault<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            maxFolderSize: z.ZodDefault<z.ZodNumber>;
            maxFileCount: z.ZodDefault<z.ZodNumber>;
            maxDepth: z.ZodDefault<z.ZodNumber>;
            listingCacheMs: z.ZodDefault<z.ZodNumber>;
            zipConcurrency: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
    siteShare: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        publicHostSuffix: z.ZodDefault<z.ZodString>;
        defaultTtlMs: z.ZodDefault<z.ZodNumber>;
        maxTtlMs: z.ZodDefault<z.ZodNumber>;
        maxActiveSites: z.ZodDefault<z.ZodNumber>;
        static: z.ZodDefault<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            maxRootDirSize: z.ZodDefault<z.ZodNumber>;
            maxFileCount: z.ZodDefault<z.ZodNumber>;
            rewriteEnabledByDefault: z.ZodDefault<z.ZodBoolean>;
        }, z.core.$strip>>;
        proxy: z.ZodDefault<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            allowedUpstreamHosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
            allowedUpstreamPorts: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
            forwardWebSocket: z.ZodDefault<z.ZodBoolean>;
            bodySizeLimit: z.ZodDefault<z.ZodNumber>;
            requestTimeoutMs: z.ZodDefault<z.ZodNumber>;
            wsIdleTimeoutMs: z.ZodDefault<z.ZodNumber>;
            rewriteSetCookiePath: z.ZodDefault<z.ZodBoolean>;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
}, z.core.$strip>>;
export declare const ModelsDevConfigSchema: z.ZodDefault<z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>>;
export declare const STTProviderConfigSchema: z.ZodObject<{
    apiKey: z.ZodOptional<z.ZodString>;
    model: z.ZodOptional<z.ZodString>;
    baseUrl: z.ZodOptional<z.ZodString>;
    headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    language: z.ZodOptional<z.ZodString>;
    prompt: z.ZodOptional<z.ZodString>;
}, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>;
export declare const STTFallbackConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    order: z.ZodDefault<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export declare const MediaUnderstandingCapabilitiesSchema: z.ZodOptional<z.ZodArray<z.ZodEnum<{
    image: "image";
    audio: "audio";
    video: "video";
}>>>;
export declare const MediaUnderstandingModelSchema: z.ZodObject<{
    provider: z.ZodOptional<z.ZodString>;
    model: z.ZodOptional<z.ZodString>;
    capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
        image: "image";
        audio: "audio";
        video: "video";
    }>>>;
    type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"provider">, z.ZodLiteral<"cli">]>>;
    command: z.ZodOptional<z.ZodString>;
    baseUrl: z.ZodOptional<z.ZodString>;
    headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    apiKey: z.ZodOptional<z.ZodString>;
    language: z.ZodOptional<z.ZodString>;
    prompt: z.ZodOptional<z.ZodString>;
}, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>;
export declare const STTConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    provider: z.ZodDefault<z.ZodString>;
    fallback: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        order: z.ZodDefault<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>;
    timeoutMs: z.ZodOptional<z.ZodNumber>;
    models: z.ZodOptional<z.ZodArray<z.ZodObject<{
        provider: z.ZodOptional<z.ZodString>;
        model: z.ZodOptional<z.ZodString>;
        capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
            image: "image";
            audio: "audio";
            video: "video";
        }>>>;
        type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"provider">, z.ZodLiteral<"cli">]>>;
        command: z.ZodOptional<z.ZodString>;
        baseUrl: z.ZodOptional<z.ZodString>;
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        apiKey: z.ZodOptional<z.ZodString>;
        language: z.ZodOptional<z.ZodString>;
        prompt: z.ZodOptional<z.ZodString>;
    }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
    providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        apiKey: z.ZodOptional<z.ZodString>;
        model: z.ZodOptional<z.ZodString>;
        baseUrl: z.ZodOptional<z.ZodString>;
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        language: z.ZodOptional<z.ZodString>;
        prompt: z.ZodOptional<z.ZodString>;
    }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
}, z.core.$strict>;
export declare const TTSProviderConfigSchema: z.ZodObject<{
    apiKey: z.ZodOptional<z.ZodString>;
    model: z.ZodOptional<z.ZodString>;
    voice: z.ZodOptional<z.ZodString>;
}, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>;
export declare const TTSFallbackConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    order: z.ZodDefault<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export declare const TTSModelOverridesConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    allowText: z.ZodDefault<z.ZodBoolean>;
    allowProvider: z.ZodDefault<z.ZodBoolean>;
    allowVoice: z.ZodDefault<z.ZodBoolean>;
    allowModelId: z.ZodDefault<z.ZodBoolean>;
    allowVoiceSettings: z.ZodDefault<z.ZodBoolean>;
    allowNormalization: z.ZodDefault<z.ZodBoolean>;
    allowSeed: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
export declare const TTSEdgeConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    voice: z.ZodOptional<z.ZodString>;
    lang: z.ZodOptional<z.ZodString>;
    outputFormat: z.ZodOptional<z.ZodString>;
    pitch: z.ZodOptional<z.ZodString>;
    rate: z.ZodOptional<z.ZodString>;
    volume: z.ZodOptional<z.ZodString>;
    proxy: z.ZodOptional<z.ZodString>;
    timeoutMs: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
export declare const TTSSummarizationConfigSchema: z.ZodObject<{
    enabled: z.ZodOptional<z.ZodBoolean>;
    targetLength: z.ZodOptional<z.ZodNumber>;
    threshold: z.ZodOptional<z.ZodNumber>;
    model: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const TTSConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    provider: z.ZodDefault<z.ZodString>;
    trigger: z.ZodDefault<z.ZodEnum<{
        off: "off";
        always: "always";
        inbound: "inbound";
        tagged: "tagged";
    }>>;
    fallback: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        order: z.ZodDefault<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>;
    maxTextLength: z.ZodDefault<z.ZodNumber>;
    timeoutMs: z.ZodDefault<z.ZodNumber>;
    summarization: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        targetLength: z.ZodOptional<z.ZodNumber>;
        threshold: z.ZodOptional<z.ZodNumber>;
        model: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    modelOverrides: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        allowText: z.ZodDefault<z.ZodBoolean>;
        allowProvider: z.ZodDefault<z.ZodBoolean>;
        allowVoice: z.ZodDefault<z.ZodBoolean>;
        allowModelId: z.ZodDefault<z.ZodBoolean>;
        allowVoiceSettings: z.ZodDefault<z.ZodBoolean>;
        allowNormalization: z.ZodDefault<z.ZodBoolean>;
        allowSeed: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        apiKey: z.ZodOptional<z.ZodString>;
        model: z.ZodOptional<z.ZodString>;
        voice: z.ZodOptional<z.ZodString>;
    }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
}, z.core.$strict>;
export declare const MessagesConfigSchema: z.ZodOptional<z.ZodObject<{
    tts: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        provider: z.ZodDefault<z.ZodString>;
        trigger: z.ZodDefault<z.ZodEnum<{
            off: "off";
            always: "always";
            inbound: "inbound";
            tagged: "tagged";
        }>>;
        fallback: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            order: z.ZodDefault<z.ZodArray<z.ZodString>>;
        }, z.core.$strip>>;
        maxTextLength: z.ZodDefault<z.ZodNumber>;
        timeoutMs: z.ZodDefault<z.ZodNumber>;
        summarization: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            targetLength: z.ZodOptional<z.ZodNumber>;
            threshold: z.ZodOptional<z.ZodNumber>;
            model: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        modelOverrides: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            allowText: z.ZodDefault<z.ZodBoolean>;
            allowProvider: z.ZodDefault<z.ZodBoolean>;
            allowVoice: z.ZodDefault<z.ZodBoolean>;
            allowModelId: z.ZodDefault<z.ZodBoolean>;
            allowVoiceSettings: z.ZodDefault<z.ZodBoolean>;
            allowNormalization: z.ZodDefault<z.ZodBoolean>;
            allowSeed: z.ZodDefault<z.ZodBoolean>;
        }, z.core.$strip>>;
        providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            apiKey: z.ZodOptional<z.ZodString>;
            model: z.ZodOptional<z.ZodString>;
            voice: z.ZodOptional<z.ZodString>;
        }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
    }, z.core.$strict>>;
}, z.core.$strip>>;
export declare const ToolsMediaAudioConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    provider: z.ZodDefault<z.ZodString>;
    fallback: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        order: z.ZodDefault<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>;
    timeoutMs: z.ZodOptional<z.ZodNumber>;
    models: z.ZodOptional<z.ZodArray<z.ZodObject<{
        provider: z.ZodOptional<z.ZodString>;
        model: z.ZodOptional<z.ZodString>;
        capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
            image: "image";
            audio: "audio";
            video: "video";
        }>>>;
        type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"provider">, z.ZodLiteral<"cli">]>>;
        command: z.ZodOptional<z.ZodString>;
        baseUrl: z.ZodOptional<z.ZodString>;
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        apiKey: z.ZodOptional<z.ZodString>;
        language: z.ZodOptional<z.ZodString>;
        prompt: z.ZodOptional<z.ZodString>;
    }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
    providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        apiKey: z.ZodOptional<z.ZodString>;
        model: z.ZodOptional<z.ZodString>;
        baseUrl: z.ZodOptional<z.ZodString>;
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        language: z.ZodOptional<z.ZodString>;
        prompt: z.ZodOptional<z.ZodString>;
    }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
}, z.core.$strict>;
export declare const ToolsMediaConfigSchema: z.ZodOptional<z.ZodObject<{
    models: z.ZodOptional<z.ZodArray<z.ZodObject<{
        provider: z.ZodOptional<z.ZodString>;
        model: z.ZodOptional<z.ZodString>;
        capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
            image: "image";
            audio: "audio";
            video: "video";
        }>>>;
        type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"provider">, z.ZodLiteral<"cli">]>>;
        command: z.ZodOptional<z.ZodString>;
        baseUrl: z.ZodOptional<z.ZodString>;
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        apiKey: z.ZodOptional<z.ZodString>;
        language: z.ZodOptional<z.ZodString>;
        prompt: z.ZodOptional<z.ZodString>;
    }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
    audio: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        provider: z.ZodDefault<z.ZodString>;
        fallback: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            order: z.ZodDefault<z.ZodArray<z.ZodString>>;
        }, z.core.$strip>>;
        timeoutMs: z.ZodOptional<z.ZodNumber>;
        models: z.ZodOptional<z.ZodArray<z.ZodObject<{
            provider: z.ZodOptional<z.ZodString>;
            model: z.ZodOptional<z.ZodString>;
            capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
                image: "image";
                audio: "audio";
                video: "video";
            }>>>;
            type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"provider">, z.ZodLiteral<"cli">]>>;
            command: z.ZodOptional<z.ZodString>;
            baseUrl: z.ZodOptional<z.ZodString>;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            apiKey: z.ZodOptional<z.ZodString>;
            language: z.ZodOptional<z.ZodString>;
            prompt: z.ZodOptional<z.ZodString>;
        }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
        providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            apiKey: z.ZodOptional<z.ZodString>;
            model: z.ZodOptional<z.ZodString>;
            baseUrl: z.ZodOptional<z.ZodString>;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            language: z.ZodOptional<z.ZodString>;
            prompt: z.ZodOptional<z.ZodString>;
        }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
    }, z.core.$strict>>;
}, z.core.$strip>>;
/**
 * Optional Azure OpenAI overrides used when an OpenAI image-generation
 * request should hit an Azure deployment instead of `api.openai.com`.
 *
 * URL template (when present):
 *   `https://<resource>.openai.azure.com/openai/deployments/<deployment>/images/generations?api-version=<apiVersion>`
 */
export declare const ProviderAzureConfigSchema: z.ZodObject<{
    resource: z.ZodOptional<z.ZodString>;
    deployment: z.ZodOptional<z.ZodString>;
    apiVersion: z.ZodOptional<z.ZodString>;
}, z.core.$strict>;
/** Per-vendor request overrides applied by the provider HTTP layer. */
export declare const ProviderRequestOverridesSchema: z.ZodObject<{
    timeoutMs: z.ZodOptional<z.ZodNumber>;
    headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, z.core.$strict>;
/**
 * Generic per-vendor provider config — used by image / audio / video
 * capability providers via `cfg.providers.<id>`. Kept loose (`.strict()` but
 * everything optional) so adding a new vendor never requires a config
 * migration.
 */
export declare const ProviderAuthConfigSchema: z.ZodObject<{
    apiKey: z.ZodOptional<z.ZodString>;
    baseUrl: z.ZodOptional<z.ZodString>;
    region: z.ZodOptional<z.ZodString>;
    imageBaseUrl: z.ZodOptional<z.ZodString>;
    request: z.ZodOptional<z.ZodObject<{
        timeoutMs: z.ZodOptional<z.ZodNumber>;
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, z.core.$strict>>;
    azure: z.ZodOptional<z.ZodObject<{
        resource: z.ZodOptional<z.ZodString>;
        deployment: z.ZodOptional<z.ZodString>;
        apiVersion: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
}, z.core.$strict>;
export type ProviderAuthConfig = z.infer<typeof ProviderAuthConfigSchema>;
/**
 * `cfg.providers.<id>` is keyed by provider id (`openai`, `dashscope`,
 * `minimax`, `google`, `fal`, …). Every entry is optional and validated by
 * {@link ProviderAuthConfigSchema}.
 */
export declare const ProvidersConfigSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
    apiKey: z.ZodOptional<z.ZodString>;
    baseUrl: z.ZodOptional<z.ZodString>;
    region: z.ZodOptional<z.ZodString>;
    imageBaseUrl: z.ZodOptional<z.ZodString>;
    request: z.ZodOptional<z.ZodObject<{
        timeoutMs: z.ZodOptional<z.ZodNumber>;
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, z.core.$strict>>;
    azure: z.ZodOptional<z.ZodObject<{
        resource: z.ZodOptional<z.ZodString>;
        deployment: z.ZodOptional<z.ZodString>;
        apiVersion: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
}, z.core.$strict>>;
export type ProvidersConfig = z.infer<typeof ProvidersConfigSchema>;
export declare const ExtensionSecurityConfigSchema: z.ZodObject<{
    checkPermissions: z.ZodDefault<z.ZodBoolean>;
    allowUntrusted: z.ZodDefault<z.ZodBoolean>;
    allow: z.ZodDefault<z.ZodArray<z.ZodString>>;
    trackProvenance: z.ZodDefault<z.ZodBoolean>;
    allowPromptInjection: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
export declare const ExtensionSlotsConfigSchema: z.ZodObject<{
    memory: z.ZodOptional<z.ZodString>;
    tts: z.ZodOptional<z.ZodString>;
    imageGeneration: z.ZodOptional<z.ZodString>;
    webSearch: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const ExtensionsConfigSchema: z.ZodType<Record<string, unknown>>;
export declare const UpdateAutoConfigSchema: z.ZodOptional<z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    stableDelayHours: z.ZodDefault<z.ZodNumber>;
    stableJitterHours: z.ZodDefault<z.ZodNumber>;
    betaCheckIntervalHours: z.ZodDefault<z.ZodNumber>;
}, z.core.$strict>>;
/** Persistent `/goal` (Ralph loop) — Hermes-aligned defaults. */
export declare const GoalNotificationEventSchema: z.ZodEnum<{
    done: "done";
    blocked: "blocked";
    needs_input: "needs_input";
    queue_failed: "queue_failed";
    queue_retry: "queue_retry";
    queue_succeeded: "queue_succeeded";
    queue_skipped: "queue_skipped";
}>;
export declare const GoalNotificationTargetSchema: z.ZodObject<{
    channel: z.ZodString;
    chatId: z.ZodString;
    accountId: z.ZodOptional<z.ZodString>;
    threadId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
    silent: z.ZodOptional<z.ZodBoolean>;
    events: z.ZodOptional<z.ZodArray<z.ZodEnum<{
        done: "done";
        blocked: "blocked";
        needs_input: "needs_input";
        queue_failed: "queue_failed";
        queue_retry: "queue_retry";
        queue_succeeded: "queue_succeeded";
        queue_skipped: "queue_skipped";
    }>>>;
}, z.core.$strict>;
export declare const GoalNotificationsConfigSchema: z.ZodDefault<z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    includeLinkedSessions: z.ZodDefault<z.ZodBoolean>;
    channels: z.ZodDefault<z.ZodArray<z.ZodString>>;
    events: z.ZodDefault<z.ZodArray<z.ZodEnum<{
        done: "done";
        blocked: "blocked";
        needs_input: "needs_input";
        queue_failed: "queue_failed";
        queue_retry: "queue_retry";
        queue_succeeded: "queue_succeeded";
        queue_skipped: "queue_skipped";
    }>>>;
    targets: z.ZodDefault<z.ZodArray<z.ZodObject<{
        channel: z.ZodString;
        chatId: z.ZodString;
        accountId: z.ZodOptional<z.ZodString>;
        threadId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
        silent: z.ZodOptional<z.ZodBoolean>;
        events: z.ZodOptional<z.ZodArray<z.ZodEnum<{
            done: "done";
            blocked: "blocked";
            needs_input: "needs_input";
            queue_failed: "queue_failed";
            queue_retry: "queue_retry";
            queue_succeeded: "queue_succeeded";
            queue_skipped: "queue_skipped";
        }>>>;
    }, z.core.$strict>>>;
}, z.core.$strict>>;
export declare const GoalsConfigSchema: z.ZodObject<{
    maxTurns: z.ZodDefault<z.ZodNumber>;
    judgeModelRef: z.ZodOptional<z.ZodString>;
    checklistMode: z.ZodDefault<z.ZodBoolean>;
    checklistDecomposePolicy: z.ZodDefault<z.ZodEnum<{
        empty_only: "empty_only";
        supplement_existing: "supplement_existing";
    }>>;
    maxConsecutiveParseFailures: z.ZodDefault<z.ZodNumber>;
    judgeTimeoutMs: z.ZodDefault<z.ZodNumber>;
    checklistHistoryChars: z.ZodDefault<z.ZodNumber>;
    notifications: z.ZodDefault<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        includeLinkedSessions: z.ZodDefault<z.ZodBoolean>;
        channels: z.ZodDefault<z.ZodArray<z.ZodString>>;
        events: z.ZodDefault<z.ZodArray<z.ZodEnum<{
            done: "done";
            blocked: "blocked";
            needs_input: "needs_input";
            queue_failed: "queue_failed";
            queue_retry: "queue_retry";
            queue_succeeded: "queue_succeeded";
            queue_skipped: "queue_skipped";
        }>>>;
        targets: z.ZodDefault<z.ZodArray<z.ZodObject<{
            channel: z.ZodString;
            chatId: z.ZodString;
            accountId: z.ZodOptional<z.ZodString>;
            threadId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
            silent: z.ZodOptional<z.ZodBoolean>;
            events: z.ZodOptional<z.ZodArray<z.ZodEnum<{
                done: "done";
                blocked: "blocked";
                needs_input: "needs_input";
                queue_failed: "queue_failed";
                queue_retry: "queue_retry";
                queue_succeeded: "queue_succeeded";
                queue_skipped: "queue_skipped";
            }>>>;
        }, z.core.$strict>>>;
    }, z.core.$strict>>;
}, z.core.$strict>;
export type GoalsConfig = z.infer<typeof GoalsConfigSchema>;
export declare const UpdateConfigSchema: z.ZodOptional<z.ZodObject<{
    checkOnStart: z.ZodDefault<z.ZodBoolean>;
    channel: z.ZodDefault<z.ZodEnum<{
        stable: "stable";
        beta: "beta";
        dev: "dev";
    }>>;
    auto: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        stableDelayHours: z.ZodDefault<z.ZodNumber>;
        stableJitterHours: z.ZodDefault<z.ZodNumber>;
        betaCheckIntervalHours: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strict>>;
}, z.core.$strict>>;
export type UpdateConfig = z.infer<typeof UpdateConfigSchema>;
export declare const CommandsConfigSchema: z.ZodOptional<z.ZodObject<{
    restart: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strict>>;
export type CommandsConfig = z.infer<typeof CommandsConfigSchema>;
export declare const TuiConfigSchema: z.ZodDefault<z.ZodObject<{
    defaultAgent: z.ZodDefault<z.ZodString>;
}, z.core.$strict>>;
export type TuiConfig = z.infer<typeof TuiConfigSchema>;
export declare const McpServerSchema: z.ZodObject<{
    command: z.ZodOptional<z.ZodString>;
    args: z.ZodOptional<z.ZodArray<z.ZodString>>;
    env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodObject<{
        xopcSecretRef: z.ZodObject<{
            provider: z.ZodString;
            fieldKey: z.ZodString;
        }, z.core.$strip>;
    }, z.core.$strip>]>>>;
    cwd: z.ZodOptional<z.ZodString>;
    workingDirectory: z.ZodOptional<z.ZodString>;
    url: z.ZodOptional<z.ZodString>;
    transport: z.ZodOptional<z.ZodEnum<{
        sse: "sse";
        "streamable-http": "streamable-http";
    }>>;
    headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodObject<{
        xopcSecretRef: z.ZodObject<{
            provider: z.ZodString;
            fieldKey: z.ZodString;
        }, z.core.$strip>;
    }, z.core.$strip>]>>>;
    connectionTimeoutMs: z.ZodOptional<z.ZodNumber>;
}, z.core.$catchall<z.ZodUnknown>>;
export declare const McpConfigSchema: z.ZodOptional<z.ZodObject<{
    servers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        command: z.ZodOptional<z.ZodString>;
        args: z.ZodOptional<z.ZodArray<z.ZodString>>;
        env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodObject<{
            xopcSecretRef: z.ZodObject<{
                provider: z.ZodString;
                fieldKey: z.ZodString;
            }, z.core.$strip>;
        }, z.core.$strip>]>>>;
        cwd: z.ZodOptional<z.ZodString>;
        workingDirectory: z.ZodOptional<z.ZodString>;
        url: z.ZodOptional<z.ZodString>;
        transport: z.ZodOptional<z.ZodEnum<{
            sse: "sse";
            "streamable-http": "streamable-http";
        }>>;
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodObject<{
            xopcSecretRef: z.ZodObject<{
                provider: z.ZodString;
                fieldKey: z.ZodString;
            }, z.core.$strip>;
        }, z.core.$strip>]>>>;
        connectionTimeoutMs: z.ZodOptional<z.ZodNumber>;
    }, z.core.$catchall<z.ZodUnknown>>>>;
    sessionIdleTtlMs: z.ZodOptional<z.ZodNumber>;
}, z.core.$strict>>;
export type McpServerConfig = z.infer<typeof McpServerSchema>;
export type McpConfig = z.infer<typeof McpConfigSchema>;
export declare const ConnectorsConfigSchema: z.ZodOptional<z.ZodObject<{
    instances: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, z.core.$strict>>;
export type ConnectorsConfig = z.infer<typeof ConnectorsConfigSchema>;
export declare const ConfigSchema: z.ZodDefault<z.ZodObject<{
    agents: z.ZodDefault<z.ZodObject<{
        default: z.ZodOptional<z.ZodString>;
        defaultPreset: z.ZodDefault<z.ZodString>;
        capabilityPresets: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
            id: z.ZodString;
            name: z.ZodString;
            description: z.ZodOptional<z.ZodString>;
            version: z.ZodDefault<z.ZodNumber>;
            extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
            models: z.ZodOptional<z.ZodObject<{
                defaultRole: z.ZodOptional<z.ZodString>;
                roles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                    model: z.ZodString;
                    fallbacks: z.ZodOptional<z.ZodArray<z.ZodString>>;
                    description: z.ZodOptional<z.ZodString>;
                }, z.core.$strict>>>;
                policy: z.ZodOptional<z.ZodObject<{
                    allowFallbacks: z.ZodOptional<z.ZodBoolean>;
                    maxCostTier: z.ZodOptional<z.ZodEnum<{
                        low: "low";
                        medium: "medium";
                        high: "high";
                    }>>;
                }, z.core.$strict>>;
            }, z.core.$strict>>;
            tools: z.ZodOptional<z.ZodDefault<z.ZodObject<{
                builtin: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
                    mode: z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>;
                    scope: z.ZodOptional<z.ZodEnum<{
                        readonly: "readonly";
                        workspace: "workspace";
                        unrestricted: "unrestricted";
                    }>>;
                    limits: z.ZodOptional<z.ZodObject<{
                        maxCallsPerTurn: z.ZodOptional<z.ZodNumber>;
                        timeoutMs: z.ZodOptional<z.ZodNumber>;
                    }, z.core.$strict>>;
                }, z.core.$strict>>>;
                mcp: z.ZodOptional<z.ZodObject<{
                    servers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                        mode: z.ZodEnum<{
                            allow: "allow";
                            confirm: "confirm";
                            deny: "deny";
                        }>;
                        scope: z.ZodOptional<z.ZodEnum<{
                            readonly: "readonly";
                            workspace: "workspace";
                            unrestricted: "unrestricted";
                        }>>;
                        limits: z.ZodOptional<z.ZodObject<{
                            maxCallsPerTurn: z.ZodOptional<z.ZodNumber>;
                            timeoutMs: z.ZodOptional<z.ZodNumber>;
                        }, z.core.$strict>>;
                    }, z.core.$strict>>>;
                    tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                        mode: z.ZodEnum<{
                            allow: "allow";
                            confirm: "confirm";
                            deny: "deny";
                        }>;
                        scope: z.ZodOptional<z.ZodEnum<{
                            readonly: "readonly";
                            workspace: "workspace";
                            unrestricted: "unrestricted";
                        }>>;
                        limits: z.ZodOptional<z.ZodObject<{
                            maxCallsPerTurn: z.ZodOptional<z.ZodNumber>;
                            timeoutMs: z.ZodOptional<z.ZodNumber>;
                        }, z.core.$strict>>;
                    }, z.core.$strict>>>;
                }, z.core.$strict>>;
            }, z.core.$strict>>>;
            skills: z.ZodOptional<z.ZodDefault<z.ZodObject<{
                mode: z.ZodDefault<z.ZodEnum<{
                    off: "off";
                    all: "all";
                    allowlist: "allowlist";
                    denylist: "denylist";
                }>>;
                allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
                deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
            }, z.core.$strict>>>;
            memory: z.ZodOptional<z.ZodDefault<z.ZodObject<{
                mode: z.ZodDefault<z.ZodEnum<{
                    off: "off";
                    readOnly: "readOnly";
                    confirmWrite: "confirmWrite";
                    auto: "auto";
                }>>;
                sources: z.ZodDefault<z.ZodArray<z.ZodEnum<{
                    workspace: "workspace";
                    session: "session";
                    userProfile: "userProfile";
                    agentProfile: "agentProfile";
                    curated: "curated";
                }>>>;
                writePolicy: z.ZodOptional<z.ZodObject<{
                    userProfile: z.ZodOptional<z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>>;
                    agentProfile: z.ZodOptional<z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>>;
                    curated: z.ZodOptional<z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>>;
                    workspace: z.ZodOptional<z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>>;
                }, z.core.$strict>>;
                retention: z.ZodOptional<z.ZodObject<{
                    compaction: z.ZodDefault<z.ZodBoolean>;
                    maxAgeDays: z.ZodOptional<z.ZodNumber>;
                    maxItems: z.ZodOptional<z.ZodNumber>;
                }, z.core.$strict>>;
                privacy: z.ZodOptional<z.ZodObject<{
                    crossAgentSharing: z.ZodDefault<z.ZodEnum<{
                        allow: "allow";
                        deny: "deny";
                        readOnly: "readOnly";
                    }>>;
                    sensitiveWritePolicy: z.ZodDefault<z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>>;
                }, z.core.$strict>>;
                providerRouting: z.ZodOptional<z.ZodObject<{
                    searchStrategy: z.ZodDefault<z.ZodEnum<{
                        "local-first": "local-first";
                        "external-first": "external-first";
                        fanout: "fanout";
                        "local-only": "local-only";
                        "external-only": "external-only";
                    }>>;
                    writeStrategy: z.ZodDefault<z.ZodEnum<{
                        "local-first": "local-first";
                        "external-first": "external-first";
                        "local-only": "local-only";
                        "external-only": "external-only";
                        "write-through": "write-through";
                    }>>;
                    allowExternalWrites: z.ZodDefault<z.ZodBoolean>;
                    allowedProviderIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
                    autoWriteKinds: z.ZodOptional<z.ZodArray<z.ZodEnum<{
                        user_profile: "user_profile";
                        agent_note: "agent_note";
                        workspace_fact: "workspace_fact";
                        daily_note: "daily_note";
                        session_summary: "session_summary";
                        derived_insight: "derived_insight";
                    }>>>;
                }, z.core.$strict>>;
                dreaming: z.ZodOptional<z.ZodObject<{
                    enabled: z.ZodDefault<z.ZodBoolean>;
                    frequency: z.ZodOptional<z.ZodString>;
                    timezone: z.ZodOptional<z.ZodString>;
                    phases: z.ZodOptional<z.ZodObject<{
                        light: z.ZodOptional<z.ZodObject<{
                            enabled: z.ZodOptional<z.ZodBoolean>;
                            cron: z.ZodOptional<z.ZodString>;
                            lookbackDays: z.ZodOptional<z.ZodNumber>;
                            limit: z.ZodOptional<z.ZodNumber>;
                            dedupeSimilarity: z.ZodOptional<z.ZodNumber>;
                        }, z.core.$strict>>;
                        deep: z.ZodOptional<z.ZodObject<{
                            enabled: z.ZodOptional<z.ZodBoolean>;
                            cron: z.ZodOptional<z.ZodString>;
                            minScore: z.ZodOptional<z.ZodNumber>;
                            minRecallCount: z.ZodOptional<z.ZodNumber>;
                            minUniqueQueries: z.ZodOptional<z.ZodNumber>;
                            limit: z.ZodOptional<z.ZodNumber>;
                            recencyHalfLifeDays: z.ZodOptional<z.ZodNumber>;
                            maxAgeDays: z.ZodOptional<z.ZodNumber>;
                        }, z.core.$strict>>;
                        rem: z.ZodOptional<z.ZodObject<{
                            enabled: z.ZodOptional<z.ZodBoolean>;
                            cron: z.ZodOptional<z.ZodString>;
                            lookbackDays: z.ZodOptional<z.ZodNumber>;
                            limit: z.ZodOptional<z.ZodNumber>;
                            minPatternStrength: z.ZodOptional<z.ZodNumber>;
                        }, z.core.$strict>>;
                    }, z.core.$strict>>;
                }, z.core.$strict>>;
            }, z.core.$strict>>>;
            workflows: z.ZodOptional<z.ZodDefault<z.ZodObject<{
                default: z.ZodOptional<z.ZodString>;
                allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
                suggested: z.ZodOptional<z.ZodArray<z.ZodObject<{
                    intent: z.ZodString;
                    workflow: z.ZodString;
                }, z.core.$strict>>>;
            }, z.core.$strict>>>;
            boundaries: z.ZodOptional<z.ZodDefault<z.ZodObject<{
                requiresConfirmation: z.ZodDefault<z.ZodArray<z.ZodString>>;
                forbidden: z.ZodDefault<z.ZodArray<z.ZodString>>;
                escalation: z.ZodDefault<z.ZodArray<z.ZodString>>;
            }, z.core.$strict>>>;
            runtime: z.ZodOptional<z.ZodObject<{
                maxTurns: z.ZodOptional<z.ZodNumber>;
                timeoutMs: z.ZodOptional<z.ZodNumber>;
                maxToolFailuresPerTurn: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strict>>;
            locks: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strict>>>;
        list: z.ZodDefault<z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            enabled: z.ZodDefault<z.ZodBoolean>;
            extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
            identity: z.ZodObject<{
                name: z.ZodString;
                description: z.ZodOptional<z.ZodString>;
                role: z.ZodString;
                language: z.ZodDefault<z.ZodString>;
                tone: z.ZodDefault<z.ZodString>;
                avatar: z.ZodOptional<z.ZodString>;
            }, z.core.$strict>;
            responsibilities: z.ZodObject<{
                primary: z.ZodArray<z.ZodString>;
                secondary: z.ZodOptional<z.ZodArray<z.ZodString>>;
                outOfScope: z.ZodOptional<z.ZodArray<z.ZodString>>;
            }, z.core.$strict>;
            workspace: z.ZodObject<{
                root: z.ZodString;
            }, z.core.$strict>;
            tools: z.ZodDefault<z.ZodObject<{
                builtin: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
                    mode: z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>;
                    scope: z.ZodOptional<z.ZodEnum<{
                        readonly: "readonly";
                        workspace: "workspace";
                        unrestricted: "unrestricted";
                    }>>;
                    limits: z.ZodOptional<z.ZodObject<{
                        maxCallsPerTurn: z.ZodOptional<z.ZodNumber>;
                        timeoutMs: z.ZodOptional<z.ZodNumber>;
                    }, z.core.$strict>>;
                }, z.core.$strict>>>;
                mcp: z.ZodOptional<z.ZodObject<{
                    servers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                        mode: z.ZodEnum<{
                            allow: "allow";
                            confirm: "confirm";
                            deny: "deny";
                        }>;
                        scope: z.ZodOptional<z.ZodEnum<{
                            readonly: "readonly";
                            workspace: "workspace";
                            unrestricted: "unrestricted";
                        }>>;
                        limits: z.ZodOptional<z.ZodObject<{
                            maxCallsPerTurn: z.ZodOptional<z.ZodNumber>;
                            timeoutMs: z.ZodOptional<z.ZodNumber>;
                        }, z.core.$strict>>;
                    }, z.core.$strict>>>;
                    tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                        mode: z.ZodEnum<{
                            allow: "allow";
                            confirm: "confirm";
                            deny: "deny";
                        }>;
                        scope: z.ZodOptional<z.ZodEnum<{
                            readonly: "readonly";
                            workspace: "workspace";
                            unrestricted: "unrestricted";
                        }>>;
                        limits: z.ZodOptional<z.ZodObject<{
                            maxCallsPerTurn: z.ZodOptional<z.ZodNumber>;
                            timeoutMs: z.ZodOptional<z.ZodNumber>;
                        }, z.core.$strict>>;
                    }, z.core.$strict>>>;
                }, z.core.$strict>>;
            }, z.core.$strict>>;
            skills: z.ZodDefault<z.ZodObject<{
                mode: z.ZodDefault<z.ZodEnum<{
                    off: "off";
                    all: "all";
                    allowlist: "allowlist";
                    denylist: "denylist";
                }>>;
                allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
                deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
            }, z.core.$strict>>;
            memory: z.ZodDefault<z.ZodObject<{
                mode: z.ZodDefault<z.ZodEnum<{
                    off: "off";
                    readOnly: "readOnly";
                    confirmWrite: "confirmWrite";
                    auto: "auto";
                }>>;
                sources: z.ZodDefault<z.ZodArray<z.ZodEnum<{
                    workspace: "workspace";
                    session: "session";
                    userProfile: "userProfile";
                    agentProfile: "agentProfile";
                    curated: "curated";
                }>>>;
                writePolicy: z.ZodOptional<z.ZodObject<{
                    userProfile: z.ZodOptional<z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>>;
                    agentProfile: z.ZodOptional<z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>>;
                    curated: z.ZodOptional<z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>>;
                    workspace: z.ZodOptional<z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>>;
                }, z.core.$strict>>;
                retention: z.ZodOptional<z.ZodObject<{
                    compaction: z.ZodDefault<z.ZodBoolean>;
                    maxAgeDays: z.ZodOptional<z.ZodNumber>;
                    maxItems: z.ZodOptional<z.ZodNumber>;
                }, z.core.$strict>>;
                privacy: z.ZodOptional<z.ZodObject<{
                    crossAgentSharing: z.ZodDefault<z.ZodEnum<{
                        allow: "allow";
                        deny: "deny";
                        readOnly: "readOnly";
                    }>>;
                    sensitiveWritePolicy: z.ZodDefault<z.ZodEnum<{
                        allow: "allow";
                        confirm: "confirm";
                        deny: "deny";
                    }>>;
                }, z.core.$strict>>;
                providerRouting: z.ZodOptional<z.ZodObject<{
                    searchStrategy: z.ZodDefault<z.ZodEnum<{
                        "local-first": "local-first";
                        "external-first": "external-first";
                        fanout: "fanout";
                        "local-only": "local-only";
                        "external-only": "external-only";
                    }>>;
                    writeStrategy: z.ZodDefault<z.ZodEnum<{
                        "local-first": "local-first";
                        "external-first": "external-first";
                        "local-only": "local-only";
                        "external-only": "external-only";
                        "write-through": "write-through";
                    }>>;
                    allowExternalWrites: z.ZodDefault<z.ZodBoolean>;
                    allowedProviderIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
                    autoWriteKinds: z.ZodOptional<z.ZodArray<z.ZodEnum<{
                        user_profile: "user_profile";
                        agent_note: "agent_note";
                        workspace_fact: "workspace_fact";
                        daily_note: "daily_note";
                        session_summary: "session_summary";
                        derived_insight: "derived_insight";
                    }>>>;
                }, z.core.$strict>>;
                dreaming: z.ZodOptional<z.ZodObject<{
                    enabled: z.ZodDefault<z.ZodBoolean>;
                    frequency: z.ZodOptional<z.ZodString>;
                    timezone: z.ZodOptional<z.ZodString>;
                    phases: z.ZodOptional<z.ZodObject<{
                        light: z.ZodOptional<z.ZodObject<{
                            enabled: z.ZodOptional<z.ZodBoolean>;
                            cron: z.ZodOptional<z.ZodString>;
                            lookbackDays: z.ZodOptional<z.ZodNumber>;
                            limit: z.ZodOptional<z.ZodNumber>;
                            dedupeSimilarity: z.ZodOptional<z.ZodNumber>;
                        }, z.core.$strict>>;
                        deep: z.ZodOptional<z.ZodObject<{
                            enabled: z.ZodOptional<z.ZodBoolean>;
                            cron: z.ZodOptional<z.ZodString>;
                            minScore: z.ZodOptional<z.ZodNumber>;
                            minRecallCount: z.ZodOptional<z.ZodNumber>;
                            minUniqueQueries: z.ZodOptional<z.ZodNumber>;
                            limit: z.ZodOptional<z.ZodNumber>;
                            recencyHalfLifeDays: z.ZodOptional<z.ZodNumber>;
                            maxAgeDays: z.ZodOptional<z.ZodNumber>;
                        }, z.core.$strict>>;
                        rem: z.ZodOptional<z.ZodObject<{
                            enabled: z.ZodOptional<z.ZodBoolean>;
                            cron: z.ZodOptional<z.ZodString>;
                            lookbackDays: z.ZodOptional<z.ZodNumber>;
                            limit: z.ZodOptional<z.ZodNumber>;
                            minPatternStrength: z.ZodOptional<z.ZodNumber>;
                        }, z.core.$strict>>;
                    }, z.core.$strict>>;
                }, z.core.$strict>>;
            }, z.core.$strict>>;
            workflows: z.ZodDefault<z.ZodObject<{
                default: z.ZodOptional<z.ZodString>;
                allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
                suggested: z.ZodOptional<z.ZodArray<z.ZodObject<{
                    intent: z.ZodString;
                    workflow: z.ZodString;
                }, z.core.$strict>>>;
            }, z.core.$strict>>;
            boundaries: z.ZodDefault<z.ZodObject<{
                requiresConfirmation: z.ZodDefault<z.ZodArray<z.ZodString>>;
                forbidden: z.ZodDefault<z.ZodArray<z.ZodString>>;
                escalation: z.ZodDefault<z.ZodArray<z.ZodString>>;
            }, z.core.$strict>>;
            runtime: z.ZodOptional<z.ZodObject<{
                maxTurns: z.ZodOptional<z.ZodNumber>;
                timeoutMs: z.ZodOptional<z.ZodNumber>;
                maxToolFailuresPerTurn: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strict>>;
            prompt: z.ZodOptional<z.ZodObject<{
                customInstructions: z.ZodOptional<z.ZodString>;
            }, z.core.$strict>>;
            models: z.ZodOptional<z.ZodObject<{
                defaultRole: z.ZodString;
                roles: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
                    model: z.ZodString;
                    fallbacks: z.ZodOptional<z.ZodArray<z.ZodString>>;
                    description: z.ZodOptional<z.ZodString>;
                }, z.core.$strict>>>;
                policy: z.ZodOptional<z.ZodObject<{
                    allowFallbacks: z.ZodOptional<z.ZodBoolean>;
                    maxCostTier: z.ZodOptional<z.ZodEnum<{
                        low: "low";
                        medium: "medium";
                        high: "high";
                    }>>;
                }, z.core.$strict>>;
            }, z.core.$strict>>;
        }, z.core.$strict>>>;
    }, z.core.$strict>>;
    bindings: z.ZodDefault<z.ZodArray<z.ZodObject<{
        id: z.ZodOptional<z.ZodString>;
        agentId: z.ZodString;
        priority: z.ZodDefault<z.ZodNumber>;
        match: z.ZodObject<{
            channel: z.ZodString;
            accountId: z.ZodOptional<z.ZodString>;
            peerKind: z.ZodOptional<z.ZodString>;
            peerId: z.ZodOptional<z.ZodString>;
            guildId: z.ZodOptional<z.ZodString>;
            teamId: z.ZodOptional<z.ZodString>;
            memberRoleIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strip>;
        enabled: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>>;
    session: z.ZodDefault<z.ZodObject<{
        scope: z.ZodDefault<z.ZodEnum<{
            "per-sender": "per-sender";
            global: "global";
        }>>;
        mainKey: z.ZodDefault<z.ZodString>;
        dmScope: z.ZodDefault<z.ZodEnum<{
            main: "main";
            "per-peer": "per-peer";
            "per-channel-peer": "per-channel-peer";
            "per-account-channel-peer": "per-account-channel-peer";
        }>>;
        identityLinks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
        resetTriggers: z.ZodOptional<z.ZodArray<z.ZodString>>;
        idleMinutes: z.ZodOptional<z.ZodNumber>;
        reset: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<{
                daily: "daily";
                idle: "idle";
            }>>;
            atHour: z.ZodOptional<z.ZodNumber>;
            idleMinutes: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
        resetByType: z.ZodOptional<z.ZodObject<{
            direct: z.ZodOptional<z.ZodObject<{
                mode: z.ZodOptional<z.ZodEnum<{
                    daily: "daily";
                    idle: "idle";
                }>>;
                atHour: z.ZodOptional<z.ZodNumber>;
                idleMinutes: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strict>>;
            group: z.ZodOptional<z.ZodObject<{
                mode: z.ZodOptional<z.ZodEnum<{
                    daily: "daily";
                    idle: "idle";
                }>>;
                atHour: z.ZodOptional<z.ZodNumber>;
                idleMinutes: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strict>>;
            thread: z.ZodOptional<z.ZodObject<{
                mode: z.ZodOptional<z.ZodEnum<{
                    daily: "daily";
                    idle: "idle";
                }>>;
                atHour: z.ZodOptional<z.ZodNumber>;
                idleMinutes: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strict>>;
        }, z.core.$strict>>;
        resetByChannel: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<{
                daily: "daily";
                idle: "idle";
            }>>;
            atHour: z.ZodOptional<z.ZodNumber>;
            idleMinutes: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>>;
        storage: z.ZodOptional<z.ZodObject<{
            pruneAfterMs: z.ZodOptional<z.ZodNumber>;
            maxEntries: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
    channels: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    gateway: z.ZodDefault<z.ZodObject<{
        bind: z.ZodOptional<z.ZodEnum<{
            custom: "custom";
            auto: "auto";
            loopback: "loopback";
            lan: "lan";
            tailnet: "tailnet";
        }>>;
        customBindHost: z.ZodOptional<z.ZodString>;
        port: z.ZodOptional<z.ZodNumber>;
        mode: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
            local: "local";
            remote: "remote";
        }>>>;
        remote: z.ZodOptional<z.ZodObject<{
            url: z.ZodString;
            token: z.ZodOptional<z.ZodString>;
            password: z.ZodOptional<z.ZodString>;
            transport: z.ZodDefault<z.ZodEnum<{
                direct: "direct";
                ssh: "ssh";
            }>>;
            sshTarget: z.ZodOptional<z.ZodString>;
            sshIdentity: z.ZodOptional<z.ZodString>;
            tlsFingerprint: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        tailscale: z.ZodOptional<z.ZodDefault<z.ZodObject<{
            mode: z.ZodDefault<z.ZodEnum<{
                off: "off";
                serve: "serve";
                funnel: "funnel";
            }>>;
            resetOnExit: z.ZodDefault<z.ZodBoolean>;
            consent: z.ZodOptional<z.ZodObject<{
                version: z.ZodString;
                acceptedAt: z.ZodString;
            }, z.core.$strip>>;
        }, z.core.$strip>>>;
        tls: z.ZodOptional<z.ZodDefault<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            autoGenerate: z.ZodDefault<z.ZodBoolean>;
            certPath: z.ZodOptional<z.ZodString>;
            keyPath: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>>;
        auth: z.ZodOptional<z.ZodDefault<z.ZodObject<{
            mode: z.ZodDefault<z.ZodEnum<{
                none: "none";
                token: "token";
                password: "password";
                "trusted-proxy": "trusted-proxy";
            }>>;
            token: z.ZodOptional<z.ZodString>;
            password: z.ZodOptional<z.ZodString>;
            allowTailscale: z.ZodOptional<z.ZodBoolean>;
            rateLimit: z.ZodOptional<z.ZodObject<{
                enabled: z.ZodDefault<z.ZodBoolean>;
                maxAttempts: z.ZodDefault<z.ZodNumber>;
                windowMs: z.ZodDefault<z.ZodNumber>;
                blockDurationMs: z.ZodDefault<z.ZodNumber>;
                lockoutMs: z.ZodOptional<z.ZodNumber>;
                exemptLoopback: z.ZodDefault<z.ZodBoolean>;
                burstCoalesceMs: z.ZodDefault<z.ZodNumber>;
            }, z.core.$strip>>;
            trustedProxy: z.ZodOptional<z.ZodObject<{
                userHeader: z.ZodString;
                requiredHeaders: z.ZodOptional<z.ZodArray<z.ZodString>>;
                allowUsers: z.ZodOptional<z.ZodArray<z.ZodString>>;
                allowLoopback: z.ZodOptional<z.ZodBoolean>;
            }, z.core.$strict>>;
        }, z.core.$strip>>>;
        heartbeat: z.ZodOptional<z.ZodDefault<z.ZodObject<{
            enabled: z.ZodBoolean;
            intervalMs: z.ZodNumber;
            includeSystemPromptSection: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            target: z.ZodOptional<z.ZodString>;
            targetChatId: z.ZodOptional<z.ZodString>;
            prompt: z.ZodOptional<z.ZodString>;
            ackMaxChars: z.ZodOptional<z.ZodNumber>;
            isolatedSession: z.ZodOptional<z.ZodBoolean>;
            activeHours: z.ZodOptional<z.ZodObject<{
                start: z.ZodString;
                end: z.ZodString;
                timezone: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>>;
        }, z.core.$strip>>>;
        maxSseConnections: z.ZodOptional<z.ZodNumber>;
        corsOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
        publicUrl: z.ZodOptional<z.ZodString>;
        dangerouslyAllowHostHeaderOriginFallback: z.ZodOptional<z.ZodBoolean>;
        trustedProxies: z.ZodOptional<z.ZodArray<z.ZodString>>;
        allowRealIpFallback: z.ZodOptional<z.ZodBoolean>;
        security: z.ZodOptional<z.ZodObject<{
            strict: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strip>>;
        channelConnectDeferMode: z.ZodOptional<z.ZodEnum<{
            off: "off";
            auto: "auto";
            explicit: "explicit";
        }>>;
        channelConnectDeferIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
        channelConnectDeferSkipIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
        skillsMarketplaceProvider: z.ZodOptional<z.ZodString>;
        skillsStoreBaseUrl: z.ZodOptional<z.ZodString>;
        share: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            defaultTtlMs: z.ZodDefault<z.ZodNumber>;
            maxTtlMs: z.ZodDefault<z.ZodNumber>;
            maxActiveShares: z.ZodDefault<z.ZodNumber>;
            maxFileSize: z.ZodDefault<z.ZodNumber>;
            inlinePreviewMimes: z.ZodDefault<z.ZodArray<z.ZodString>>;
            directory: z.ZodDefault<z.ZodObject<{
                enabled: z.ZodDefault<z.ZodBoolean>;
                maxFolderSize: z.ZodDefault<z.ZodNumber>;
                maxFileCount: z.ZodDefault<z.ZodNumber>;
                maxDepth: z.ZodDefault<z.ZodNumber>;
                listingCacheMs: z.ZodDefault<z.ZodNumber>;
                zipConcurrency: z.ZodDefault<z.ZodNumber>;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        siteShare: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            publicHostSuffix: z.ZodDefault<z.ZodString>;
            defaultTtlMs: z.ZodDefault<z.ZodNumber>;
            maxTtlMs: z.ZodDefault<z.ZodNumber>;
            maxActiveSites: z.ZodDefault<z.ZodNumber>;
            static: z.ZodDefault<z.ZodObject<{
                enabled: z.ZodDefault<z.ZodBoolean>;
                maxRootDirSize: z.ZodDefault<z.ZodNumber>;
                maxFileCount: z.ZodDefault<z.ZodNumber>;
                rewriteEnabledByDefault: z.ZodDefault<z.ZodBoolean>;
            }, z.core.$strip>>;
            proxy: z.ZodDefault<z.ZodObject<{
                enabled: z.ZodDefault<z.ZodBoolean>;
                allowedUpstreamHosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
                allowedUpstreamPorts: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
                forwardWebSocket: z.ZodDefault<z.ZodBoolean>;
                bodySizeLimit: z.ZodDefault<z.ZodNumber>;
                requestTimeoutMs: z.ZodDefault<z.ZodNumber>;
                wsIdleTimeoutMs: z.ZodDefault<z.ZodNumber>;
                rewriteSetCookiePath: z.ZodDefault<z.ZodBoolean>;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
    browser: z.ZodDefault<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        backend: z.ZodDefault<z.ZodEnum<{
            local: "local";
            cdp: "cdp";
            cloud: "cloud";
            extension: "extension";
            cloakbrowser: "cloakbrowser";
        }>>;
        headless: z.ZodOptional<z.ZodBoolean>;
        allowPrivateUrls: z.ZodOptional<z.ZodBoolean>;
        commandTimeout: z.ZodOptional<z.ZodNumber>;
        cloudProvider: z.ZodOptional<z.ZodEnum<{
            local: "local";
            browserbase: "browserbase";
            "browser-use": "browser-use";
        }>>;
        cloud: z.ZodOptional<z.ZodObject<{
            apiKey: z.ZodOptional<z.ZodString>;
            projectId: z.ZodOptional<z.ZodString>;
            region: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>>;
        cdpUrl: z.ZodOptional<z.ZodString>;
        extension: z.ZodOptional<z.ZodObject<{
            port: z.ZodOptional<z.ZodNumber>;
            host: z.ZodOptional<z.ZodString>;
            connectionTimeout: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
        cloakbrowser: z.ZodOptional<z.ZodObject<{
            keepOpen: z.ZodOptional<z.ZodBoolean>;
            temporaryProfile: z.ZodOptional<z.ZodBoolean>;
            cacheDir: z.ZodOptional<z.ZodString>;
            binaryPath: z.ZodOptional<z.ZodString>;
            timezone: z.ZodOptional<z.ZodString>;
            locale: z.ZodOptional<z.ZodString>;
            webrtcIp: z.ZodOptional<z.ZodString>;
            fingerprintPlatform: z.ZodOptional<z.ZodString>;
            extraArgs: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strict>>;
        humanize: z.ZodOptional<z.ZodBoolean>;
        humanPreset: z.ZodOptional<z.ZodEnum<{
            default: "default";
            careful: "careful";
        }>>;
        dialogPolicy: z.ZodOptional<z.ZodEnum<{
            must_respond: "must_respond";
            auto_dismiss: "auto_dismiss";
            auto_accept: "auto_accept";
        }>>;
        dialogTimeoutSeconds: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
    tunnel: z.ZodOptional<z.ZodDefault<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        brokerUrl: z.ZodDefault<z.ZodString>;
        registrationSecret: z.ZodOptional<z.ZodString>;
        autoStart: z.ZodDefault<z.ZodBoolean>;
        subdomain: z.ZodOptional<z.ZodString>;
        consent: z.ZodOptional<z.ZodObject<{
            version: z.ZodString;
            acceptedAt: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>>>;
    workspace: z.ZodOptional<z.ZodObject<{
        import: z.ZodOptional<z.ZodObject<{
            targetDir: z.ZodDefault<z.ZodString>;
            maxBytes: z.ZodDefault<z.ZodNumber>;
            allowOverwrite: z.ZodDefault<z.ZodBoolean>;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
    tools: z.ZodDefault<z.ZodObject<{
        web: z.ZodOptional<z.ZodObject<{
            region: z.ZodOptional<z.ZodEnum<{
                global: "global";
                cn: "cn";
            }>>;
            search: z.ZodOptional<z.ZodObject<{
                maxResults: z.ZodDefault<z.ZodNumber>;
                providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
                    type: z.ZodEnum<{
                        brave: "brave";
                        tavily: "tavily";
                        bing: "bing";
                        searxng: "searxng";
                    }>;
                    apiKey: z.ZodOptional<z.ZodString>;
                    url: z.ZodOptional<z.ZodString>;
                    disabled: z.ZodOptional<z.ZodBoolean>;
                }, z.core.$strip>>>;
            }, z.core.$strip>>;
            blocklist: z.ZodOptional<z.ZodObject<{
                enabled: z.ZodDefault<z.ZodBoolean>;
                domains: z.ZodDefault<z.ZodArray<z.ZodString>>;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        media: z.ZodLazy<z.ZodOptional<z.ZodObject<{
            models: z.ZodOptional<z.ZodArray<z.ZodObject<{
                provider: z.ZodOptional<z.ZodString>;
                model: z.ZodOptional<z.ZodString>;
                capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
                    image: "image";
                    audio: "audio";
                    video: "video";
                }>>>;
                type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"provider">, z.ZodLiteral<"cli">]>>;
                command: z.ZodOptional<z.ZodString>;
                baseUrl: z.ZodOptional<z.ZodString>;
                headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
                apiKey: z.ZodOptional<z.ZodString>;
                language: z.ZodOptional<z.ZodString>;
                prompt: z.ZodOptional<z.ZodString>;
            }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
            audio: z.ZodOptional<z.ZodObject<{
                enabled: z.ZodDefault<z.ZodBoolean>;
                provider: z.ZodDefault<z.ZodString>;
                fallback: z.ZodOptional<z.ZodObject<{
                    enabled: z.ZodDefault<z.ZodBoolean>;
                    order: z.ZodDefault<z.ZodArray<z.ZodString>>;
                }, z.core.$strip>>;
                timeoutMs: z.ZodOptional<z.ZodNumber>;
                models: z.ZodOptional<z.ZodArray<z.ZodObject<{
                    provider: z.ZodOptional<z.ZodString>;
                    model: z.ZodOptional<z.ZodString>;
                    capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
                        image: "image";
                        audio: "audio";
                        video: "video";
                    }>>>;
                    type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"provider">, z.ZodLiteral<"cli">]>>;
                    command: z.ZodOptional<z.ZodString>;
                    baseUrl: z.ZodOptional<z.ZodString>;
                    headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
                    apiKey: z.ZodOptional<z.ZodString>;
                    language: z.ZodOptional<z.ZodString>;
                    prompt: z.ZodOptional<z.ZodString>;
                }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
                providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                    apiKey: z.ZodOptional<z.ZodString>;
                    model: z.ZodOptional<z.ZodString>;
                    baseUrl: z.ZodOptional<z.ZodString>;
                    headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
                    language: z.ZodOptional<z.ZodString>;
                    prompt: z.ZodOptional<z.ZodString>;
                }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
            }, z.core.$strict>>;
        }, z.core.$strip>>>;
    }, z.core.$strip>>;
    mcp: z.ZodOptional<z.ZodObject<{
        servers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            command: z.ZodOptional<z.ZodString>;
            args: z.ZodOptional<z.ZodArray<z.ZodString>>;
            env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodObject<{
                xopcSecretRef: z.ZodObject<{
                    provider: z.ZodString;
                    fieldKey: z.ZodString;
                }, z.core.$strip>;
            }, z.core.$strip>]>>>;
            cwd: z.ZodOptional<z.ZodString>;
            workingDirectory: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
            transport: z.ZodOptional<z.ZodEnum<{
                sse: "sse";
                "streamable-http": "streamable-http";
            }>>;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodObject<{
                xopcSecretRef: z.ZodObject<{
                    provider: z.ZodString;
                    fieldKey: z.ZodString;
                }, z.core.$strip>;
            }, z.core.$strip>]>>>;
            connectionTimeoutMs: z.ZodOptional<z.ZodNumber>;
        }, z.core.$catchall<z.ZodUnknown>>>>;
        sessionIdleTtlMs: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
    connectors: z.ZodOptional<z.ZodObject<{
        instances: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
    }, z.core.$strict>>;
    goals: z.ZodOptional<z.ZodObject<{
        maxTurns: z.ZodDefault<z.ZodNumber>;
        judgeModelRef: z.ZodOptional<z.ZodString>;
        checklistMode: z.ZodDefault<z.ZodBoolean>;
        checklistDecomposePolicy: z.ZodDefault<z.ZodEnum<{
            empty_only: "empty_only";
            supplement_existing: "supplement_existing";
        }>>;
        maxConsecutiveParseFailures: z.ZodDefault<z.ZodNumber>;
        judgeTimeoutMs: z.ZodDefault<z.ZodNumber>;
        checklistHistoryChars: z.ZodDefault<z.ZodNumber>;
        notifications: z.ZodDefault<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            includeLinkedSessions: z.ZodDefault<z.ZodBoolean>;
            channels: z.ZodDefault<z.ZodArray<z.ZodString>>;
            events: z.ZodDefault<z.ZodArray<z.ZodEnum<{
                done: "done";
                blocked: "blocked";
                needs_input: "needs_input";
                queue_failed: "queue_failed";
                queue_retry: "queue_retry";
                queue_succeeded: "queue_succeeded";
                queue_skipped: "queue_skipped";
            }>>>;
            targets: z.ZodDefault<z.ZodArray<z.ZodObject<{
                channel: z.ZodString;
                chatId: z.ZodString;
                accountId: z.ZodOptional<z.ZodString>;
                threadId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
                silent: z.ZodOptional<z.ZodBoolean>;
                events: z.ZodOptional<z.ZodArray<z.ZodEnum<{
                    done: "done";
                    blocked: "blocked";
                    needs_input: "needs_input";
                    queue_failed: "queue_failed";
                    queue_retry: "queue_retry";
                    queue_succeeded: "queue_succeeded";
                    queue_skipped: "queue_skipped";
                }>>>;
            }, z.core.$strict>>>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    extensions: z.ZodDefault<z.ZodType<Record<string, unknown>, unknown, z.core.$ZodTypeInternals<Record<string, unknown>, unknown>>>;
    providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        apiKey: z.ZodOptional<z.ZodString>;
        baseUrl: z.ZodOptional<z.ZodString>;
        region: z.ZodOptional<z.ZodString>;
        imageBaseUrl: z.ZodOptional<z.ZodString>;
        request: z.ZodOptional<z.ZodObject<{
            timeoutMs: z.ZodOptional<z.ZodNumber>;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        }, z.core.$strict>>;
        azure: z.ZodOptional<z.ZodObject<{
            resource: z.ZodOptional<z.ZodString>;
            deployment: z.ZodOptional<z.ZodString>;
            apiVersion: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>>;
    }, z.core.$strict>>>;
    modelsDev: z.ZodDefault<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    messages: z.ZodOptional<z.ZodObject<{
        tts: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            provider: z.ZodDefault<z.ZodString>;
            trigger: z.ZodDefault<z.ZodEnum<{
                off: "off";
                always: "always";
                inbound: "inbound";
                tagged: "tagged";
            }>>;
            fallback: z.ZodOptional<z.ZodObject<{
                enabled: z.ZodDefault<z.ZodBoolean>;
                order: z.ZodDefault<z.ZodArray<z.ZodString>>;
            }, z.core.$strip>>;
            maxTextLength: z.ZodDefault<z.ZodNumber>;
            timeoutMs: z.ZodDefault<z.ZodNumber>;
            summarization: z.ZodOptional<z.ZodObject<{
                enabled: z.ZodOptional<z.ZodBoolean>;
                targetLength: z.ZodOptional<z.ZodNumber>;
                threshold: z.ZodOptional<z.ZodNumber>;
                model: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>>;
            modelOverrides: z.ZodOptional<z.ZodObject<{
                enabled: z.ZodDefault<z.ZodBoolean>;
                allowText: z.ZodDefault<z.ZodBoolean>;
                allowProvider: z.ZodDefault<z.ZodBoolean>;
                allowVoice: z.ZodDefault<z.ZodBoolean>;
                allowModelId: z.ZodDefault<z.ZodBoolean>;
                allowVoiceSettings: z.ZodDefault<z.ZodBoolean>;
                allowNormalization: z.ZodDefault<z.ZodBoolean>;
                allowSeed: z.ZodDefault<z.ZodBoolean>;
            }, z.core.$strip>>;
            providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                apiKey: z.ZodOptional<z.ZodString>;
                model: z.ZodOptional<z.ZodString>;
                voice: z.ZodOptional<z.ZodString>;
            }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>;
        }, z.core.$strict>>;
    }, z.core.$strip>>;
    update: z.ZodOptional<z.ZodObject<{
        checkOnStart: z.ZodDefault<z.ZodBoolean>;
        channel: z.ZodDefault<z.ZodEnum<{
            stable: "stable";
            beta: "beta";
            dev: "dev";
        }>>;
        auto: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            stableDelayHours: z.ZodDefault<z.ZodNumber>;
            stableJitterHours: z.ZodDefault<z.ZodNumber>;
            betaCheckIntervalHours: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    commands: z.ZodOptional<z.ZodObject<{
        restart: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strict>>;
    tui: z.ZodDefault<z.ZodObject<{
        defaultAgent: z.ZodDefault<z.ZodString>;
    }, z.core.$strict>>;
}, z.core.$strip>>;
export type Config = z.infer<typeof ConfigSchema>;
export type GatewayAuthConfig = z.infer<typeof GatewayAuthSchema>;
export type GatewayTrustedProxyConfig = z.infer<typeof GatewayTrustedProxySchema>;
export type GatewayAuthRateLimitConfig = z.infer<typeof GatewayAuthRateLimitSchema>;
export type GatewayBindMode = z.infer<typeof GatewayBindModeSchema>;
export type STTConfig = z.infer<typeof STTConfigSchema>;
export type TTSConfig = z.infer<typeof TTSConfigSchema>;
/**
 * Parse a model reference string.
 */
export interface ParsedModelRef {
    provider: string;
    model: string;
}
export declare function getAgentDefaultModelRef(config: Config): string | undefined;
/** `provider/model` or null when invalid. */
export declare function parseModelRef(ref: string): ParsedModelRef | null;
