import * as React from 'react'; import { FormItem, IFormItemProps } from './common/FomItem'; declare type FileType = 'image' | 'pdf' | 'json' | 'mov' | 'mp4'; export declare type BucketType = 'protected' | 'kyc' | 'temporary' | 'admin'; export declare type UploadPurpose = 'sto' | 'announcement' | 'others'; export interface IFile { fileStatus: 'pending-choose-file' | 'file-chosen' | 'file-uploading' | 'file-upload-failed' | 'file-uploaded' | 'virus-infected'; fileValue: string; fileUUID: string; pendingUploadFileSize: number; fileExtension: string; fileName: string; uploadedAtUnix: number; } export interface IFileUploaderProps extends Omit { singleUploadVariant: 'style1' | 'style2'; style2Options: { title?: string; subtitle?: string; }; value: string | undefined | null; oldValue: string | undefined | null; bucketType: BucketType; uploadPurpose?: UploadPurpose; sidOrUidOrAccountId?: string; acceptedFileTypes: FileType[]; noImagePlaceholder: string | React.ReactNode; hideAllCaption: boolean; onFileChanged: (files: Array) => void; onProgressChanged: (progress: number) => void; maximumFiles: number; allowDownloadPdf: boolean; } interface IFileUploaderState { files: Array; isCurrentlyDraggedOver: boolean; selectedFile?: IFile; } export declare class FileUploader extends FormItem { private inputRef; private multiChangeFileInputRef; private changingFileIndex; private fileSize; private uploadProgress; static defaultProps: { singleUploadVariant: string; style2Options: {}; acceptedFileTypes: string[]; hideAllCaption: boolean; noImagePlaceholder: undefined; onFileChanged: () => undefined; onProgressChanged: () => undefined; name: undefined; value: undefined; error: undefined; oldValue: undefined; comparing: boolean; required: boolean; disabled: boolean; onValueChanged: () => undefined; customValidate: () => undefined; innerClass: undefined; maximumFiles: number; allowDownloadPdf: boolean; }; constructor(props: IFileUploaderProps); componentDidMount(): void; componentDidUpdate(prevProps: IFileUploaderProps): void; private processValue; render(): React.JSX.Element; validate(option?: { silentValidation?: boolean | undefined; }): string | undefined; getValue(): string; getSelectedFiles(): IFile[]; setFileFailed(value: string): void; protected valueToDisplayValue(value: string | null | undefined): string; private getSingleFileUploadDesign; private getMultipleFileComponent; private getFileComponent; private getImageContainerContent; private getNoFileChooseComponent; private getStyle2Decorators; private getChooseFileCaption; private getImageActionsDesign; SetBase64Values: (values: string) => void; private onFileChange; private onMultiChangeFile; private getBase64; private clearSelectedFile; private updateInternalFieldsOnFileChanged; private onViewerOverlayClicked; private hideViewerModal; private onDragEnter; private onDragLeave; private onDragOver; private onDrop; private getAcceptedFiles; private triggerUploaderClick; private allowMultiUpload; private isFileExtensionAllowed; upload: (onProgressChanged?: (progress: number) => void) => Promise; private updateUploadStatus; isPendingUpload(): boolean; getUploadProgress(): number; getFileSize(): number; getUploadingFiles(): IFile[]; } export {};