import { z } from 'zod'; import type { DeploymentPreview, StackCollection } from './types'; export declare const policyContractSchema: z.ZodObject<{ version: z.ZodLiteral<1>; forbiddenResourceTypes: z.ZodDefault>; requiredTags: z.ZodDefault>; maxResources: z.ZodOptional; maxPublicEntries: z.ZodOptional; deployment: z.ZodDefault; blockSeverities: z.ZodDefault, "many">>; }, "strip", z.ZodTypeAny, { maxRiskScore: number; blockSeverities: ("CRITICAL" | "HIGH" | "MEDIUM" | "LOW")[]; }, { maxRiskScore?: number | undefined; blockSeverities?: ("CRITICAL" | "HIGH" | "MEDIUM" | "LOW")[] | undefined; }>>; }, "strip", z.ZodTypeAny, { version: 1; forbiddenResourceTypes: string[]; requiredTags: string[]; deployment: { maxRiskScore: number; blockSeverities: ("CRITICAL" | "HIGH" | "MEDIUM" | "LOW")[]; }; maxResources?: number | undefined; maxPublicEntries?: number | undefined; }, { version: 1; maxResources?: number | undefined; forbiddenResourceTypes?: string[] | undefined; requiredTags?: string[] | undefined; maxPublicEntries?: number | undefined; deployment?: { maxRiskScore?: number | undefined; blockSeverities?: ("CRITICAL" | "HIGH" | "MEDIUM" | "LOW")[] | undefined; } | undefined; }>; export type PolicyContract = z.infer; export interface PolicyViolation { code: 'FORBIDDEN_RESOURCE_TYPE' | 'MISSING_REQUIRED_TAG' | 'RESOURCE_LIMIT_EXCEEDED' | 'PUBLIC_ENTRY_LIMIT_EXCEEDED' | 'DEPLOYMENT_RISK_EXCEEDED' | 'DEPLOYMENT_SEVERITY_BLOCKED'; resourceId?: string; message: string; } export declare const evaluatePolicyContract: (input: unknown, stacks: StackCollection, preview?: DeploymentPreview) => { contract: PolicyContract; violations: PolicyViolation[]; passed: boolean; }; export declare const DEFAULT_POLICY_CONTRACT: PolicyContract;