import { FileQueueItem, CrystallizationProgress } from '../types/index.js';
export declare class QueueManager {
    private queue;
    private processed;
    private startTime;
    private currentFile;
    private sessionId;
    private repoPath;
    private queueStatePath;
    private excludePatterns;
    private claimLimit;
    private claimsPath;
    private timeoutSeconds;
    constructor();
    initializeQueue(files: FileQueueItem[], repoPath: string, excludePatterns?: string[]): Promise<void>;
    getNextFile(): Promise<FileQueueItem | null>;
    markProcessed(filePath: string): Promise<void>;
    getProgress(): CrystallizationProgress;
    getRemainingFiles(): number;
    getProcessedCount(): number;
    tryRecoverSession(repoPath: string, excludePatterns: string[]): Promise<boolean>;
    private saveQueueState;
    private arraysEqual;
    clearSession(): Promise<void>;
    getSessionInfo(): {
        sessionId: string;
        startTime: Date | null;
        repoPath: string | null;
    };
    private loadTimeoutConfig;
    private loadClaims;
    private saveClaims;
    private claimFile;
    private releaseClaim;
    private isFileClaimed;
    private cleanupExpiredClaims;
}
//# sourceMappingURL=queue-manager.d.ts.map