/**
 * 哈希存储状态类型
 */
interface HashStorageStatus {
    lastUpdated: string;
    entries: Array<{
        caveId: number;
        imageHashes: string[];
        textHashes: string[];
    }>;
}
/**
 * 图片哈希值存储管理类
 * 负责管理和维护回声洞图片的哈希值
 */
export declare class HashManager {
    private readonly caveDir;
    private static readonly HASH_FILE;
    private static readonly CAVE_FILE;
    private static readonly BATCH_SIZE;
    private imageHashes;
    private textHashes;
    private initialized;
    /**
     * 初始化HashManager实例
     * @param caveDir 回声洞数据目录路径
     */
    constructor(caveDir: string);
    private get filePath();
    private get resourceDir();
    private get caveFilePath();
    /**
     * 初始化哈希存储
     * 读取现有哈希数据或重新构建哈希值
     * @throws 初始化失败时抛出错误
     */
    initialize(): Promise<void>;
    /**
     * 获取当前哈希存储状态
     * @returns 包含最后更新时间和所有条目的状态对象
     */
    getStatus(): Promise<HashStorageStatus>;
    /**
     * 更新指定回声洞的图片哈希值
     * @param caveId 回声洞ID
     * @param content 图片buffer数组
     */
    updateCaveContent(caveId: number, content: {
        images?: Buffer[];
        texts?: string[];
    }): Promise<void>;
    /**
     * 更新所有回声洞的哈希值
     * @param isInitialBuild 是否为初始构建
     */
    updateAllCaves(isInitialBuild?: boolean): Promise<void>;
    /**
     * 查找重复的图片
     * @param content 待查找的图片buffer数组
     * @param thresholds 相似度阈值
     * @returns 匹配结果数组，包含索引、回声洞ID和相似度
     */
    findDuplicates(content: {
        images?: Buffer[];
        texts?: string[];
    }, thresholds: {
        image: number;
        text: number;
    }): Promise<Array<{
        type: 'image' | 'text';
        index: number;
        caveId: number;
        similarity: number;
    } | null>>;
    private findTextDuplicates;
    private calculateTextSimilarity;
    private findImageDuplicates;
    /**
     * 加载回声洞数据
     * @returns 回声洞数据数组
     * @private
     */
    private loadCaveData;
    /**
     * 保存哈希数据到文件
     * @private
     */
    private saveContentHashes;
    /**
     * 构建初始哈希数据
     * @private
     */
    private buildInitialHashes;
    /**
     * 更新缺失的哈希值
     * @private
     */
    private updateMissingHashes;
    /**
     * 批量处理数组项
     * @param items 待处理项数组
     * @param processor 处理函数
     * @param batchSize 批处理大小
     * @private
     */
    private processBatch;
}
export {};
