import { FileInfo, UploadStepEnum } from '../type';
/**
 * 文件管理器
 * 负责文件队列管理、文件验证、状态管理等
 */
export declare class FileManager {
    private fileQueue;
    private activeFiles;
    private maxFileSize?;
    private allowedFileTypes?;
    constructor(options?: {
        maxFileSize?: number;
        allowedFileTypes?: string[];
    });
    /**
     * 添加文件到队列
     */
    addFiles(files: File[] | FileList): FileInfo[];
    /**
     * 验证文件
     */
    private validateFile;
    /**
     * 从队列中获取下一个文件
     */
    getNextFile(): FileInfo | undefined;
    /**
     * 添加文件到活动列表
     */
    addToActive(fileInfo: FileInfo): void;
    /**
     * 从活动列表中移除文件
     */
    removeFromActive(fileId: string): void;
    /**
     * 获取活动文件
     */
    getActiveFile(fileId: string): FileInfo | undefined;
    /**
     * 获取所有活动文件
     */
    getAllActiveFiles(): FileInfo[];
    /**
     * 更新文件状态
     */
    updateFileStatus(fileId: string, status: UploadStepEnum): void;
    /**
     * 更新文件进度
     */
    updateFileProgress(fileId: string, uploadedSize: number): void;
    /**
     * 获取队列长度
     */
    getQueueLength(): number;
    /**
     * 获取活动文件数量
     */
    getActiveCount(): number;
    /**
     * 清空队列
     */
    clearQueue(): void;
    /**
     * 清空活动文件
     */
    clearActive(): void;
    /**
     * 获取统计信息
     */
    getStats(): {
        queued: number;
        active: number;
        completed: number;
        failed: number;
        paused: number;
    };
    /**
     * 获取文件扩展名
     */
    private getFileExtension;
    /**
     * 检查文件类型是否允许
     */
    private isFileTypeAllowed;
}
//# sourceMappingURL=FileManager.d.ts.map