import type {
  ChooseFile,
  ChooseFileOption,
  UploadFileItem,
  UploadMethod,
  UploadStatusType,
} from '../wd-upload/types'
export declare const UPLOAD_STATUS: Record<string, UploadStatusType>
export interface UseUploadReturn {
  startUpload: (
    file: UploadFileItem,
    options: UseUploadOptions,
  ) => UniApp.UploadTask | void | Promise<void>
  abort: (task?: UniApp.UploadTask) => void
  UPLOAD_STATUS: Record<string, UploadStatusType>
  chooseFile: (options: ChooseFileOption) => Promise<ChooseFile[]>
}
export interface UseUploadOptions {
  action: string
  header?: Record<string, any>
  name?: string
  formData?: Record<string, any>
  fileType?: 'image' | 'video' | 'audio'
  statusCode?: number
  statusKey?: string
  uploadMethod?: UploadMethod
  onSuccess?: (
    res: UniApp.UploadFileSuccessCallbackResult,
    file: UploadFileItem,
    formData: Record<string, any>,
  ) => void
  onError?: (
    res: UniApp.GeneralCallbackResult,
    file: UploadFileItem,
    formData: Record<string, any>,
  ) => void
  onProgress?: (res: UniApp.OnProgressUpdateResult, file: UploadFileItem) => void
  abortPrevious?: boolean
  extension?: string[]
}
export declare function useUpload(): UseUploadReturn
