import type { FlushableRunLedger, RunLedger, RunLedgerDurability } from "./contracts.js"; export declare const DEFAULT_LEDGER_BATCH_ENTRIES = 128; export declare const HARD_LEDGER_BATCH_ENTRIES = 4096; export declare const DEFAULT_LEDGER_BATCH_BYTES: number; export declare const HARD_LEDGER_BATCH_BYTES: number; export declare const DEFAULT_LEDGER_BATCH_DELAY_MS = 25; export declare const HARD_LEDGER_BATCH_DELAY_MS = 60000; export interface BatchedRunLedgerOptions { /** Flush triggers, not write grouping: a pending flush fires once the buffer reaches * this many entries. Writes still go to the target one at a time (RunLedger has no * batch append); these bounds shape flush *timing*, not per-write coalescing. */ readonly maxBatchEntries?: number; /** Flush trigger: pending flush fires once buffered bytes reach this bound. */ readonly maxBatchBytes?: number; /** Backpressure bound: enqueue flushes synchronously before exceeding this. */ readonly maxBufferedEntries?: number; /** Backpressure bound (bytes): enqueue flushes synchronously before exceeding this. */ readonly maxBufferedBytes?: number; readonly maxDelayMs?: number; readonly durability?: RunLedgerDurability; } /** * Wrap any RunLedger with one bounded FIFO. Inputs must already be redacted, as required by RunLedger. * `buffered` may lose accepted records on process crash; call `flush()` for acknowledgement. */ export declare function createBatchedRunLedger(target: RunLedger, options?: BatchedRunLedgerOptions): FlushableRunLedger; export declare function isFlushableRunLedger(ledger: RunLedger): ledger is FlushableRunLedger;