import type { VariantType } from './VariantType';
interface IUploadBaseButtonProps {
    /**
     * Button component factory
     */
    buttonFactory: (onClick: () => void) => JSX.Element;
    /**
     * Whether the upload support one or more files
     */
    multiple?: boolean;
    /**
     * Upload callback
     */
    upload: (file: File) => Promise<unknown>;
}
export interface IUploadIconButtonProps extends Omit<IUploadBaseButtonProps, 'buttonFactory'> {
    /**
     * Button aria-label
     */
    label: string;
}
export declare function UploadIconButton(props: IUploadIconButtonProps): JSX.Element;
export interface IUploadButtonProps extends Omit<IUploadBaseButtonProps, 'buttonFactory'> {
    /**
     * Button aria-label
     */
    label: string;
    /**
     * Button variant
     */
    variant?: VariantType;
}
export declare function UploadButton({ label, variant, ...others }: IUploadButtonProps): JSX.Element;
export default UploadButton;
