import type { CompanionDiff } from './diff-reader.js'; export interface CompanionReviewRequest { readonly companionName: string; readonly snapshot: CompanionDiff; readonly reason: 'quiet' | 'forced' | 'completion' | 'commit'; readonly observedGeneration: number; } export interface CompanionReviewQueueCoalesced { readonly companionName: string; readonly replaced: { readonly trigger: CompanionReviewRequest['reason']; readonly digest: string; readonly changedLines: number; readonly observedGeneration: number; }; readonly replacement: { readonly trigger: CompanionReviewRequest['reason']; readonly digest: string; readonly changedLines: number; readonly observedGeneration: number; }; } export declare class CompanionReviewQueue { private readonly input; private readonly states; private stopped; constructor(input: { runReview: (request: CompanionReviewRequest & { signal: AbortSignal; }) => Promise; refreshRetryRequest: (request: CompanionReviewRequest, signal: AbortSignal) => Promise; onCoalesced?: (event: CompanionReviewQueueCoalesced) => void; }); enqueue(request: CompanionReviewRequest): Promise; complete(request: Omit): Promise; drain(companionName: string): Promise; stop(reason?: unknown): void; private startDrain; private drainState; private getState; private rejectPending; private throwIfStopped; } //# sourceMappingURL=review-queue.d.ts.map