import type { AccessPolicy, PolicyInput } from './types.js'; export interface PolicyDecision { readonly allow: boolean; readonly reason: string; readonly obligations?: Readonly>; } export interface PolicyRule { readonly name: string; readonly effect: 'allow' | 'deny'; readonly commands?: readonly string[]; readonly roles?: readonly string[]; readonly when?: (input: PolicyInput) => boolean | Promise; readonly reason?: string; } export interface PolicyEngine { evaluate(input: PolicyInput): Promise; policy(): AccessPolicy; simulate(inputs: readonly PolicyInput[]): Promise; } export declare function forgePolicyEngine(rules: readonly PolicyRule[], options?: { readonly defaultEffect?: 'allow' | 'deny'; readonly roleTag?: string; }): PolicyEngine; //# sourceMappingURL=policy.d.ts.map