import z from 'zod';
/**
 * Rule and RuleGroup schemas for conditional prompt block evaluation.
 *
 * Uses a fixed nesting depth (3 levels) to avoid infinite recursion
 * when converting to JSON Schema / OpenAPI.
 */
export declare const ruleSchema: z.ZodObject<{
    field: z.ZodString;
    operator: z.ZodEnum<{
        in: "in";
        equals: "equals";
        not_equals: "not_equals";
        contains: "contains";
        not_contains: "not_contains";
        greater_than: "greater_than";
        less_than: "less_than";
        greater_than_or_equal: "greater_than_or_equal";
        less_than_or_equal: "less_than_or_equal";
        not_in: "not_in";
        exists: "exists";
        not_exists: "not_exists";
    }>;
    value: z.ZodOptional<z.ZodUnknown>;
}, z.core.$strip>;
export declare const ruleGroupSchema: z.ZodObject<{
    operator: z.ZodEnum<{
        AND: "AND";
        OR: "OR";
    }>;
    conditions: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
        field: z.ZodString;
        operator: z.ZodEnum<{
            in: "in";
            equals: "equals";
            not_equals: "not_equals";
            contains: "contains";
            not_contains: "not_contains";
            greater_than: "greater_than";
            less_than: "less_than";
            greater_than_or_equal: "greater_than_or_equal";
            less_than_or_equal: "less_than_or_equal";
            not_in: "not_in";
            exists: "exists";
            not_exists: "not_exists";
        }>;
        value: z.ZodOptional<z.ZodUnknown>;
    }, z.core.$strip>, z.ZodObject<{
        operator: z.ZodEnum<{
            AND: "AND";
            OR: "OR";
        }>;
        conditions: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
            field: z.ZodString;
            operator: z.ZodEnum<{
                in: "in";
                equals: "equals";
                not_equals: "not_equals";
                contains: "contains";
                not_contains: "not_contains";
                greater_than: "greater_than";
                less_than: "less_than";
                greater_than_or_equal: "greater_than_or_equal";
                less_than_or_equal: "less_than_or_equal";
                not_in: "not_in";
                exists: "exists";
                not_exists: "not_exists";
            }>;
            value: z.ZodOptional<z.ZodUnknown>;
        }, z.core.$strip>, z.ZodObject<{
            operator: z.ZodEnum<{
                AND: "AND";
                OR: "OR";
            }>;
            conditions: z.ZodArray<z.ZodObject<{
                field: z.ZodString;
                operator: z.ZodEnum<{
                    in: "in";
                    equals: "equals";
                    not_equals: "not_equals";
                    contains: "contains";
                    not_contains: "not_contains";
                    greater_than: "greater_than";
                    less_than: "less_than";
                    greater_than_or_equal: "greater_than_or_equal";
                    less_than_or_equal: "less_than_or_equal";
                    not_in: "not_in";
                    exists: "exists";
                    not_exists: "not_exists";
                }>;
                value: z.ZodOptional<z.ZodUnknown>;
            }, z.core.$strip>>;
        }, z.core.$strip>]>>;
    }, z.core.$strip>]>>;
}, z.core.$strip>;
//# sourceMappingURL=rule-group.d.ts.map