import { UploadFile, UploadProps } from 'element-plus';
import { CSSProperties } from 'vue';
export interface DropUploaderProps {
    className?: string;
    getDropContainer?: (() => HTMLElement | null) | null;
    disabled?: boolean;
}
export interface SilentUploaderProps extends Partial<UploadProps> {
    upload?: Partial<UploadProps>;
    rootClassName?: string;
}
export interface PlaceholderUploaderProps {
    disabled?: boolean;
    className?: string;
    style?: CSSProperties;
    upload?: Partial<UploadProps>;
}
export type Attachment = {
    description?: string;
    status?: UploadFile["status"];
    uid?: number | string;
    [key: string]: any;
} & Partial<UploadProps["fileList"][number]>;
type SemanticType = "item" | "list" | "placeholder";
export interface AttachmentProps {
    direction?: "ltr" | "rtl";
    uploadProps?: SilentUploaderProps;
    items?: Attachment[];
    rootClassName?: string;
    getDropContainer?: () => HTMLElement | null;
    className?: string;
    classNames?: Partial<Record<SemanticType, string>>;
    styles?: Partial<Record<SemanticType, CSSProperties>>;
    rootStyle?: CSSProperties;
    onChange?: (files: {
        file: Attachment;
        fileList: Attachment[];
    }) => void;
    disabled?: boolean;
    overflow?: "scrollX" | "scrollY" | "wrap";
}
export {};
