import React from 'react'; export interface FileError { message: string; } export interface FileRejection { file: File; errors: FileError; } export type FileType = 'image' | 'video' | 'document'; export type AcceptType = 'image/*' | 'video/*' | 'application/*'; export interface UseUploadProps { fileType: FileType; onRequest?: (file: any) => Promise<{ data: { [key: string]: any; }; statusCode: number; }>; validator?: (file: File) => FileError | null; } export type ResultType = { source: string; response: T | unknown; file: File; }; export type UseUploadReturn = { register: { accept: AcceptType; onChange: (event: React.ChangeEvent) => void; id: string; type: FileType; }; fileRejections: [File]; result: ResultType; }; export interface UploadProps extends Omit, React.InputHTMLAttributes { }