import { FileScanner } from './file-scanner.js';
import { ContextStorage } from './context-storage.js';
import { ChangeDetector, FileChange } from './change-detector.js';
import { QueueManager } from './queue-manager.js';
export interface UpdateResult {
    summary: {
        filesScanned: number;
        changesDetected: number;
        contextsUpdated: number;
        contextsAdded: number;
        contextsRemoved: number;
        errors: number;
    };
    changes: FileChange[];
    updatedContexts: string[];
    errors: Array<{
        file: string;
        error: string;
    }>;
}
export interface UpdateOptions {
    forceUpdate?: boolean;
    includeUnchanged?: boolean;
    cleanupDeleted?: boolean;
}
export declare class ContextUpdater {
    private repoPath;
    private fileScanner;
    private contextStorage;
    private changeDetector;
    private queueManager;
    constructor(repoPath: string, fileScanner: FileScanner, contextStorage: ContextStorage, changeDetector: ChangeDetector, queueManager: QueueManager);
    updateContexts(options?: UpdateOptions): Promise<UpdateResult>;
    getUpdateStatus(): Promise<{
        needsUpdate: boolean;
        summary: {
            lastScan: Date | null;
            totalFiles: number;
            filesWithContext: number;
            contextCoverage: number;
            estimatedOutdated: number;
        };
    }>;
    validateContextFreshness(relativePath: string): Promise<{
        isFresh: boolean;
        reason?: string;
        lastModified?: Date;
        contextAge?: number;
    }>;
    generateUpdateReport(): Promise<string>;
}
//# sourceMappingURL=context-updater.d.ts.map