import { z } from "zod";
export declare const HeartbeatSchema: z.ZodOptional<z.ZodObject<{
    every: z.ZodOptional<z.ZodString>;
    activeHours: z.ZodOptional<z.ZodObject<{
        start: z.ZodOptional<z.ZodString>;
        end: z.ZodOptional<z.ZodString>;
        timezone: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
    model: z.ZodOptional<z.ZodString>;
    session: z.ZodOptional<z.ZodString>;
    includeReasoning: z.ZodOptional<z.ZodBoolean>;
    target: z.ZodOptional<z.ZodString>;
    to: z.ZodOptional<z.ZodString>;
    accountId: z.ZodOptional<z.ZodString>;
    prompt: z.ZodOptional<z.ZodString>;
    ackMaxChars: z.ZodOptional<z.ZodNumber>;
}, z.core.$strict>>;
export declare const SandboxDockerSchema: z.ZodOptional<z.ZodObject<{
    image: z.ZodOptional<z.ZodString>;
    containerPrefix: z.ZodOptional<z.ZodString>;
    workdir: z.ZodOptional<z.ZodString>;
    readOnlyRoot: z.ZodOptional<z.ZodBoolean>;
    tmpfs: z.ZodOptional<z.ZodArray<z.ZodString>>;
    network: z.ZodOptional<z.ZodString>;
    user: z.ZodOptional<z.ZodString>;
    capDrop: z.ZodOptional<z.ZodArray<z.ZodString>>;
    env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    setupCommand: z.ZodOptional<z.ZodString>;
    pidsLimit: z.ZodOptional<z.ZodNumber>;
    memory: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
    memorySwap: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
    cpus: z.ZodOptional<z.ZodNumber>;
    ulimits: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
        soft: z.ZodOptional<z.ZodNumber>;
        hard: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>]>>>;
    seccompProfile: z.ZodOptional<z.ZodString>;
    apparmorProfile: z.ZodOptional<z.ZodString>;
    dns: z.ZodOptional<z.ZodArray<z.ZodString>>;
    extraHosts: z.ZodOptional<z.ZodArray<z.ZodString>>;
    binds: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strict>>;
export declare const SandboxBrowserSchema: z.ZodOptional<z.ZodObject<{
    enabled: z.ZodOptional<z.ZodBoolean>;
    image: z.ZodOptional<z.ZodString>;
    containerPrefix: z.ZodOptional<z.ZodString>;
    cdpPort: z.ZodOptional<z.ZodNumber>;
    vncPort: z.ZodOptional<z.ZodNumber>;
    noVncPort: z.ZodOptional<z.ZodNumber>;
    headless: z.ZodOptional<z.ZodBoolean>;
    enableNoVnc: z.ZodOptional<z.ZodBoolean>;
    allowHostControl: z.ZodOptional<z.ZodBoolean>;
    autoStart: z.ZodOptional<z.ZodBoolean>;
    autoStartTimeoutMs: z.ZodOptional<z.ZodNumber>;
}, z.core.$strict>>;
export declare const SandboxPruneSchema: z.ZodOptional<z.ZodObject<{
    idleHours: z.ZodOptional<z.ZodNumber>;
    maxAgeDays: z.ZodOptional<z.ZodNumber>;
}, z.core.$strict>>;
export declare const ToolPolicySchema: z.ZodOptional<z.ZodObject<{
    allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
    alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
    deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strict>>;
export declare const ToolsWebSearchSchema: z.ZodOptional<z.ZodObject<{
    enabled: z.ZodOptional<z.ZodBoolean>;
    provider: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"brave">, z.ZodLiteral<"perplexity">]>>;
    apiKey: z.ZodOptional<z.ZodString>;
    maxResults: z.ZodOptional<z.ZodNumber>;
    timeoutSeconds: z.ZodOptional<z.ZodNumber>;
    cacheTtlMinutes: z.ZodOptional<z.ZodNumber>;
    perplexity: z.ZodOptional<z.ZodObject<{
        apiKey: z.ZodOptional<z.ZodString>;
        baseUrl: z.ZodOptional<z.ZodString>;
        model: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
}, z.core.$strict>>;
export declare const ToolsWebFetchSchema: z.ZodOptional<z.ZodObject<{
    enabled: z.ZodOptional<z.ZodBoolean>;
    maxChars: z.ZodOptional<z.ZodNumber>;
    maxCharsCap: z.ZodOptional<z.ZodNumber>;
    timeoutSeconds: z.ZodOptional<z.ZodNumber>;
    cacheTtlMinutes: z.ZodOptional<z.ZodNumber>;
    maxRedirects: z.ZodOptional<z.ZodNumber>;
    userAgent: z.ZodOptional<z.ZodString>;
}, z.core.$strict>>;
export declare const ToolsWebSchema: z.ZodOptional<z.ZodObject<{
    search: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        provider: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"brave">, z.ZodLiteral<"perplexity">]>>;
        apiKey: z.ZodOptional<z.ZodString>;
        maxResults: z.ZodOptional<z.ZodNumber>;
        timeoutSeconds: z.ZodOptional<z.ZodNumber>;
        cacheTtlMinutes: z.ZodOptional<z.ZodNumber>;
        perplexity: z.ZodOptional<z.ZodObject<{
            apiKey: z.ZodOptional<z.ZodString>;
            baseUrl: z.ZodOptional<z.ZodString>;
            model: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    fetch: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        maxChars: z.ZodOptional<z.ZodNumber>;
        maxCharsCap: z.ZodOptional<z.ZodNumber>;
        timeoutSeconds: z.ZodOptional<z.ZodNumber>;
        cacheTtlMinutes: z.ZodOptional<z.ZodNumber>;
        maxRedirects: z.ZodOptional<z.ZodNumber>;
        userAgent: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
}, z.core.$strict>>;
export declare const ToolProfileSchema: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"minimal">, z.ZodLiteral<"coding">, z.ZodLiteral<"messaging">, z.ZodLiteral<"full">]>>;
export declare const ToolPolicyWithProfileSchema: z.ZodObject<{
    allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
    alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
    deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
    profile: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"minimal">, z.ZodLiteral<"coding">, z.ZodLiteral<"messaging">, z.ZodLiteral<"full">]>>;
}, z.core.$strict>;
export declare const ElevatedAllowFromSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>>;
export declare const KoiSandboxSchema: z.ZodOptional<z.ZodObject<{
    mode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"off">, z.ZodLiteral<"non-main">, z.ZodLiteral<"all">]>>;
    workspaceAccess: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodLiteral<"ro">, z.ZodLiteral<"rw">]>>;
    sessionToolsVisibility: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"spawned">, z.ZodLiteral<"all">]>>;
    scope: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"session">, z.ZodLiteral<"koi">, z.ZodLiteral<"shared">]>>;
    perSession: z.ZodOptional<z.ZodBoolean>;
    workspaceRoot: z.ZodOptional<z.ZodString>;
    docker: z.ZodOptional<z.ZodObject<{
        image: z.ZodOptional<z.ZodString>;
        containerPrefix: z.ZodOptional<z.ZodString>;
        workdir: z.ZodOptional<z.ZodString>;
        readOnlyRoot: z.ZodOptional<z.ZodBoolean>;
        tmpfs: z.ZodOptional<z.ZodArray<z.ZodString>>;
        network: z.ZodOptional<z.ZodString>;
        user: z.ZodOptional<z.ZodString>;
        capDrop: z.ZodOptional<z.ZodArray<z.ZodString>>;
        env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        setupCommand: z.ZodOptional<z.ZodString>;
        pidsLimit: z.ZodOptional<z.ZodNumber>;
        memory: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
        memorySwap: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
        cpus: z.ZodOptional<z.ZodNumber>;
        ulimits: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
            soft: z.ZodOptional<z.ZodNumber>;
            hard: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>]>>>;
        seccompProfile: z.ZodOptional<z.ZodString>;
        apparmorProfile: z.ZodOptional<z.ZodString>;
        dns: z.ZodOptional<z.ZodArray<z.ZodString>>;
        extraHosts: z.ZodOptional<z.ZodArray<z.ZodString>>;
        binds: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strict>>;
    browser: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        image: z.ZodOptional<z.ZodString>;
        containerPrefix: z.ZodOptional<z.ZodString>;
        cdpPort: z.ZodOptional<z.ZodNumber>;
        vncPort: z.ZodOptional<z.ZodNumber>;
        noVncPort: z.ZodOptional<z.ZodNumber>;
        headless: z.ZodOptional<z.ZodBoolean>;
        enableNoVnc: z.ZodOptional<z.ZodBoolean>;
        allowHostControl: z.ZodOptional<z.ZodBoolean>;
        autoStart: z.ZodOptional<z.ZodBoolean>;
        autoStartTimeoutMs: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
    prune: z.ZodOptional<z.ZodObject<{
        idleHours: z.ZodOptional<z.ZodNumber>;
        maxAgeDays: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
}, z.core.$strict>>;
export declare const KoiToolsSchema: z.ZodOptional<z.ZodObject<{
    profile: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"minimal">, z.ZodLiteral<"coding">, z.ZodLiteral<"messaging">, z.ZodLiteral<"full">]>>;
    allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
    alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
    deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
    byProvider: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
        alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
        deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
        profile: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"minimal">, z.ZodLiteral<"coding">, z.ZodLiteral<"messaging">, z.ZodLiteral<"full">]>>;
    }, z.core.$strict>>>;
    elevated: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        allowFrom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>>;
    }, z.core.$strict>>;
    exec: z.ZodOptional<z.ZodObject<{
        host: z.ZodOptional<z.ZodEnum<{
            sandbox: "sandbox";
            gateway: "gateway";
            node: "node";
        }>>;
        security: z.ZodOptional<z.ZodEnum<{
            allowlist: "allowlist";
            deny: "deny";
            full: "full";
        }>>;
        ask: z.ZodOptional<z.ZodEnum<{
            off: "off";
            "on-miss": "on-miss";
            always: "always";
        }>>;
        node: z.ZodOptional<z.ZodString>;
        pathPrepend: z.ZodOptional<z.ZodArray<z.ZodString>>;
        safeBins: z.ZodOptional<z.ZodArray<z.ZodString>>;
        backgroundMs: z.ZodOptional<z.ZodNumber>;
        timeoutSec: z.ZodOptional<z.ZodNumber>;
        approvalRunningNoticeMs: z.ZodOptional<z.ZodNumber>;
        cleanupMs: z.ZodOptional<z.ZodNumber>;
        notifyOnExit: z.ZodOptional<z.ZodBoolean>;
        applyPatch: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            allowModels: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    sandbox: z.ZodOptional<z.ZodObject<{
        tools: z.ZodOptional<z.ZodObject<{
            allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
            alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
            deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
}, z.core.$strict>>;
export declare const MemorySearchSchema: z.ZodOptional<z.ZodObject<{
    enabled: z.ZodOptional<z.ZodBoolean>;
    sources: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"memory">, z.ZodLiteral<"sessions">]>>>;
    extraPaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
    experimental: z.ZodOptional<z.ZodObject<{
        sessionMemory: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strict>>;
    provider: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"openai">, z.ZodLiteral<"local">, z.ZodLiteral<"gemini">, z.ZodLiteral<"voyage">]>>;
    remote: z.ZodOptional<z.ZodObject<{
        baseUrl: z.ZodOptional<z.ZodString>;
        apiKey: z.ZodOptional<z.ZodString>;
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        batch: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            wait: z.ZodOptional<z.ZodBoolean>;
            concurrency: z.ZodOptional<z.ZodNumber>;
            pollIntervalMs: z.ZodOptional<z.ZodNumber>;
            timeoutMinutes: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    fallback: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"openai">, z.ZodLiteral<"gemini">, z.ZodLiteral<"local">, z.ZodLiteral<"voyage">, z.ZodLiteral<"none">]>>;
    model: z.ZodOptional<z.ZodString>;
    local: z.ZodOptional<z.ZodObject<{
        modelPath: z.ZodOptional<z.ZodString>;
        modelCacheDir: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
    store: z.ZodOptional<z.ZodObject<{
        driver: z.ZodOptional<z.ZodLiteral<"sqlite">>;
        path: z.ZodOptional<z.ZodString>;
        vector: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            extensionPath: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    chunking: z.ZodOptional<z.ZodObject<{
        tokens: z.ZodOptional<z.ZodNumber>;
        overlap: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
    sync: z.ZodOptional<z.ZodObject<{
        onSessionStart: z.ZodOptional<z.ZodBoolean>;
        onSearch: z.ZodOptional<z.ZodBoolean>;
        watch: z.ZodOptional<z.ZodBoolean>;
        watchDebounceMs: z.ZodOptional<z.ZodNumber>;
        intervalMinutes: z.ZodOptional<z.ZodNumber>;
        sessions: z.ZodOptional<z.ZodObject<{
            deltaBytes: z.ZodOptional<z.ZodNumber>;
            deltaMessages: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    query: z.ZodOptional<z.ZodObject<{
        maxResults: z.ZodOptional<z.ZodNumber>;
        minScore: z.ZodOptional<z.ZodNumber>;
        hybrid: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            vectorWeight: z.ZodOptional<z.ZodNumber>;
            textWeight: z.ZodOptional<z.ZodNumber>;
            candidateMultiplier: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    cache: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        maxEntries: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
}, z.core.$strict>>;
export declare const KoiModelSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
    primary: z.ZodOptional<z.ZodString>;
    fallbacks: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strict>]>;
export declare const KoiEntrySchema: z.ZodObject<{
    id: z.ZodString;
    default: z.ZodOptional<z.ZodBoolean>;
    name: z.ZodOptional<z.ZodString>;
    workspace: z.ZodOptional<z.ZodString>;
    koiDir: z.ZodOptional<z.ZodString>;
    model: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
        primary: z.ZodOptional<z.ZodString>;
        fallbacks: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strict>]>>;
    skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
    memorySearch: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        sources: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"memory">, z.ZodLiteral<"sessions">]>>>;
        extraPaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
        experimental: z.ZodOptional<z.ZodObject<{
            sessionMemory: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strict>>;
        provider: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"openai">, z.ZodLiteral<"local">, z.ZodLiteral<"gemini">, z.ZodLiteral<"voyage">]>>;
        remote: z.ZodOptional<z.ZodObject<{
            baseUrl: z.ZodOptional<z.ZodString>;
            apiKey: z.ZodOptional<z.ZodString>;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            batch: z.ZodOptional<z.ZodObject<{
                enabled: z.ZodOptional<z.ZodBoolean>;
                wait: z.ZodOptional<z.ZodBoolean>;
                concurrency: z.ZodOptional<z.ZodNumber>;
                pollIntervalMs: z.ZodOptional<z.ZodNumber>;
                timeoutMinutes: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strict>>;
        }, z.core.$strict>>;
        fallback: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"openai">, z.ZodLiteral<"gemini">, z.ZodLiteral<"local">, z.ZodLiteral<"voyage">, z.ZodLiteral<"none">]>>;
        model: z.ZodOptional<z.ZodString>;
        local: z.ZodOptional<z.ZodObject<{
            modelPath: z.ZodOptional<z.ZodString>;
            modelCacheDir: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>>;
        store: z.ZodOptional<z.ZodObject<{
            driver: z.ZodOptional<z.ZodLiteral<"sqlite">>;
            path: z.ZodOptional<z.ZodString>;
            vector: z.ZodOptional<z.ZodObject<{
                enabled: z.ZodOptional<z.ZodBoolean>;
                extensionPath: z.ZodOptional<z.ZodString>;
            }, z.core.$strict>>;
        }, z.core.$strict>>;
        chunking: z.ZodOptional<z.ZodObject<{
            tokens: z.ZodOptional<z.ZodNumber>;
            overlap: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
        sync: z.ZodOptional<z.ZodObject<{
            onSessionStart: z.ZodOptional<z.ZodBoolean>;
            onSearch: z.ZodOptional<z.ZodBoolean>;
            watch: z.ZodOptional<z.ZodBoolean>;
            watchDebounceMs: z.ZodOptional<z.ZodNumber>;
            intervalMinutes: z.ZodOptional<z.ZodNumber>;
            sessions: z.ZodOptional<z.ZodObject<{
                deltaBytes: z.ZodOptional<z.ZodNumber>;
                deltaMessages: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strict>>;
        }, z.core.$strict>>;
        query: z.ZodOptional<z.ZodObject<{
            maxResults: z.ZodOptional<z.ZodNumber>;
            minScore: z.ZodOptional<z.ZodNumber>;
            hybrid: z.ZodOptional<z.ZodObject<{
                enabled: z.ZodOptional<z.ZodBoolean>;
                vectorWeight: z.ZodOptional<z.ZodNumber>;
                textWeight: z.ZodOptional<z.ZodNumber>;
                candidateMultiplier: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strict>>;
        }, z.core.$strict>>;
        cache: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            maxEntries: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    humanDelay: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"off">, z.ZodLiteral<"natural">, z.ZodLiteral<"custom">]>>;
        minMs: z.ZodOptional<z.ZodNumber>;
        maxMs: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
    heartbeat: z.ZodOptional<z.ZodObject<{
        every: z.ZodOptional<z.ZodString>;
        activeHours: z.ZodOptional<z.ZodObject<{
            start: z.ZodOptional<z.ZodString>;
            end: z.ZodOptional<z.ZodString>;
            timezone: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>>;
        model: z.ZodOptional<z.ZodString>;
        session: z.ZodOptional<z.ZodString>;
        includeReasoning: z.ZodOptional<z.ZodBoolean>;
        target: z.ZodOptional<z.ZodString>;
        to: z.ZodOptional<z.ZodString>;
        accountId: z.ZodOptional<z.ZodString>;
        prompt: z.ZodOptional<z.ZodString>;
        ackMaxChars: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
    identity: z.ZodOptional<z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        theme: z.ZodOptional<z.ZodString>;
        emoji: z.ZodOptional<z.ZodString>;
        avatar: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
    groupChat: z.ZodOptional<z.ZodObject<{
        mentionPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
        historyLimit: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
    subkois: z.ZodOptional<z.ZodObject<{
        allowKois: z.ZodOptional<z.ZodArray<z.ZodString>>;
        model: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
            primary: z.ZodOptional<z.ZodString>;
            fallbacks: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strict>]>>;
        thinking: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
    sandbox: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"off">, z.ZodLiteral<"non-main">, z.ZodLiteral<"all">]>>;
        workspaceAccess: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodLiteral<"ro">, z.ZodLiteral<"rw">]>>;
        sessionToolsVisibility: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"spawned">, z.ZodLiteral<"all">]>>;
        scope: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"session">, z.ZodLiteral<"koi">, z.ZodLiteral<"shared">]>>;
        perSession: z.ZodOptional<z.ZodBoolean>;
        workspaceRoot: z.ZodOptional<z.ZodString>;
        docker: z.ZodOptional<z.ZodObject<{
            image: z.ZodOptional<z.ZodString>;
            containerPrefix: z.ZodOptional<z.ZodString>;
            workdir: z.ZodOptional<z.ZodString>;
            readOnlyRoot: z.ZodOptional<z.ZodBoolean>;
            tmpfs: z.ZodOptional<z.ZodArray<z.ZodString>>;
            network: z.ZodOptional<z.ZodString>;
            user: z.ZodOptional<z.ZodString>;
            capDrop: z.ZodOptional<z.ZodArray<z.ZodString>>;
            env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            setupCommand: z.ZodOptional<z.ZodString>;
            pidsLimit: z.ZodOptional<z.ZodNumber>;
            memory: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
            memorySwap: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
            cpus: z.ZodOptional<z.ZodNumber>;
            ulimits: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
                soft: z.ZodOptional<z.ZodNumber>;
                hard: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strict>]>>>;
            seccompProfile: z.ZodOptional<z.ZodString>;
            apparmorProfile: z.ZodOptional<z.ZodString>;
            dns: z.ZodOptional<z.ZodArray<z.ZodString>>;
            extraHosts: z.ZodOptional<z.ZodArray<z.ZodString>>;
            binds: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strict>>;
        browser: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            image: z.ZodOptional<z.ZodString>;
            containerPrefix: z.ZodOptional<z.ZodString>;
            cdpPort: z.ZodOptional<z.ZodNumber>;
            vncPort: z.ZodOptional<z.ZodNumber>;
            noVncPort: z.ZodOptional<z.ZodNumber>;
            headless: z.ZodOptional<z.ZodBoolean>;
            enableNoVnc: z.ZodOptional<z.ZodBoolean>;
            allowHostControl: z.ZodOptional<z.ZodBoolean>;
            autoStart: z.ZodOptional<z.ZodBoolean>;
            autoStartTimeoutMs: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
        prune: z.ZodOptional<z.ZodObject<{
            idleHours: z.ZodOptional<z.ZodNumber>;
            maxAgeDays: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    tools: z.ZodOptional<z.ZodObject<{
        profile: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"minimal">, z.ZodLiteral<"coding">, z.ZodLiteral<"messaging">, z.ZodLiteral<"full">]>>;
        allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
        alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
        deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
        byProvider: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
            alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
            deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
            profile: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"minimal">, z.ZodLiteral<"coding">, z.ZodLiteral<"messaging">, z.ZodLiteral<"full">]>>;
        }, z.core.$strict>>>;
        elevated: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            allowFrom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>>;
        }, z.core.$strict>>;
        exec: z.ZodOptional<z.ZodObject<{
            host: z.ZodOptional<z.ZodEnum<{
                sandbox: "sandbox";
                gateway: "gateway";
                node: "node";
            }>>;
            security: z.ZodOptional<z.ZodEnum<{
                allowlist: "allowlist";
                deny: "deny";
                full: "full";
            }>>;
            ask: z.ZodOptional<z.ZodEnum<{
                off: "off";
                "on-miss": "on-miss";
                always: "always";
            }>>;
            node: z.ZodOptional<z.ZodString>;
            pathPrepend: z.ZodOptional<z.ZodArray<z.ZodString>>;
            safeBins: z.ZodOptional<z.ZodArray<z.ZodString>>;
            backgroundMs: z.ZodOptional<z.ZodNumber>;
            timeoutSec: z.ZodOptional<z.ZodNumber>;
            approvalRunningNoticeMs: z.ZodOptional<z.ZodNumber>;
            cleanupMs: z.ZodOptional<z.ZodNumber>;
            notifyOnExit: z.ZodOptional<z.ZodBoolean>;
            applyPatch: z.ZodOptional<z.ZodObject<{
                enabled: z.ZodOptional<z.ZodBoolean>;
                allowModels: z.ZodOptional<z.ZodArray<z.ZodString>>;
            }, z.core.$strict>>;
        }, z.core.$strict>>;
        sandbox: z.ZodOptional<z.ZodObject<{
            tools: z.ZodOptional<z.ZodObject<{
                allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
                alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
                deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
            }, z.core.$strict>>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
}, z.core.$strict>;
export declare const ToolsSchema: z.ZodOptional<z.ZodObject<{
    profile: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"minimal">, z.ZodLiteral<"coding">, z.ZodLiteral<"messaging">, z.ZodLiteral<"full">]>>;
    allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
    alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
    deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
    byProvider: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
        alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
        deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
        profile: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"minimal">, z.ZodLiteral<"coding">, z.ZodLiteral<"messaging">, z.ZodLiteral<"full">]>>;
    }, z.core.$strict>>>;
    web: z.ZodOptional<z.ZodObject<{
        search: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            provider: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"brave">, z.ZodLiteral<"perplexity">]>>;
            apiKey: z.ZodOptional<z.ZodString>;
            maxResults: z.ZodOptional<z.ZodNumber>;
            timeoutSeconds: z.ZodOptional<z.ZodNumber>;
            cacheTtlMinutes: z.ZodOptional<z.ZodNumber>;
            perplexity: z.ZodOptional<z.ZodObject<{
                apiKey: z.ZodOptional<z.ZodString>;
                baseUrl: z.ZodOptional<z.ZodString>;
                model: z.ZodOptional<z.ZodString>;
            }, z.core.$strict>>;
        }, z.core.$strict>>;
        fetch: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            maxChars: z.ZodOptional<z.ZodNumber>;
            maxCharsCap: z.ZodOptional<z.ZodNumber>;
            timeoutSeconds: z.ZodOptional<z.ZodNumber>;
            cacheTtlMinutes: z.ZodOptional<z.ZodNumber>;
            maxRedirects: z.ZodOptional<z.ZodNumber>;
            userAgent: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    media: z.ZodOptional<z.ZodObject<{
        models: z.ZodOptional<z.ZodArray<z.ZodOptional<z.ZodObject<{
            provider: z.ZodOptional<z.ZodString>;
            model: z.ZodOptional<z.ZodString>;
            capabilities: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"image">, z.ZodLiteral<"audio">, z.ZodLiteral<"video">]>>>;
            type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"provider">, z.ZodLiteral<"cli">]>>;
            command: z.ZodOptional<z.ZodString>;
            args: z.ZodOptional<z.ZodArray<z.ZodString>>;
            prompt: z.ZodOptional<z.ZodString>;
            maxChars: z.ZodOptional<z.ZodNumber>;
            maxBytes: z.ZodOptional<z.ZodNumber>;
            timeoutSeconds: z.ZodOptional<z.ZodNumber>;
            language: z.ZodOptional<z.ZodString>;
            providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>>;
            deepgram: z.ZodOptional<z.ZodObject<{
                detectLanguage: z.ZodOptional<z.ZodBoolean>;
                punctuate: z.ZodOptional<z.ZodBoolean>;
                smartFormat: z.ZodOptional<z.ZodBoolean>;
            }, z.core.$strict>>;
            baseUrl: z.ZodOptional<z.ZodString>;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            profile: z.ZodOptional<z.ZodString>;
            preferredProfile: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>>>>;
        concurrency: z.ZodOptional<z.ZodNumber>;
        image: z.ZodOptional<z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            scope: z.ZodOptional<z.ZodObject<{
                default: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"allow">, z.ZodLiteral<"deny">]>>;
                rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
                    action: z.ZodUnion<readonly [z.ZodLiteral<"allow">, z.ZodLiteral<"deny">]>;
                    match: z.ZodOptional<z.ZodObject<{
                        channel: z.ZodOptional<z.ZodString>;
                        chatType: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"direct">, z.ZodLiteral<"group">, z.ZodLiteral<"channel">]>>;
                        keyPrefix: z.ZodOptional<z.ZodString>;
                    }, z.core.$strict>>;
                }, z.core.$strict>>>;
            }, z.core.$strict>>;
            maxBytes: z.ZodOptional<z.ZodNumber>;
            maxChars: z.ZodOptional<z.ZodNumber>;
            prompt: z.ZodOptional<z.ZodString>;
            timeoutSeconds: z.ZodOptional<z.ZodNumber>;
            language: z.ZodOptional<z.ZodString>;
            providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>>;
            deepgram: z.ZodOptional<z.ZodObject<{
                detectLanguage: z.ZodOptional<z.ZodBoolean>;
                punctuate: z.ZodOptional<z.ZodBoolean>;
                smartFormat: z.ZodOptional<z.ZodBoolean>;
            }, z.core.$strict>>;
            baseUrl: z.ZodOptional<z.ZodString>;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            attachments: z.ZodOptional<z.ZodObject<{
                mode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"first">, z.ZodLiteral<"all">]>>;
                maxAttachments: z.ZodOptional<z.ZodNumber>;
                prefer: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"first">, z.ZodLiteral<"last">, z.ZodLiteral<"path">, z.ZodLiteral<"url">]>>;
            }, z.core.$strict>>;
            models: z.ZodOptional<z.ZodArray<z.ZodOptional<z.ZodObject<{
                provider: z.ZodOptional<z.ZodString>;
                model: z.ZodOptional<z.ZodString>;
                capabilities: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"image">, z.ZodLiteral<"audio">, z.ZodLiteral<"video">]>>>;
                type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"provider">, z.ZodLiteral<"cli">]>>;
                command: z.ZodOptional<z.ZodString>;
                args: z.ZodOptional<z.ZodArray<z.ZodString>>;
                prompt: z.ZodOptional<z.ZodString>;
                maxChars: z.ZodOptional<z.ZodNumber>;
                maxBytes: z.ZodOptional<z.ZodNumber>;
                timeoutSeconds: z.ZodOptional<z.ZodNumber>;
                language: z.ZodOptional<z.ZodString>;
                providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>>;
                deepgram: z.ZodOptional<z.ZodObject<{
                    detectLanguage: z.ZodOptional<z.ZodBoolean>;
                    punctuate: z.ZodOptional<z.ZodBoolean>;
                    smartFormat: z.ZodOptional<z.ZodBoolean>;
                }, z.core.$strict>>;
                baseUrl: z.ZodOptional<z.ZodString>;
                headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
                profile: z.ZodOptional<z.ZodString>;
                preferredProfile: z.ZodOptional<z.ZodString>;
            }, z.core.$strict>>>>;
        }, z.core.$strict>>>;
        audio: z.ZodOptional<z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            scope: z.ZodOptional<z.ZodObject<{
                default: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"allow">, z.ZodLiteral<"deny">]>>;
                rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
                    action: z.ZodUnion<readonly [z.ZodLiteral<"allow">, z.ZodLiteral<"deny">]>;
                    match: z.ZodOptional<z.ZodObject<{
                        channel: z.ZodOptional<z.ZodString>;
                        chatType: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"direct">, z.ZodLiteral<"group">, z.ZodLiteral<"channel">]>>;
                        keyPrefix: z.ZodOptional<z.ZodString>;
                    }, z.core.$strict>>;
                }, z.core.$strict>>>;
            }, z.core.$strict>>;
            maxBytes: z.ZodOptional<z.ZodNumber>;
            maxChars: z.ZodOptional<z.ZodNumber>;
            prompt: z.ZodOptional<z.ZodString>;
            timeoutSeconds: z.ZodOptional<z.ZodNumber>;
            language: z.ZodOptional<z.ZodString>;
            providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>>;
            deepgram: z.ZodOptional<z.ZodObject<{
                detectLanguage: z.ZodOptional<z.ZodBoolean>;
                punctuate: z.ZodOptional<z.ZodBoolean>;
                smartFormat: z.ZodOptional<z.ZodBoolean>;
            }, z.core.$strict>>;
            baseUrl: z.ZodOptional<z.ZodString>;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            attachments: z.ZodOptional<z.ZodObject<{
                mode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"first">, z.ZodLiteral<"all">]>>;
                maxAttachments: z.ZodOptional<z.ZodNumber>;
                prefer: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"first">, z.ZodLiteral<"last">, z.ZodLiteral<"path">, z.ZodLiteral<"url">]>>;
            }, z.core.$strict>>;
            models: z.ZodOptional<z.ZodArray<z.ZodOptional<z.ZodObject<{
                provider: z.ZodOptional<z.ZodString>;
                model: z.ZodOptional<z.ZodString>;
                capabilities: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"image">, z.ZodLiteral<"audio">, z.ZodLiteral<"video">]>>>;
                type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"provider">, z.ZodLiteral<"cli">]>>;
                command: z.ZodOptional<z.ZodString>;
                args: z.ZodOptional<z.ZodArray<z.ZodString>>;
                prompt: z.ZodOptional<z.ZodString>;
                maxChars: z.ZodOptional<z.ZodNumber>;
                maxBytes: z.ZodOptional<z.ZodNumber>;
                timeoutSeconds: z.ZodOptional<z.ZodNumber>;
                language: z.ZodOptional<z.ZodString>;
                providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>>;
                deepgram: z.ZodOptional<z.ZodObject<{
                    detectLanguage: z.ZodOptional<z.ZodBoolean>;
                    punctuate: z.ZodOptional<z.ZodBoolean>;
                    smartFormat: z.ZodOptional<z.ZodBoolean>;
                }, z.core.$strict>>;
                baseUrl: z.ZodOptional<z.ZodString>;
                headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
                profile: z.ZodOptional<z.ZodString>;
                preferredProfile: z.ZodOptional<z.ZodString>;
            }, z.core.$strict>>>>;
        }, z.core.$strict>>>;
        video: z.ZodOptional<z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            scope: z.ZodOptional<z.ZodObject<{
                default: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"allow">, z.ZodLiteral<"deny">]>>;
                rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
                    action: z.ZodUnion<readonly [z.ZodLiteral<"allow">, z.ZodLiteral<"deny">]>;
                    match: z.ZodOptional<z.ZodObject<{
                        channel: z.ZodOptional<z.ZodString>;
                        chatType: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"direct">, z.ZodLiteral<"group">, z.ZodLiteral<"channel">]>>;
                        keyPrefix: z.ZodOptional<z.ZodString>;
                    }, z.core.$strict>>;
                }, z.core.$strict>>>;
            }, z.core.$strict>>;
            maxBytes: z.ZodOptional<z.ZodNumber>;
            maxChars: z.ZodOptional<z.ZodNumber>;
            prompt: z.ZodOptional<z.ZodString>;
            timeoutSeconds: z.ZodOptional<z.ZodNumber>;
            language: z.ZodOptional<z.ZodString>;
            providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>>;
            deepgram: z.ZodOptional<z.ZodObject<{
                detectLanguage: z.ZodOptional<z.ZodBoolean>;
                punctuate: z.ZodOptional<z.ZodBoolean>;
                smartFormat: z.ZodOptional<z.ZodBoolean>;
            }, z.core.$strict>>;
            baseUrl: z.ZodOptional<z.ZodString>;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            attachments: z.ZodOptional<z.ZodObject<{
                mode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"first">, z.ZodLiteral<"all">]>>;
                maxAttachments: z.ZodOptional<z.ZodNumber>;
                prefer: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"first">, z.ZodLiteral<"last">, z.ZodLiteral<"path">, z.ZodLiteral<"url">]>>;
            }, z.core.$strict>>;
            models: z.ZodOptional<z.ZodArray<z.ZodOptional<z.ZodObject<{
                provider: z.ZodOptional<z.ZodString>;
                model: z.ZodOptional<z.ZodString>;
                capabilities: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"image">, z.ZodLiteral<"audio">, z.ZodLiteral<"video">]>>>;
                type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"provider">, z.ZodLiteral<"cli">]>>;
                command: z.ZodOptional<z.ZodString>;
                args: z.ZodOptional<z.ZodArray<z.ZodString>>;
                prompt: z.ZodOptional<z.ZodString>;
                maxChars: z.ZodOptional<z.ZodNumber>;
                maxBytes: z.ZodOptional<z.ZodNumber>;
                timeoutSeconds: z.ZodOptional<z.ZodNumber>;
                language: z.ZodOptional<z.ZodString>;
                providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>>;
                deepgram: z.ZodOptional<z.ZodObject<{
                    detectLanguage: z.ZodOptional<z.ZodBoolean>;
                    punctuate: z.ZodOptional<z.ZodBoolean>;
                    smartFormat: z.ZodOptional<z.ZodBoolean>;
                }, z.core.$strict>>;
                baseUrl: z.ZodOptional<z.ZodString>;
                headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
                profile: z.ZodOptional<z.ZodString>;
                preferredProfile: z.ZodOptional<z.ZodString>;
            }, z.core.$strict>>>>;
        }, z.core.$strict>>>;
    }, z.core.$strict>>;
    links: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        scope: z.ZodOptional<z.ZodObject<{
            default: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"allow">, z.ZodLiteral<"deny">]>>;
            rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
                action: z.ZodUnion<readonly [z.ZodLiteral<"allow">, z.ZodLiteral<"deny">]>;
                match: z.ZodOptional<z.ZodObject<{
                    channel: z.ZodOptional<z.ZodString>;
                    chatType: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"direct">, z.ZodLiteral<"group">, z.ZodLiteral<"channel">]>>;
                    keyPrefix: z.ZodOptional<z.ZodString>;
                }, z.core.$strict>>;
            }, z.core.$strict>>>;
        }, z.core.$strict>>;
        maxLinks: z.ZodOptional<z.ZodNumber>;
        timeoutSeconds: z.ZodOptional<z.ZodNumber>;
        models: z.ZodOptional<z.ZodArray<z.ZodObject<{
            type: z.ZodOptional<z.ZodLiteral<"cli">>;
            command: z.ZodString;
            args: z.ZodOptional<z.ZodArray<z.ZodString>>;
            timeoutSeconds: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>>;
    }, z.core.$strict>>;
    message: z.ZodOptional<z.ZodObject<{
        allowCrossContextSend: z.ZodOptional<z.ZodBoolean>;
        crossContext: z.ZodOptional<z.ZodObject<{
            allowWithinProvider: z.ZodOptional<z.ZodBoolean>;
            allowAcrossProviders: z.ZodOptional<z.ZodBoolean>;
            marker: z.ZodOptional<z.ZodObject<{
                enabled: z.ZodOptional<z.ZodBoolean>;
                prefix: z.ZodOptional<z.ZodString>;
                suffix: z.ZodOptional<z.ZodString>;
            }, z.core.$strict>>;
        }, z.core.$strict>>;
        broadcast: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    koiToKoi: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strict>>;
    elevated: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        allowFrom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>>;
    }, z.core.$strict>>;
    exec: z.ZodOptional<z.ZodObject<{
        host: z.ZodOptional<z.ZodEnum<{
            sandbox: "sandbox";
            gateway: "gateway";
            node: "node";
        }>>;
        security: z.ZodOptional<z.ZodEnum<{
            allowlist: "allowlist";
            deny: "deny";
            full: "full";
        }>>;
        ask: z.ZodOptional<z.ZodEnum<{
            off: "off";
            "on-miss": "on-miss";
            always: "always";
        }>>;
        node: z.ZodOptional<z.ZodString>;
        pathPrepend: z.ZodOptional<z.ZodArray<z.ZodString>>;
        safeBins: z.ZodOptional<z.ZodArray<z.ZodString>>;
        backgroundMs: z.ZodOptional<z.ZodNumber>;
        timeoutSec: z.ZodOptional<z.ZodNumber>;
        cleanupMs: z.ZodOptional<z.ZodNumber>;
        notifyOnExit: z.ZodOptional<z.ZodBoolean>;
        applyPatch: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodOptional<z.ZodBoolean>;
            allowModels: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    subkois: z.ZodOptional<z.ZodObject<{
        tools: z.ZodOptional<z.ZodObject<{
            allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
            alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
            deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    sandbox: z.ZodOptional<z.ZodObject<{
        tools: z.ZodOptional<z.ZodObject<{
            allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
            alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
            deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
}, z.core.$strict>>;
