import { CancelTokenSource } from 'axios';
import { IGlobalOptions, IUploadFileSuccessFile, IUploadOptions, UploadFileStatusEnum } from './types';
declare abstract class UploadFile {
    /**
     * 全局参数
     */
    protected readonly globalOptions: IGlobalOptions;
    /**
     * 上传文件配置
     */
    protected readonly uploadOptions: IUploadOptions;
    /**
     * 上传状态
     */
    protected uploadStatus: UploadFileStatusEnum;
    /**
     * 取消段取消上传
     */
    protected cancelTokenSource: CancelTokenSource;
    /**
     * 文件完整路径（文件路径 + 文件名称）
     */
    protected filePath: string;
    constructor(globalOptions: IGlobalOptions, uploadOptions: IUploadOptions);
    /**
     * 获取文件名
     * @returns 返回文件名
     */
    protected getFileName(): string;
    /**
     * 获取文件上传目录
     * @returns 返回文件上传目录
     */
    protected getFileDir(): string;
    /**
     * 获取文件完整路径
     * @returns 返回文件完整路径
     */
    protected getFilePath(): string;
    /**
     * 获取文件下载地址
     */
    protected getFIleInfo(): Promise<IUploadFileSuccessFile>;
    /**
     * 判断是否终止上传
     */
    protected shouldAbort(): boolean;
    protected abstract execute(): void;
    abstract abort(): void;
}
export default UploadFile;
