import { Context, Logger } from 'koishi';
import { Config } from './index';
import { FileManager } from './FileManager';
/**
 * @description 数据库 `cave_hash` 表的完整对象模型。
 */
export interface CaveHashObject {
    cave: number;
    hash: string;
    type: 'text' | 'image';
}
/**
 * @class HashManager
 * @description 负责生成、存储和比较文本与图片的哈希值。
 * 实现了基于 Simhash 的文本查重和基于 DCT 感知哈希 (pHash) 的图片查重方案。
 */
export declare class HashManager {
    private ctx;
    private config;
    private logger;
    private fileManager;
    /**
     * @constructor
     * @param ctx - Koishi 上下文，用于数据库操作。
     * @param config - 插件配置，用于获取相似度阈值等。
     * @param logger - 日志记录器实例。
     * @param fileManager - 文件管理器实例，用于读取图片文件。
     */
    constructor(ctx: Context, config: Config, logger: Logger, fileManager: FileManager);
    /**
     * @description 注册与哈希功能相关的子命令。
     * @param cave - 主 `cave` 命令实例。
     */
    registerCommands(cave: any): void;
    /**
     * @description 扫描并修复单个图片 Buffer，移除文件结束符之后的多余数据。
     * @param imageBuffer - 原始的图片 Buffer。
     * @returns 修复后的图片 Buffer。如果无需修复，则返回原始 Buffer。
     */
    sanitizeImageBuffer(imageBuffer: Buffer): Buffer;
    /**
     * @description 执行一维离散余弦变换 (DCT-II) 的方法。
     * @param input - 输入的数字数组。
     * @returns DCT 变换后的数组。
     */
    private dct1D;
    /**
     * @description 执行二维离散余弦变换 (DCT-II) 的方法。
     * 通过对行和列分别应用一维 DCT 来实现。
     * @param matrix - 输入的 N x N 像素亮度矩阵。
     * @returns DCT 变换后的 N x N 系数矩阵。
     */
    private dct2D;
    /**
     * @description pHash 算法核心实现，使用 Jimp 和自定义 DCT。
     * @param imageBuffer - 图片的 Buffer。
     * @returns 64位十六进制 pHash 字符串。
     */
    generatePHash(imageBuffer: Buffer): Promise<string>;
    /**
     * @description 根据汉明距离计算相似度百分比。
     * @param hex1 - 第一个哈希。
     * @param hex2 - 第二个哈希。
     * @returns 相似度 (0-100)。
     */
    calculateSimilarity(hex1: string, hex2: string): number;
    /**
     * @description 为文本生成 64 位 Simhash 字符串。
     * @param text - 需要处理的文本。
     * @returns 16位十六进制 Simhash 字符串。
     */
    generateTextSimhash(text: string): string;
}
