import type { CSSProperties, ElementRef, ReactNode, RefObject } from "react";
import { type ButtonProps } from "@mui/material";
import { type UploadZoneProps } from "./UploadZone";
import { UploadListProps } from "./UploadList";
import { type FormItemBaseProps, type FormItemExtraProps } from "../../layout";
import type { IUploadedFile, FieldBaseProps } from "../../types";
import "./styles.scss";
export declare const UploadBase: (props: UploadBaseProps) => import("react/jsx-runtime").JSX.Element;
export interface UploadBaseProps extends UploadZoneProps, FieldBaseProps<IUploadedFile[]>, Omit<FormItemBaseProps, "className" | "style" | "prefixCls">, FormItemExtraProps {
    isImage?: (file: IUploadedFile) => boolean;
    previewFile?: (file: IUploadedFile) => void;
    transformFile?: (file: IUploadedFile) => IUploadedFile;
    uploadButtonProps?: ButtonProps;
    uploadButtonText?: ReactNode;
    disabled?: boolean;
    readOnly?: boolean;
    showUploadList?: boolean;
    maxCount?: number;
    showPreviewIcon?: boolean;
    showRemoveIcon?: boolean;
    previewIcon?: ReactNode;
    downloadIcon?: ReactNode;
    removeIcon?: ReactNode;
    uploadListStyle?: CSSProperties;
    uploadListClassName?: string;
    itemStyle?: CSSProperties;
    itemClassName?: string;
    className?: string;
    uploadRef?: RefObject<UploadRefContent>;
    onRemove?: UploadListProps["onRemove"];
    onPreview?: (file: IUploadedFile, e?: MouseEvent) => void;
}
interface UploadRefContent {
    inputRef?: ElementRef<any>;
    rootRef?: ElementRef<any>;
    open?: () => void;
}
export {};
