import { z } from 'zod';
export type GateDecision = 'allow' | 'deny' | 'review';
export interface GateEvaluationResult {
    readonly decision: GateDecision;
    readonly matchedRule: VerificationRule | null;
    readonly reason: string;
}
export type VerificationRule = {
    type: 'allow_read_only';
} | {
    type: 'deny_dangerous_patterns';
} | {
    type: 'allow_by_category';
    categories: string[];
} | {
    type: 'allow_by_name';
    toolNames: string[];
} | {
    type: 'deny_by_name';
    toolNames: string[];
} | {
    type: 'custom_pattern';
    pattern: string;
    target: 'name' | 'args' | 'both';
    decision: 'allow' | 'deny';
} | {
    type: 'allow_by_tier';
    tiers: string[];
};
export declare const VerificationRuleSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
    type: z.ZodLiteral<"allow_read_only">;
}, "strip", z.ZodTypeAny, {
    type: "allow_read_only";
}, {
    type: "allow_read_only";
}>, z.ZodObject<{
    type: z.ZodLiteral<"deny_dangerous_patterns">;
}, "strip", z.ZodTypeAny, {
    type: "deny_dangerous_patterns";
}, {
    type: "deny_dangerous_patterns";
}>, z.ZodObject<{
    type: z.ZodLiteral<"allow_by_category">;
    categories: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    type: "allow_by_category";
    categories: string[];
}, {
    type: "allow_by_category";
    categories: string[];
}>, z.ZodObject<{
    type: z.ZodLiteral<"allow_by_name">;
    toolNames: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    type: "allow_by_name";
    toolNames: string[];
}, {
    type: "allow_by_name";
    toolNames: string[];
}>, z.ZodObject<{
    type: z.ZodLiteral<"deny_by_name">;
    toolNames: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    type: "deny_by_name";
    toolNames: string[];
}, {
    type: "deny_by_name";
    toolNames: string[];
}>, z.ZodObject<{
    type: z.ZodLiteral<"custom_pattern">;
    pattern: z.ZodString;
    target: z.ZodEnum<["name", "args", "both"]>;
    decision: z.ZodEnum<["allow", "deny"]>;
}, "strip", z.ZodTypeAny, {
    type: "custom_pattern";
    pattern: string;
    target: "name" | "args" | "both";
    decision: "deny" | "allow";
}, {
    type: "custom_pattern";
    pattern: string;
    target: "name" | "args" | "both";
    decision: "deny" | "allow";
}>, z.ZodObject<{
    type: z.ZodLiteral<"allow_by_tier">;
    tiers: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    type: "allow_by_tier";
    tiers: string[];
}, {
    type: "allow_by_tier";
    tiers: string[];
}>]>;
export declare const VerificationGateConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    rules: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"allow_read_only">;
    }, "strip", z.ZodTypeAny, {
        type: "allow_read_only";
    }, {
        type: "allow_read_only";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"deny_dangerous_patterns">;
    }, "strip", z.ZodTypeAny, {
        type: "deny_dangerous_patterns";
    }, {
        type: "deny_dangerous_patterns";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"allow_by_category">;
        categories: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        type: "allow_by_category";
        categories: string[];
    }, {
        type: "allow_by_category";
        categories: string[];
    }>, z.ZodObject<{
        type: z.ZodLiteral<"allow_by_name">;
        toolNames: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        type: "allow_by_name";
        toolNames: string[];
    }, {
        type: "allow_by_name";
        toolNames: string[];
    }>, z.ZodObject<{
        type: z.ZodLiteral<"deny_by_name">;
        toolNames: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        type: "deny_by_name";
        toolNames: string[];
    }, {
        type: "deny_by_name";
        toolNames: string[];
    }>, z.ZodObject<{
        type: z.ZodLiteral<"custom_pattern">;
        pattern: z.ZodString;
        target: z.ZodEnum<["name", "args", "both"]>;
        decision: z.ZodEnum<["allow", "deny"]>;
    }, "strip", z.ZodTypeAny, {
        type: "custom_pattern";
        pattern: string;
        target: "name" | "args" | "both";
        decision: "deny" | "allow";
    }, {
        type: "custom_pattern";
        pattern: string;
        target: "name" | "args" | "both";
        decision: "deny" | "allow";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"allow_by_tier">;
        tiers: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        type: "allow_by_tier";
        tiers: string[];
    }, {
        type: "allow_by_tier";
        tiers: string[];
    }>]>, "many">>;
    allowReadOnlyTools: z.ZodDefault<z.ZodBoolean>;
    denyDangerousPatterns: z.ZodDefault<z.ZodBoolean>;
    logDecisions: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    enabled: boolean;
    rules: ({
        type: "allow_read_only";
    } | {
        type: "deny_dangerous_patterns";
    } | {
        type: "allow_by_category";
        categories: string[];
    } | {
        type: "allow_by_name";
        toolNames: string[];
    } | {
        type: "deny_by_name";
        toolNames: string[];
    } | {
        type: "custom_pattern";
        pattern: string;
        target: "name" | "args" | "both";
        decision: "deny" | "allow";
    } | {
        type: "allow_by_tier";
        tiers: string[];
    })[];
    allowReadOnlyTools: boolean;
    denyDangerousPatterns: boolean;
    logDecisions: boolean;
}, {
    enabled?: boolean | undefined;
    rules?: ({
        type: "allow_read_only";
    } | {
        type: "deny_dangerous_patterns";
    } | {
        type: "allow_by_category";
        categories: string[];
    } | {
        type: "allow_by_name";
        toolNames: string[];
    } | {
        type: "deny_by_name";
        toolNames: string[];
    } | {
        type: "custom_pattern";
        pattern: string;
        target: "name" | "args" | "both";
        decision: "deny" | "allow";
    } | {
        type: "allow_by_tier";
        tiers: string[];
    })[] | undefined;
    allowReadOnlyTools?: boolean | undefined;
    denyDangerousPatterns?: boolean | undefined;
    logDecisions?: boolean | undefined;
}>;
export type VerificationGateConfig = z.infer<typeof VerificationGateConfigSchema>;
//# sourceMappingURL=index.d.ts.map