import { z } from 'zod';
export declare const configSchema: z.ZodObject<{
    messengers: z.ZodDefault<z.ZodArray<z.ZodString>>;
    agents: z.ZodDefault<z.ZodArray<z.ZodString>>;
    defaultAgent: z.ZodDefault<z.ZodString>;
    telegram: z.ZodOptional<z.ZodObject<{
        botToken: z.ZodOptional<z.ZodString>;
        channelId: z.ZodOptional<z.ZodString>;
    }, z.core.$loose>>;
    feishu: z.ZodOptional<z.ZodObject<{
        appId: z.ZodOptional<z.ZodString>;
        appSecret: z.ZodOptional<z.ZodString>;
        channelId: z.ZodOptional<z.ZodString>;
    }, z.core.$loose>>;
    discord: z.ZodOptional<z.ZodObject<{
        botToken: z.ZodOptional<z.ZodString>;
        channelId: z.ZodOptional<z.ZodString>;
        allowedGuilds: z.ZodOptional<z.ZodArray<z.ZodString>>;
        allowedChannels: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$loose>>;
    acpAgents: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
        endpoint: z.ZodString;
        auth: z.ZodOptional<z.ZodObject<{
            type: z.ZodEnum<{
                none: "none";
                apikey: "apikey";
                bearer: "bearer";
            }>;
            token: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        enabled: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>>>;
    acpDiscoveryUrls: z.ZodOptional<z.ZodArray<z.ZodString>>;
    webPort: z.ZodOptional<z.ZodNumber>;
    acpPort: z.ZodOptional<z.ZodNumber>;
    workspaces: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        name: z.ZodDefault<z.ZodString>;
        agents: z.ZodDefault<z.ZodArray<z.ZodString>>;
        members: z.ZodOptional<z.ZodArray<z.ZodString>>;
        rateLimit: z.ZodOptional<z.ZodObject<{
            rate: z.ZodNumber;
            intervalSec: z.ZodNumber;
            burst: z.ZodNumber;
        }, z.core.$strip>>;
    }, z.core.$strip>>>;
    llmBackends: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        provider: z.ZodEnum<{
            "openai-compat": "openai-compat";
            anthropic: "anthropic";
        }>;
        model: z.ZodString;
        baseUrl: z.ZodOptional<z.ZodString>;
        label: z.ZodOptional<z.ZodString>;
        extraHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxTokens: z.ZodOptional<z.ZodNumber>;
        retryOnTransient: z.ZodOptional<z.ZodNumber>;
        enabled: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>>>;
    llmRoles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    mcpServers: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        command: z.ZodOptional<z.ZodString>;
        args: z.ZodOptional<z.ZodArray<z.ZodString>>;
        env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        cwd: z.ZodOptional<z.ZodString>;
        url: z.ZodOptional<z.ZodString>;
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        toolTimeoutMs: z.ZodOptional<z.ZodNumber>;
        enabledTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
        enabled: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>>>;
}, z.core.$loose>;
export type ValidatedConfig = z.infer<typeof configSchema>;
export declare function validateConfig(data: unknown): {
    ok: true;
    config: ValidatedConfig;
    errors: string[];
} | {
    ok: false;
    config: ValidatedConfig;
    errors: string[];
};
//# sourceMappingURL=config-schema.d.ts.map