import { Autonomous } from './runtime/autonomous';
import type { ZodType } from '@bpinternal/zui';
import { z } from '@botpress/sdk';
declare const configSchema: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    user: z.ZodOptional<z.ZodObject<{
        state: z.ZodOptional<ZodType<ZodType<any, import("@bpinternal/zui").ZodTypeDef, any>, import("@bpinternal/zui").ZodTypeDef, ZodType<any, import("@bpinternal/zui").ZodTypeDef, any>>>;
        tags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            title: z.ZodString;
            description: z.ZodOptional<z.ZodString>;
        }, "strip", {
            title: string;
            description?: string | undefined;
        }, {
            title: string;
            description?: string | undefined;
        }>>>;
    }, "strip", {
        state?: ZodType<any, import("@bpinternal/zui").ZodTypeDef, any> | undefined;
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    }, {
        state?: ZodType<any, import("@bpinternal/zui").ZodTypeDef, any> | undefined;
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    }>>;
    bot: z.ZodOptional<z.ZodObject<{
        state: z.ZodOptional<ZodType<ZodType<any, import("@bpinternal/zui").ZodTypeDef, any>, import("@bpinternal/zui").ZodTypeDef, ZodType<any, import("@bpinternal/zui").ZodTypeDef, any>>>;
        tags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            title: z.ZodString;
            description: z.ZodOptional<z.ZodString>;
        }, "strip", {
            title: string;
            description?: string | undefined;
        }, {
            title: string;
            description?: string | undefined;
        }>>>;
    }, "strip", {
        state?: ZodType<any, import("@bpinternal/zui").ZodTypeDef, any> | undefined;
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    }, {
        state?: ZodType<any, import("@bpinternal/zui").ZodTypeDef, any> | undefined;
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    }>>;
    conversation: z.ZodOptional<z.ZodObject<{
        tags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            title: z.ZodString;
            description: z.ZodOptional<z.ZodString>;
        }, "strip", {
            title: string;
            description?: string | undefined;
        }, {
            title: string;
            description?: string | undefined;
        }>>>;
    }, "strip", {
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    }, {
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    }>>;
    message: z.ZodOptional<z.ZodObject<{
        tags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            title: z.ZodString;
            description: z.ZodOptional<z.ZodString>;
        }, "strip", {
            title: string;
            description?: string | undefined;
        }, {
            title: string;
            description?: string | undefined;
        }>>>;
    }, "strip", {
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    }, {
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    }>>;
    workflow: z.ZodOptional<z.ZodObject<{
        tags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            title: z.ZodString;
            description: z.ZodOptional<z.ZodString>;
        }, "strip", {
            title: string;
            description?: string | undefined;
        }, {
            title: string;
            description?: string | undefined;
        }>>>;
    }, "strip", {
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    }, {
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    }>>;
    configuration: z.ZodOptional<z.ZodObject<{
        schema: ZodType<z.ZodObject<any, import("@bpinternal/zui").UnknownKeysParam, ({} | {
            [k: string]: unknown;
        } | {
            [k: string]: unknown;
        }) & {
            [x: string]: any;
        }, {
            [x: string]: any;
        } & ({} | {
            [k: string]: unknown;
        } | {
            [k: string]: unknown;
        })>, import("@bpinternal/zui").ZodTypeDef, z.ZodObject<any, import("@bpinternal/zui").UnknownKeysParam, ({} | {
            [k: string]: unknown;
        } | {
            [k: string]: unknown;
        }) & {
            [x: string]: any;
        }, {
            [x: string]: any;
        } & ({} | {
            [k: string]: unknown;
        } | {
            [k: string]: unknown;
        })>>;
    }, "strip", {
        schema: z.ZodObject<any, import("@bpinternal/zui").UnknownKeysParam, ({} | {
            [k: string]: unknown;
        } | {
            [k: string]: unknown;
        }) & {
            [x: string]: any;
        }, {
            [x: string]: any;
        } & ({} | {
            [k: string]: unknown;
        } | {
            [k: string]: unknown;
        })>;
    }, {
        schema: z.ZodObject<any, import("@bpinternal/zui").UnknownKeysParam, ({} | {
            [k: string]: unknown;
        } | {
            [k: string]: unknown;
        }) & {
            [x: string]: any;
        }, {
            [x: string]: any;
        } & ({} | {
            [k: string]: unknown;
        } | {
            [k: string]: unknown;
        })>;
    }>>;
    defaultModels: z.ZodEffects<z.ZodOptional<z.ZodObject<{
        zai: ZodType<Autonomous.Model | Autonomous.Model[], import("@bpinternal/zui").ZodTypeDef, Autonomous.Model | Autonomous.Model[]>;
        autonomous: ZodType<Autonomous.Model | Autonomous.Model[], import("@bpinternal/zui").ZodTypeDef, Autonomous.Model | Autonomous.Model[]>;
    }, "strip", {
        zai: Autonomous.Model | Autonomous.Model[];
        autonomous: Autonomous.Model | Autonomous.Model[];
    }, {
        zai: Autonomous.Model | Autonomous.Model[];
        autonomous: Autonomous.Model | Autonomous.Model[];
    }>>, {
        zai: Autonomous.Model | Autonomous.Model[];
        autonomous: Autonomous.Model | Autonomous.Model[];
    }, {
        zai: Autonomous.Model | Autonomous.Model[];
        autonomous: Autonomous.Model | Autonomous.Model[];
    } | undefined>;
    secrets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        optional: z.ZodOptional<z.ZodBoolean>;
        description: z.ZodOptional<z.ZodString>;
    }, "strip", {
        description?: string | undefined;
        optional?: boolean | undefined;
    }, {
        description?: string | undefined;
        optional?: boolean | undefined;
    }>>>;
    events: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        schema: z.ZodOptional<ZodType<ZodType<any, import("@bpinternal/zui").ZodTypeDef, any>, import("@bpinternal/zui").ZodTypeDef, ZodType<any, import("@bpinternal/zui").ZodTypeDef, any>>>;
        description: z.ZodOptional<z.ZodString>;
    }, "strip", {
        description?: string | undefined;
        schema?: ZodType<any, import("@bpinternal/zui").ZodTypeDef, any> | undefined;
    }, {
        description?: string | undefined;
        schema?: ZodType<any, import("@bpinternal/zui").ZodTypeDef, any> | undefined;
    }>>>;
    evals: z.ZodOptional<z.ZodObject<{
        idleTimeout: z.ZodOptional<z.ZodNumber>;
        judgePassThreshold: z.ZodOptional<z.ZodNumber>;
        /** Model to use for llm_judge assertions (e.g. 'openai:gpt-4o'). Defaults to 'fast'. */
        judgeModel: z.ZodOptional<z.ZodString>;
    }, "strip", {
        idleTimeout?: number | undefined;
        judgePassThreshold?: number | undefined;
        judgeModel?: string | undefined;
    }, {
        idleTimeout?: number | undefined;
        judgePassThreshold?: number | undefined;
        judgeModel?: string | undefined;
    }>>;
}, "passthrough", {
    [k: string]: unknown;
} & {
    defaultModels: {
        zai: Autonomous.Model | Autonomous.Model[];
        autonomous: Autonomous.Model | Autonomous.Model[];
    };
    description?: string | undefined;
    name?: string | undefined;
    events?: Record<string, {
        description?: string | undefined;
        schema?: ZodType<any, import("@bpinternal/zui").ZodTypeDef, any> | undefined;
    }> | undefined;
    user?: {
        state?: ZodType<any, import("@bpinternal/zui").ZodTypeDef, any> | undefined;
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    } | undefined;
    message?: {
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    } | undefined;
    workflow?: {
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    } | undefined;
    bot?: {
        state?: ZodType<any, import("@bpinternal/zui").ZodTypeDef, any> | undefined;
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    } | undefined;
    configuration?: {
        schema: z.ZodObject<any, import("@bpinternal/zui").UnknownKeysParam, ({} | {
            [k: string]: unknown;
        } | {
            [k: string]: unknown;
        }) & {
            [x: string]: any;
        }, {
            [x: string]: any;
        } & ({} | {
            [k: string]: unknown;
        } | {
            [k: string]: unknown;
        })>;
    } | undefined;
    conversation?: {
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    } | undefined;
    secrets?: Record<string, {
        description?: string | undefined;
        optional?: boolean | undefined;
    }> | undefined;
    evals?: {
        idleTimeout?: number | undefined;
        judgePassThreshold?: number | undefined;
        judgeModel?: string | undefined;
    } | undefined;
}, {
    description?: string | undefined;
    name?: string | undefined;
    events?: Record<string, {
        description?: string | undefined;
        schema?: ZodType<any, import("@bpinternal/zui").ZodTypeDef, any> | undefined;
    }> | undefined;
    user?: {
        state?: ZodType<any, import("@bpinternal/zui").ZodTypeDef, any> | undefined;
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    } | undefined;
    message?: {
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    } | undefined;
    workflow?: {
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    } | undefined;
    bot?: {
        state?: ZodType<any, import("@bpinternal/zui").ZodTypeDef, any> | undefined;
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    } | undefined;
    configuration?: {
        schema: z.ZodObject<any, import("@bpinternal/zui").UnknownKeysParam, ({} | {
            [k: string]: unknown;
        } | {
            [k: string]: unknown;
        }) & {
            [x: string]: any;
        }, {
            [x: string]: any;
        } & ({} | {
            [k: string]: unknown;
        } | {
            [k: string]: unknown;
        })>;
    } | undefined;
    conversation?: {
        tags?: Record<string, {
            title: string;
            description?: string | undefined;
        }> | undefined;
    } | undefined;
    defaultModels?: {
        zai: Autonomous.Model | Autonomous.Model[];
        autonomous: Autonomous.Model | Autonomous.Model[];
    } | undefined;
    secrets?: Record<string, {
        description?: string | undefined;
        optional?: boolean | undefined;
    }> | undefined;
    evals?: {
        idleTimeout?: number | undefined;
        judgePassThreshold?: number | undefined;
        judgeModel?: string | undefined;
    } | undefined;
} & {
    [k: string]: unknown;
}>;
type AgentConfigProps = z.input<typeof configSchema>;
export type AgentConfig = z.output<typeof configSchema> & {
    __brand: 'AgentConfig';
};
export type TagDefinition = Record<string, {
    title: string;
    description?: string;
}>;
export type EventDefinition = Record<string, {
    schema?: ZodType;
    description?: string;
}>;
export declare const defineConfig: (config: AgentConfigProps) => AgentConfig;
export declare const isAgentConfig: (value: unknown) => value is AgentConfig;
export {};
//# sourceMappingURL=define-config.d.ts.map