import {
  type UploadFileItem,
  type UploadErrorEvent,
  type UploadChangeEvent,
  type UploadSuccessEvent,
  type UploadProgressEvent,
  type UploadOversizeEvent,
  type UploadRemoveEvent,
  type UploadMethod,
} from './types'
declare const _default: __VLS_WithTemplateSlots<
  import('vue').DefineComponent<
    {
      fileList: {
        type: import('vue').PropType<import('./types').UploadFile[]>
        default: () => never[]
      }
      action: {
        type: import('vue').PropType<string>
        default: string
      }
      header: {
        type: import('vue').PropType<Record<string, any>>
        default: () => void
      }
      multiple: {
        type: BooleanConstructor
        default: boolean
      }
      disabled: {
        type: BooleanConstructor
        default: boolean
      }
      limit: NumberConstructor
      showLimitNum: {
        type: BooleanConstructor
        default: boolean
      }
      maxSize: {
        type: NumberConstructor
        default: number
      }
      sourceType: {
        type: import('vue').PropType<import('./types').UploadSourceType[]>
        default: () => string[]
      }
      sizeType: {
        type: import('vue').PropType<import('./types').UploadSizeType[]>
        default: () => string[]
      }
      name: {
        type: import('vue').PropType<string>
        default: string
      }
      formData: {
        type: import('vue').PropType<import('./types').UploadFormData>
        default: () => void
      }
      onPreviewFail: import('vue').PropType<import('./types').UploadOnPreviewFail>
      beforeUpload: import('vue').PropType<import('./types').UploadBeforeUpload>
      beforeChoose: import('vue').PropType<import('./types').UploadBeforeChoose>
      beforeRemove: import('vue').PropType<import('./types').UploadBeforeRemove>
      beforePreview: import('vue').PropType<import('./types').UploadBeforePreview>
      buildFormData: import('vue').PropType<import('./types').UploadBuildFormData>
      loadingType: {
        type: import('vue').PropType<import('../wd-loading/types').LoadingType>
        default: import('../wd-loading/types').LoadingType
      }
      loadingColor: {
        type: import('vue').PropType<string>
        default: string
      }
      accept: {
        type: import('vue').PropType<import('./types').UploadFileType>
        default: import('./types').UploadFileType
      }
      statusKey: {
        type: import('vue').PropType<string>
        default: string
      }
      loadingSize: {
        type: import('vue').PropType<string>
        default: string
      }
      compressed: {
        type: BooleanConstructor
        default: boolean
      }
      maxDuration: {
        type: NumberConstructor
        default: number
      }
      camera: {
        type: import('vue').PropType<import('./types').UploadCameraType>
        default: import('./types').UploadCameraType
      }
      imageMode: {
        type: import('vue').PropType<import('../wd-img/types').ImageMode>
        default: import('../wd-img/types').ImageMode
      }
      successStatus: {
        type: NumberConstructor
        default: number
      }
      customEvokeClass: {
        type: import('vue').PropType<string>
        default: string
      }
      customPreviewClass: {
        type: import('vue').PropType<string>
        default: string
      }
      autoUpload: {
        type: BooleanConstructor
        default: boolean
      }
      uploadMethod: import('vue').PropType<UploadMethod>
      customStyle: {
        type: import('vue').PropType<string>
        default: string
      }
      customClass: {
        type: import('vue').PropType<string>
        default: string
      }
    },
    {
      submit: () => void
    },
    unknown,
    {},
    {},
    import('vue').ComponentOptionsMixin,
    import('vue').ComponentOptionsMixin,
    {
      fail: (value: UploadErrorEvent) => void
      change: (value: UploadChangeEvent) => void
      success: (value: UploadSuccessEvent) => void
      progress: (value: UploadProgressEvent) => void
      oversize: (value: UploadOversizeEvent) => void
      chooseerror: (value: any) => void
      remove: (value: UploadRemoveEvent) => void
      'update:fileList': (value: UploadFileItem[]) => void
    },
    string,
    import('vue').PublicProps,
    Readonly<
      import('vue').ExtractPropTypes<{
        fileList: {
          type: import('vue').PropType<import('./types').UploadFile[]>
          default: () => never[]
        }
        action: {
          type: import('vue').PropType<string>
          default: string
        }
        header: {
          type: import('vue').PropType<Record<string, any>>
          default: () => void
        }
        multiple: {
          type: BooleanConstructor
          default: boolean
        }
        disabled: {
          type: BooleanConstructor
          default: boolean
        }
        limit: NumberConstructor
        showLimitNum: {
          type: BooleanConstructor
          default: boolean
        }
        maxSize: {
          type: NumberConstructor
          default: number
        }
        sourceType: {
          type: import('vue').PropType<import('./types').UploadSourceType[]>
          default: () => string[]
        }
        sizeType: {
          type: import('vue').PropType<import('./types').UploadSizeType[]>
          default: () => string[]
        }
        name: {
          type: import('vue').PropType<string>
          default: string
        }
        formData: {
          type: import('vue').PropType<import('./types').UploadFormData>
          default: () => void
        }
        onPreviewFail: import('vue').PropType<import('./types').UploadOnPreviewFail>
        beforeUpload: import('vue').PropType<import('./types').UploadBeforeUpload>
        beforeChoose: import('vue').PropType<import('./types').UploadBeforeChoose>
        beforeRemove: import('vue').PropType<import('./types').UploadBeforeRemove>
        beforePreview: import('vue').PropType<import('./types').UploadBeforePreview>
        buildFormData: import('vue').PropType<import('./types').UploadBuildFormData>
        loadingType: {
          type: import('vue').PropType<import('../wd-loading/types').LoadingType>
          default: import('../wd-loading/types').LoadingType
        }
        loadingColor: {
          type: import('vue').PropType<string>
          default: string
        }
        accept: {
          type: import('vue').PropType<import('./types').UploadFileType>
          default: import('./types').UploadFileType
        }
        statusKey: {
          type: import('vue').PropType<string>
          default: string
        }
        loadingSize: {
          type: import('vue').PropType<string>
          default: string
        }
        compressed: {
          type: BooleanConstructor
          default: boolean
        }
        maxDuration: {
          type: NumberConstructor
          default: number
        }
        camera: {
          type: import('vue').PropType<import('./types').UploadCameraType>
          default: import('./types').UploadCameraType
        }
        imageMode: {
          type: import('vue').PropType<import('../wd-img/types').ImageMode>
          default: import('../wd-img/types').ImageMode
        }
        successStatus: {
          type: NumberConstructor
          default: number
        }
        customEvokeClass: {
          type: import('vue').PropType<string>
          default: string
        }
        customPreviewClass: {
          type: import('vue').PropType<string>
          default: string
        }
        autoUpload: {
          type: BooleanConstructor
          default: boolean
        }
        uploadMethod: import('vue').PropType<UploadMethod>
        customStyle: {
          type: import('vue').PropType<string>
          default: string
        }
        customClass: {
          type: import('vue').PropType<string>
          default: string
        }
      }>
    > & {
      onChange?: ((value: UploadChangeEvent) => any) | undefined
      onProgress?: ((value: UploadProgressEvent) => any) | undefined
      onSuccess?: ((value: UploadSuccessEvent) => any) | undefined
      onFail?: ((value: UploadErrorEvent) => any) | undefined
      onOversize?: ((value: UploadOversizeEvent) => any) | undefined
      onChooseerror?: ((value: any) => any) | undefined
      onRemove?: ((value: UploadRemoveEvent) => any) | undefined
      'onUpdate:fileList'?: ((value: UploadFileItem[]) => any) | undefined
    },
    {
      customStyle: string
      customClass: string
      name: string
      action: string
      header: Record<string, any>
      disabled: boolean
      loadingColor: string
      loadingType: import('../wd-loading/types').LoadingType
      loadingSize: string
      imageMode: import('../wd-img/types').ImageMode
      compressed: boolean
      camera: import('./types').UploadCameraType
      fileList: import('./types').UploadFile[]
      multiple: boolean
      showLimitNum: boolean
      maxSize: number
      sourceType: import('./types').UploadSourceType[]
      sizeType: import('./types').UploadSizeType[]
      formData: import('./types').UploadFormData
      accept: import('./types').UploadFileType
      statusKey: string
      maxDuration: number
      successStatus: number
      customEvokeClass: string
      customPreviewClass: string
      autoUpload: boolean
    },
    {}
  >,
  {
    default?(_: {}): any
  }
>
export default _default
type __VLS_WithTemplateSlots<T, S> = T & {
  new (): {
    $slots: S
  }
}
