import React from 'react';
import COS from 'cos-js-sdk-v5';
import { UploadProps, RequestConfigData, CosRequestMethod, CosUploadRequestResult, VodCommitRequestMethod, VodCommitRequestResult, FileResult } from './interface';
import type { cosUploadType, materialFileType } from './interface';
export type { cosUploadType, materialFileType, RequestConfigData, CosRequestMethod, CosUploadRequestResult, VodCommitRequestMethod, VodCommitRequestResult, };
export interface WauUploadProps extends UploadProps {
    /**
     * @description 文件对接 COS 服务类型
     * @default 'image'
     */
    materialType?: materialFileType;
    /**
     * @description 开启 COS 服务
     * @default false
     */
    cosUpload?: boolean;
    /**
     * @description COS 服务上传类型
     * @default 'basic'
     */
    cosUploadType?: cosUploadType;
    /**
     * @description 分片上传时每块分片的大小
     * @default 8 * 1024 * 1024
     */
    cosMultipartChunkSize?: number;
    /**
     * @description cos 接口额外参数
     * @default false
     */
    cosApiParams?: {
        putObject: Omit<COS.PutObjectCopyParams, 'Bucket' | 'Region' | 'Key' | 'Body' | 'onProgress'>;
        multipartInit: Omit<COS.MultipartInitParams, 'Bucket' | 'Region' | 'Key'>;
        multipartUpload: Omit<COS.MultipartUploadParams, 'Bucket' | 'Region' | 'Key' | 'UploadId' | 'PartNumber' | 'Body'>;
        multipartComplete: Omit<COS.MultipartCompleteParams, 'Bucket' | 'Region' | 'Key' | 'UploadId' | 'Parts'>;
        multipartAbort: Omit<COS.MultipartAbortParams, 'Bucket' | 'Region' | 'Key' | 'UploadId'>;
    };
    /**
     * @description 获取 COS 配置的接口函数
     * @default
     */
    cosRequestMethod?: CosRequestMethod;
    /**
     * @description 文件类型为非视频时，获取 COS 配置信息的接口地址
     * @default
     */
    cosRequestUrl?: string;
    /**
     * @description 文件类型为视频时，获取 COS 配置信息的接口地址
     * @default
     */
    vodRequestUrl?: string;
    /**
     * @description 视频文件上传至 VOD 的接口地址
     * @default
     */
    vodCommitRequestUrl?: string;
    /**
     * @description 提交 VOD 资源的接口函数
     * @default
     */
    vodCommitRequestMethod?: VodCommitRequestMethod;
    /**
     * @description 为内置 request 接口额外配置信息
     * @default
     */
    requestConfigData?: RequestConfigData;
    /**
     * @description 有错误处理的时候触发的钩子
     * @default
     */
    onError?: (file: FileResult, error: Error) => void;
}
type CompoundedComponent = React.ForwardRefExoticComponent<React.PropsWithChildren<WauUploadProps> & React.RefAttributes<any>>;
declare const WauUpload: CompoundedComponent;
export default WauUpload;
