/// <reference types="react" />
import { RcFile, UploadProps } from 'antd/lib/upload/interface';
import { OSSImgConfig, ImgSuffixType, ProjectId, File, YUploadFile } from './common/interface';
export declare enum ChangeType {
    REMOVE = "remove",
    DRAG = "dray",
    INIT = "init",
    INIT_DELETE = "init_delete",
    PREVIEW = "preview",
    UPLOAD = "upload"
}
export declare type ValueType = string | File;
export declare type UploadType = 'uploadFile' | 'uploadPicture' | 'thumbnail';
export interface OSSProps {
    isOss?: boolean;
    projectId?: ProjectId;
    featureName?: string;
    ossDir?: string;
    securityType?: 'public' | 'private';
    expire?: number;
}
export interface CropperProps {
    ableCrop?: boolean;
    aspectRatio?: number;
    cropType?: string;
    cropFinish?: (blob: any) => void;
}
export interface DrayProps {
    isDrag?: boolean;
}
export interface RequestProps {
    fileName?: string;
    name?: string | 'files';
    requestKeyName?: string | 'files';
    request?: (formData: FormData | any) => Promise<ValueType | void>;
}
export interface CheckProps {
    multiple?: boolean;
    accept?: ImgSuffixType | string;
    isAccept?: boolean;
    quantity?: number;
    maxSize?: number;
    picWidth?: number;
    picHeight?: number;
    deviation?: number;
    beforeUpload?: (file: RcFile, fileList: RcFile[]) => Promise<File>;
}
interface PreviewProps {
    buttonText?: string | React.ReactNode;
    disabled?: boolean;
    hidePreview?: boolean;
    previewPlaceholder?: string | '-' | React.ReactNode;
    maxShow?: number;
    column?: number;
    isVertical?: boolean;
    showFileName?: boolean;
    ossImgConfig?: OSSImgConfig;
    errMessage?: React.ReactNode | string | false;
    showFileModel?: boolean;
    showFileNameTip?: boolean;
}
export interface MethodProps {
    setFileParams?: (fileList: YUploadFile[]) => YUploadFile[];
    onChange?: (dataSource: YUploadFile[], changeFileList: YUploadFile[], type: ChangeType) => void;
    uploadFinish?: (res: any) => void;
}
export interface YUploadProps extends OSSProps, RequestProps, CheckProps, PreviewProps, MethodProps, CropperProps, DrayProps {
    uploadType?: UploadType;
    value?: ValueType[] | ValueType;
    originalProps?: UploadProps;
}
export {};
//# sourceMappingURL=upload.interface.d.ts.map