import { default as ObsClient } from 'esdk-obs-browserjs';
import { SliceUploadOptions } from '../types';
/**
 * 分片上传类，负责处理文件的分片上传流程。
 */
declare class SliceUpload {
    /**
     * OBS客户端实例。
     */
    private obsClient;
    /**
     * 分片上传选项，包含文件上下文选项和事件回调。
     */
    private uploadOptions;
    /**
     * 上传ID，用于标识当前上传任务的唯一性。
     */
    private uploadId;
    /**
     * 是否已经取消上传。
     */
    private uploadStatus;
    /**
     * 构造函数，初始化OBS客户端实例和上传选项。
     * @param obsClient  OBS客户端实例
     * @param uploadOptions 上传选项
     */
    constructor(obsClient: ObsClient, uploadOptions: SliceUploadOptions);
    /**
     * 执行分片上传流程。
     */
    exec(): Promise<void>;
    /**
     * 生成上传ID。
     * @returns 返回上传ID的Promise对象
     */
    private generateUploadId;
    /**
     * 生成分片信息。
     * @param fileSize 文件大小
     * @param partSize 分片大小
     * @returns 返回分片信息数组
     */
    private generateFileParts;
    /**
     * 上传各个分片。
     * @param fileParts 分片信息数组
     * @returns 返回上传结果的Promise对象数组
     */
    private uploadFileParts;
    /**
     * 监听文件上传进度
     */
    wathcUploadFileProgress(): void;
    /**
     *
     * @param parts 上传结果数组
     * @returns 返回合并结果的Promise对象
     */
    private mergeFileParts;
    /**
     * 中断分片上传。
     * @returns 返回中断上传结果的Promise对象
     */
    abort(): Promise<unknown>;
    private shouldAbort;
    private shouldUploading;
}
export default SliceUpload;
