import { type AxiosRequestConfig } from 'axios'; import { type MediaCardBaseProps } from '../media-card'; import type { ExtractPropTypes, PropType, SlotsType } from 'vue'; import { type UploadContext } from '../../config/upload'; export type UploadFileStatus = 'unready' | 'ready' | 'loading' | 'success' | 'error'; export interface UploadFile { status: UploadFileStatus; name: string; size: number; type: string; raw: File | null; url: string | File; previewUrl: string; key: string; percent: number; controller: AbortController | null; } export declare const uploadProps: { accept: { type: StringConstructor; default: string; }; limit: { type: NumberConstructor; default: number; }; multiple: { type: BooleanConstructor; }; modelValue: { type: PropType; }; validateEvent: { type: BooleanConstructor; default: boolean; }; single: { type: BooleanConstructor; }; readonly: { type: BooleanConstructor; }; disabled: { type: BooleanConstructor; }; selectOnly: { type: BooleanConstructor; }; size: { type: PropType; default: "large"; }; request: { type: PropType; }; requestConfig: { type: PropType; }; requestExtra: { type: PropType>; }; }; export type UploadProps = ExtractPropTypes; export interface UploadSlots { default: {}; } export declare const uploadSlots: SlotsType; export declare const uploadEmits: { exceed: () => boolean; 'update:modelValue': (value: string | File | (string | File)[]) => string | true | File | (string | File)[]; change: (value: string | File | (string | File)[]) => string | true | File | (string | File)[]; }; export type UploadEmits = typeof uploadEmits; export declare const uploadItemProps: { file: { type: PropType; required: boolean; default: () => {}; }; readonly: { type: BooleanConstructor; }; size: { type: PropType; default: "large"; }; }; export type UploadItemProps = ExtractPropTypes; export declare const uploadItemEmits: { cancel: () => boolean; 're-upload': () => boolean; remove: () => boolean; }; export type UploadItemEmits = typeof uploadItemEmits;