import type { FileHashesService } from '../../../persistence/file-hashes/services/file-hashes-service.js';
import type { FileHashReadModelSchema, FileType } from '../../../persistence/file-hashes/types.js';
import type { Filter } from '../../../providers/database/pagination/types';
import { FileHashStatus } from '../../../persistence/file-hashes/types.js';
export type HashManagerUpdateService = {
    clearOutdatedRecords(outdatedHash: string): Promise<void>;
};
export type HashManagerOptions = {
    hashManagerUpdateService: HashManagerUpdateService;
    fileType: FileType;
    fileHashesService?: FileHashesService;
    localHashesCache?: Map<string, string>;
};
export declare class HashManager {
    #private;
    constructor(fileHashesService: FileHashesService);
    markAllAsOutdated(fileType: FileType): Promise<boolean>;
    getByPath(filePath: string): Promise<FileHashReadModelSchema | null>;
    upsert(fileType: FileType, filePath: string, hash: string, status: FileHashStatus): Promise<string | null>;
    getAllOutdated(fileType: FileType): Promise<FileHashReadModelSchema[]>;
    getStatusSnapshot(fileType: FileType): Promise<Map<string, FileHashStatus>>;
    computeFileHash(fileContent: unknown): Promise<string>;
    deleteFileHashes(filter: Filter): Promise<boolean>;
}
//# sourceMappingURL=hash-manager.d.ts.map