export interface IdleCompactionOptions { idleMs: number; cooldownMs: number; timeoutMs: number; } export type IdleCompactionOutcome = 'committed' | 'skipped' | 'stale'; type Job = (signal: AbortSignal, isCurrent: () => boolean) => Promise; /** Generation checks protect commits even when a provider ignores cancellation. */ export declare class IdleCompactionScheduler { private readonly states; private running; private disposed; private readonly metrics; getMetrics(): { committed: number; skipped: number; stale: number; cancelled: number; failed: number; }; interrupt(conversationId: string): void; beginTurn(conversationId: string): number; endTurn(conversationId: string, generation: number, job?: Job, options?: IdleCompactionOptions): void; cancelAll(): void; dispose(): void; private drain; } export {};