import type { PersistedPendingApproval } from "./types.js"; /** * Append a detached approval record and retain a bounded history. The per-run * approval list is append-only: decisions rewrite records in place, so decided * approvals stay in the list and dominate its growth. * * Retention is state-aware because a live pending approval must never be * evicted: a run waiting on an evicted ID could never be decided or expired * and would wait forever. At the bound, the oldest decided record is evicted * first. An expired record remains pending until expiration reconciliation * decides it, and a decided record remains reserved until node reconciliation * finalizes it, so both are retained. When there are not enough finalized * records to make room, the append is rejected without changing existing * history instead of silently dropping a decidable approval. */ export declare function appendRetainedPendingApproval(approvals: PersistedPendingApproval[], approval: PersistedPendingApproval): void; //# sourceMappingURL=approval-retention.d.ts.map