import type { Ref, RenderFunction, SetupContext } from 'vue' import type { UploadFile, UploadProps as ElUploadProps, UploadRawFile, UploadStatus } from 'element-plus' import type { UploadProps } from '../base' import type { ComponentBaseOptions, ComponentSlotType, DefineComponentApp, DefineComponentInstance, Merge, } from '../common' export declare const KUpload: DefineComponentApp export type KUploadInstance = DefineComponentInstance export interface KUploadConstructor extends ComponentBaseOptions, KUploadMethods { props: KUploadProps context: SetupContext getRefMaps(): KUploadPrivateRef getComputeMaps(): KUploadPrivateComputed renderVN: RenderFunction } export interface KUploadPrivateRef { refElem: Ref } export interface KUploadPrivateComputed { } export type KUploadProps = Merge export interface KUploadEmits { } export interface KUploadSlots { default: () => ComponentSlotType trigger: () => ComponentSlotType file: (_: { file: UploadFile; index: number }) => ComponentSlotType tip: () => ComponentSlotType } export type KUploadMethods = { abort: (file: UploadFile) => void submit: () => void clearFiles: (status?: UploadStatus[]) => void handleStart: (rawFile: UploadRawFile) => void handleRemove: (file: UploadFile | UploadRawFile, rawFile?: UploadRawFile) => void }