import { z } from "zod";
export declare const PolicyRuleSchema: z.ZodObject<{
    match: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    action: z.ZodEnum<{
        approve: "approve";
        reject: "reject";
        propagate: "propagate";
    }>;
}, z.core.$strip>;
export type PolicyRule = z.infer<typeof PolicyRuleSchema>;
export declare const PolicySchema: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
    match: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    action: z.ZodEnum<{
        approve: "approve";
        reject: "reject";
        propagate: "propagate";
    }>;
}, z.core.$strip>>>;
export type Policy = z.infer<typeof PolicySchema>;
type PolicyResult = {
    type: "approve";
} | {
    type: "reject";
} | {
    type: "propagate";
};
export declare function checkPolicy(policy: Policy, interrupt: {
    kind: string;
    message: string;
    data: any;
    origin: string;
}): PolicyResult;
export declare function validatePolicy(policy: any): {
    success: boolean;
    error?: string;
};
export {};
