import { Logger } from 'koishi';
import { Config } from './index';
/**
 * @class FileManager
 * @description 封装了对文件的存储、读取和删除操作。
 * 能根据配置自动选择使用本地文件系统或 AWS S3 作为存储后端。
 * 内置 Promise 文件锁，防止本地文件的并发写入冲突。
 */
export declare class FileManager {
    private logger;
    private resourceDir;
    private locks;
    private s3Client?;
    private s3Bucket?;
    /**
     * @constructor
     * @param baseDir Koishi 应用的基础数据目录 (ctx.baseDir)。
     * @param config 插件的配置对象。
     * @param logger 日志记录器实例。
     */
    constructor(baseDir: string, config: Config, logger: Logger);
    /**
     * @description 使用文件锁安全地执行异步文件操作，防止并发读写冲突。
     * @template T 异步操作的返回类型。
     * @param fullPath 需要加锁的文件的完整路径。
     * @param operation 要执行的异步函数。
     * @returns 异步操作的结果。
     */
    private withLock;
    /**
     * @description 保存文件，自动选择 S3 或本地存储。
     * @param fileName 用作 S3 Key 或本地文件名。
     * @param data 要写入的 Buffer 数据。
     * @returns 保存时使用的文件名。
     */
    saveFile(fileName: string, data: Buffer): Promise<string>;
    /**
     * @description 读取文件，自动从 S3 或本地存储读取。
     * @param fileName 要读取的文件名/标识符。
     * @returns 文件的 Buffer 数据。
     */
    readFile(fileName: string): Promise<Buffer>;
    /**
     * @description 删除文件，自动从 S3 或本地删除。
     * @param fileIdentifier 要删除的文件名/标识符。
     */
    deleteFile(fileIdentifier: string): Promise<void>;
}
