import { z } from 'zod';
export declare const TelegramTopicConfigSchema: z.ZodObject<{
    topicId: z.ZodString;
    requireMention: z.ZodOptional<z.ZodBoolean>;
    enabled: z.ZodOptional<z.ZodBoolean>;
    allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
    systemPrompt: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const TelegramGroupConfigSchema: z.ZodObject<{
    groupId: z.ZodString;
    requireMention: z.ZodOptional<z.ZodBoolean>;
    enabled: z.ZodOptional<z.ZodBoolean>;
    allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
    systemPrompt: z.ZodOptional<z.ZodString>;
    topics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        topicId: z.ZodString;
        requireMention: z.ZodOptional<z.ZodBoolean>;
        enabled: z.ZodOptional<z.ZodBoolean>;
        allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
        systemPrompt: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export declare const TelegramAccountConfigSchema: z.ZodObject<{
    accountId: z.ZodString;
    name: z.ZodOptional<z.ZodString>;
    enabled: z.ZodDefault<z.ZodBoolean>;
    botToken: z.ZodDefault<z.ZodString>;
    tokenFile: z.ZodOptional<z.ZodString>;
    allowFrom: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
    groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
    dmPolicy: z.ZodDefault<z.ZodEnum<{
        pairing: "pairing";
        allowlist: "allowlist";
        open: "open";
        disabled: "disabled";
    }>>;
    groupPolicy: z.ZodDefault<z.ZodEnum<{
        allowlist: "allowlist";
        open: "open";
        disabled: "disabled";
    }>>;
    replyToMode: z.ZodDefault<z.ZodEnum<{
        off: "off";
        first: "first";
        all: "all";
    }>>;
    groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        groupId: z.ZodString;
        requireMention: z.ZodOptional<z.ZodBoolean>;
        enabled: z.ZodOptional<z.ZodBoolean>;
        allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
        systemPrompt: z.ZodOptional<z.ZodString>;
        topics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            topicId: z.ZodString;
            requireMention: z.ZodOptional<z.ZodBoolean>;
            enabled: z.ZodOptional<z.ZodBoolean>;
            allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
            systemPrompt: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>>;
    }, z.core.$strip>>>;
    historyLimit: z.ZodDefault<z.ZodNumber>;
    textChunkLimit: z.ZodDefault<z.ZodNumber>;
    streamMode: z.ZodDefault<z.ZodEnum<{
        off: "off";
        partial: "partial";
        block: "block";
    }>>;
    proxy: z.ZodOptional<z.ZodString>;
    apiRoot: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const TelegramConfigSchema: z.ZodPreprocess<z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    allowFrom: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
    groupAllowFrom: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
    apiRoot: z.ZodOptional<z.ZodString>;
    debug: z.ZodDefault<z.ZodBoolean>;
    accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        accountId: z.ZodString;
        name: z.ZodOptional<z.ZodString>;
        enabled: z.ZodDefault<z.ZodBoolean>;
        botToken: z.ZodDefault<z.ZodString>;
        tokenFile: z.ZodOptional<z.ZodString>;
        allowFrom: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
        groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
        dmPolicy: z.ZodDefault<z.ZodEnum<{
            pairing: "pairing";
            allowlist: "allowlist";
            open: "open";
            disabled: "disabled";
        }>>;
        groupPolicy: z.ZodDefault<z.ZodEnum<{
            allowlist: "allowlist";
            open: "open";
            disabled: "disabled";
        }>>;
        replyToMode: z.ZodDefault<z.ZodEnum<{
            off: "off";
            first: "first";
            all: "all";
        }>>;
        groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            groupId: z.ZodString;
            requireMention: z.ZodOptional<z.ZodBoolean>;
            enabled: z.ZodOptional<z.ZodBoolean>;
            allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
            systemPrompt: z.ZodOptional<z.ZodString>;
            topics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                topicId: z.ZodString;
                requireMention: z.ZodOptional<z.ZodBoolean>;
                enabled: z.ZodOptional<z.ZodBoolean>;
                allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
                systemPrompt: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>>>;
        }, z.core.$strip>>>;
        historyLimit: z.ZodDefault<z.ZodNumber>;
        textChunkLimit: z.ZodDefault<z.ZodNumber>;
        streamMode: z.ZodDefault<z.ZodEnum<{
            off: "off";
            partial: "partial";
            block: "block";
        }>>;
        proxy: z.ZodOptional<z.ZodString>;
        apiRoot: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
    dmPolicy: z.ZodDefault<z.ZodEnum<{
        pairing: "pairing";
        allowlist: "allowlist";
        open: "open";
        disabled: "disabled";
    }>>;
    groupPolicy: z.ZodDefault<z.ZodEnum<{
        allowlist: "allowlist";
        open: "open";
        disabled: "disabled";
    }>>;
    replyToMode: z.ZodDefault<z.ZodEnum<{
        off: "off";
        first: "first";
        all: "all";
    }>>;
    streamMode: z.ZodOptional<z.ZodEnum<{
        off: "off";
        partial: "partial";
        block: "block";
    }>>;
    historyLimit: z.ZodDefault<z.ZodNumber>;
    textChunkLimit: z.ZodDefault<z.ZodNumber>;
    proxy: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
export type TelegramConfig = z.infer<typeof TelegramConfigSchema>;
