export default Uploader;
declare function Uploader(options: any): {
    /**
     * 接口版本号，当前支持1.0
     * @type {String}
     */
    version: string;
    /**
     * 上传的文件对象
     * @type {fileObj}
     */
    uploadFile: any;
    /**
     * 边缘节点列表
     * @type {Array}
     */
    edgeNodeList: any[];
    /**
     * 当前上传文件使用的边缘节点在edgeNodeList中的序号
     * @type {Number}
     */
    dnsRetryCount: number;
    /**
     * 当前上传分片使用的边缘节点剩余的重试次数
     * @type {Number}
     */
    uTRetryCount: number;
    /**
     * 获取断点失败剩余重试次数
     * @type {Number}
     */
    gORetryCount: number;
    /**
     * 查询DNS失败剩余重试次数
     * @type {Number}
     */
    gDRetryCount: number;
    /**
     * 创建ajax对象
     * @return {void}
     */
    createAjax: () => void;
    /**
     * 清除本地存储
     * @param {Object} fileKey 文件标识符
     */
    clearStorage: (bucketName: any, objectName: any, fileKey: Object) => void;
    /**
     * 添加文件
     * @method addFile
     * @param {File}   file 需要上传的文件
     * @param {Function} callback  成功回调函数
     *  	回调函数中的参数包括：
     *      fileObj: 文件对象
     * 			文件对象中包含的属性:
     * 				fileKey {String} 文件名与文件大小的MD5值
     * 				file {File} 文件对象
     * 				fileName {String} 文件名
     * 				status {Number} 文件状态（ 0 未上传  1 正在上传  2 已上传）
     * 				progress {Number} 上传进度（保留两位小数的百分比）
     * @return {void}
     */
    addFile: (file: File, callback: Function) => void;
    /**
     * 根据fileKey获取指定文件对象
     * @method getFile
     * @param  {String} fileKey 文件名和文件大小md5值
     * @return {Obejct}         文件对象
     */
    getFile: (fileKey: string) => any;
    /**
     * 查询DNS
     * @method getDNS
     * @param  {Object}   bucketname    桶名
     * @param  {Function} callback 成功回调函数
     * 		回调函数参数包括：
     * 		upload： 返回最优的边缘节点列表，加速效果最好的在前面
     *      lbs: 返回的最优的DNS地址，后续可以使用该地址进行上传
     * @return {void}
     */
    getDNS: (bucketname: Object, callback: Function) => void;
    /**
     * 获取上传断点位置
     * @method getOffset
     * @param  {Object}   param  AJAX参数
     * 		param属性有：
     * 		serveIp {String} IP地址
     * 		fileKey {String} 文件名与文件大小的MD5值
     * 		bucketName {String} 桶名
     * 		objectName {String} 对象名
     * 		token {String} 上传凭证
     * @param  {Function} callback 获取成功回调
     * 		回调函数中的参数：
     * 		offset {long} 当前分片在整个对象中的起始偏移量
     * @return {void}
     */
    getOffset: (param: Object, callback: Function) => void;
    /**
     * 上传分片
     * @method uploadTrunk
     * @param  {Object}   param     AJAX参数
     *  	param中的属性有：
     * 		serveIp {String} IP地址
     * 		bucketName {String} 桶名
     * 		objectName {String} 对象名
     * 		token {String} 上传凭证
     * @param  {Object}   trunkData 分片数据
     * 		trunkData属性有：
     * 		file {File} File对象
     *      fileKey {String} 文件名和文件大小的MD5值
     *      offset {long} 当前分片在整个对象中的起始偏移量
     *      trunkSize {long} 分片大小
     *      trunkEnd {long} 分片结束位置
     *      context: {String} 上传上下文
     * @param  {Function} callback  文件（非分片）上传成功回调函数
     * 		回调函数参数：
     * 		trunkData {Object} 分片数据
     * @return {void}
     */
    uploadTrunk: (param: Object, trunkData: Object, callback: Function) => void;
    /**
     * 暂停上传
     * @method pauseUpload
     * @return {void}
     */
    pauseUpload: () => void;
    /**
     * 上传文件
     * @param {Object} param 参数
     * 		param属性有：
     * 			bucketName {String} 桶名
     * 			objectName {String} 对象名
     * 			trunkSize {long} 分片大小
     * 			token {Object} 上传凭证
     * @return {void}
     */
    upload: (param: Object, callback: any) => void;
};
