import type { TdUploadProps, UploadFile, UploadInstanceFunctions } from 'tdesign-vue-next'; export type QdUploadListOssByIdsResult = { url: string; ossId: string; originalName: string; fileSize?: number; contentType?: string; createTime: string; }[]; export type QdUploadDeleteResult = boolean | { success: boolean; message?: string; }; export interface QdUploadProps extends Omit, 'action' | 'theme' | 'value' | 'defaultFiles' | 'defaultValue' | 'modelValue' | 'accept'> { modelValue?: string | string[]; action?: string | ((bucketConfigKey?: string) => string); bucketConfigKey?: string; timeout?: number; convStr?: boolean | string; valueMode?: 'ossId' | 'url'; theme?: TdUploadProps['theme'] | 'btn-file-popup' | 'btn-image-popup'; accept?: string[] | '*'; onlyView?: boolean; showManualButton?: boolean; listOssByIds?: { service: (url: TOP) => Promise; transformParams?: (url: OP) => Promise | TOP; transformRes?: (res: OR) => Promise | QdUploadListOssByIdsResult; }; listOssByUrls?: { service: (url: TUP) => Promise; transformParams?: (url: UP) => Promise | TUP; transformRes?: (res: UR) => Promise | QdUploadListOssByIdsResult; }; del?: { service: (ossId: TDP) => Promise; transformParams?: (ossId: DP) => Promise | TDP; transformRes?: (res: DR) => Promise | QdUploadDeleteResult; }; onValidateSuccess?: (files: F[]) => void; } export interface QdUploadInstanceFunctions extends Omit { uploadFiles: (options?: { files?: F[]; showErrorMessage?: boolean; }) => Promise; clear: () => void; }