import { ChunkInfo, FileInfo, FilePartInfo } from '../type';
/**
 * 分片管理器
 * 负责分片队列管理、断点续传、分片状态管理等
 */
export declare class ChunkManager {
    private chunkQueue;
    private uploadedChunks;
    private pendingChunks;
    private chunkSize;
    constructor(chunkSize?: number);
    /**
     * 准备分片队列
     */
    prepareChunkQueue(fileInfo: FileInfo): void;
    /**
     * 获取下一个待上传的分片
     */
    getNextChunk(fileId: string): ChunkInfo | undefined;
    /**
     * 获取待上传分片数量
     */
    getRemainingChunkCount(fileId: string): number;
    /**
     * 获取待处理分片数量
     */
    getPendingChunkCount(fileId: string): number;
    /**
     * 添加分片到待处理集合
     */
    addToPending(fileId: string, partNumber: number): void;
    /**
     * 从待处理集合移除分片
     */
    removeFromPending(fileId: string, partNumber: number): void;
    /**
     * 标记分片为已完成
     */
    markChunkCompleted(fileId: string, partNumber: number): void;
    /**
     * 重新加入分片到队列（用于重试）
     */
    requeueChunk(fileId: string, chunkInfo: ChunkInfo): void;
    /**
     * 计算已上传大小
     */
    calculateUploadedSize(fileInfo: FileInfo): number;
    /**
     * 从已上传的分片恢复上传
     */
    resumeFromExistingParts(fileInfo: FileInfo, existingParts: FilePartInfo[]): void;
    /**
     * 检查是否所有分片都已完成
     */
    isAllChunksCompleted(fileId: string): boolean;
    /**
     * 清理文件相关的分片数据
     */
    cleanup(fileId: string): void;
    /**
     * 获取分片统计信息
     */
    getChunkStats(fileId: string): {
        total: number;
        completed: number;
        pending: number;
        remaining: number;
    };
}
//# sourceMappingURL=ChunkManager.d.ts.map