export interface ZuiUploadFileOption {
    /**
     * ex:
     * - office: xlsx, xls, doc, docx, ppt, pptx...
     * - image: png, jpg, jpeg, gif, bmp,...
     * - others: pdf, rar, zip,...
     */
    extensions?: string[];
    /**
     * - ex:
     * ```json
     * maxSize: { Kb: 200, Mb: 1} // 1.200 Kb
     * ```
     */
    maxSize?: {
        byte?: number;
        Kb?: number;
        Mb?: number;
    };
    /**
     * - Apply for upload mutiple file
     * - Max number of file to upload
     */
    max?: number;
    /**
     * @returns true for valid file
     * @returns string is message for invalid file
     */
    validator?: (file?: File) => string | boolean;
    /**
     * Show message error for invalid files
     * @default false
     */
    showError?: boolean;
}
export interface ZuiUploadFilesOption extends ZuiUploadFileOption {
    /**
     * - Apply for upload mutiple file
     * - Max number of file to upload
     */
    max?: number;
}
export interface ZuiUploadInvalid {
    file: File;
    /** Message error for invalid file upload */
    message: string;
}
export interface ZuiUploadFile {
    file: File;
    isValid: boolean;
    message?: string;
}
export interface ZuiUploadFiles {
    valid: File[];
    inValid: ZuiUploadInvalid[];
}
export declare type ZuiUploadFileOutput = ZuiUploadFile | ZuiUploadFiles;
