import type { ReviewContext } from '../../../modules/review-execution/entities/reviewContext/reviewContext.js';
import type { ReviewContextGateway } from '../../../modules/review-execution/entities/reviewContext/reviewContext.gateway.js';
export declare function shouldRecover(context: ReviewContext): boolean;
export interface RecoveryLogger {
    info: (obj: object, msg: string) => void;
    warn: (obj: object, msg: string) => void;
    error: (obj: object, msg: string) => void;
}
export interface RecoveryRepository {
    localPath: string;
}
export interface RecoverySummary {
    scanned: number;
    recovered: number;
    partial: number;
    backfilled: number;
    skipped: number;
    failed: number;
}
export interface ExecuteActionsOutcome {
    posted: number;
    failed: number;
}
export interface RecoveryDeps {
    repositories: RecoveryRepository[];
    reviewContextGateway: ReviewContextGateway;
    executeActions: (context: ReviewContext, localPath: string) => Promise<ExecuteActionsOutcome>;
    now: () => number;
    logger: RecoveryLogger;
    graceWindowMs?: number;
}
export declare function runReviewRecovery(deps: RecoveryDeps): Promise<RecoverySummary>;
//# sourceMappingURL=reviewRecovery.service.d.ts.map