declare type Headers = { [key: string]: any; }; declare type RequestOptions = { method: string; url: string; headers?: Headers; body: Document | BodyInit | null | undefined; }; declare type BeforeRequestProps = { xhr: XMLHttpRequest; files: FileList; }; declare type BeforeRequest = (props: BeforeRequestProps) => Promise | RequestOptions | undefined; declare type UploadProps = { files: FileList; }; declare type UseUploadState = { loading: boolean; done: boolean; data?: Response; error?: ProgressEvent; xhr?: XMLHttpRequest; responseHeaders?: Headers; progress?: number; }; declare type UseUploadResults = [ (props: UploadProps) => void, UseUploadState ]; export declare const useUpload: (beforeRequest: BeforeRequest) => UseUploadResults; export {};