import type { BudgetLimit, LedgerVerification, PolicyApproval, PolicyDecision, PolicyEngineOptions, PolicyRequest, PolicyRule, PolicyState } from './types.js'; export declare class AgenticPolicyEngine { private readonly now; private readonly signingKey?; private readonly keyId?; private readonly evidenceVerifier?; private readonly approvalIssuerVerifier?; private state; constructor(options?: PolicyEngineOptions); static fromState(state: PolicyState, options?: Omit): AgenticPolicyEngine; exportState(): PolicyState; setMode(mode: PolicyState['mode']): void; setConfiguredMode(mode: PolicyState['mode']): void; upsertRule(rule: PolicyRule): void; setBudget(limit: BudgetLimit): void; issueApproval(approval: Omit & { uses?: number; issuedAt?: number; }): PolicyApproval; revokeApproval(id: string): boolean; evaluate(request: PolicyRequest): PolicyDecision; /** * `establishAnchor` is the ONLY way to create an anchor over receipts that * already exist (#3602). A caller must have decided, outside the state file, * that this is legitimate (genesis, an authentic second anchor, or an * explicit operator action). Without it a ledger with receipts and no anchor * is `anchor-missing`, because deleting the anchor fields from the file the * anchor protects would otherwise let verify bless a truncated chain. */ verifyLedger(options?: { establishAnchor?: boolean; }): LedgerVerification; private applyBudget; private applyApproval; private consumeBudget; private appendReceipt; private validateRequest; } export declare function createLegacyCompatibleState(source?: string): PolicyState; //# sourceMappingURL=engine.d.ts.map