import { AuditDb } from "./audit-db.js"; //#region src/audit/prune.d.ts /** * Options for `pruneAudit(...)`. * * @stable */ interface PruneAuditOptions { /** * Drop entries older than this Date / epoch ms. Required so the * helper never silently truncates the audit chain. */ readonly before: Date | number; /** * Minimum number of entries that must survive. The helper refuses * to leave the chain emptier than this. Defaults to 1. */ readonly retain?: number; /** * Optional structured log sink invoked exactly once per prune run. * The framework logger ships in a follow-on phase; until then, * consumers can wire `console.info` (or a custom logger) here so * the operational signal is not lost. */ readonly logger?: (event: PruneAuditLogEvent) => void; } /** * Structured shape of the single log event emitted per prune run. * * @stable */ interface PruneAuditLogEvent { readonly level: 'info'; readonly message: string; readonly deleted: number; readonly firstSurvivingSeq?: number; readonly retain: number; readonly before: number; } /** * Result of `pruneAudit(...)`. * * @stable */ interface PruneAuditResult { readonly deleted: number; /** Sequence number of the first surviving entry, or `undefined` if empty. */ readonly firstSurvivingSeq?: number; } /** * Drop entries older than `before`, leaving at least `retain` * entries. Maintains the chain integrity by rewriting the first * surviving entry's `prevHash` to the genesis value. * * @stable */ declare function pruneAudit(db: AuditDb, options: PruneAuditOptions): Promise; //#endregion export { PruneAuditLogEvent, PruneAuditOptions, PruneAuditResult, pruneAudit }; //# sourceMappingURL=prune.d.ts.map