import * as react_jsx_runtime from 'react/jsx-runtime';
import React__default from 'react';
import { VariantProps as VariantPropsInternal } from './variants.js';
import { l as labelStyles } from './label-size-BuYQMot6.js';

declare const uploadZone: (props?: ({
    [x: string]: string | number | undefined;
} & {
    className?: string;
}) | undefined) => {
    root: (slotProps?: {
        className?: string;
    }) => string;
    uploadZoneArea: (slotProps?: {
        className?: string;
    }) => string;
    input: (slotProps?: {
        className?: string;
    }) => string;
    content: (slotProps?: {
        className?: string;
    }) => string;
    icon: (slotProps?: {
        className?: string;
    }) => string;
    text: (slotProps?: {
        className?: string;
    }) => string;
    previewContainer: (slotProps?: {
        className?: string;
    }) => string;
    previewGrid: (slotProps?: {
        className?: string;
    }) => string;
    previewItem: (slotProps?: {
        className?: string;
    }) => string;
    previewImage: (slotProps?: {
        className?: string;
    }) => string;
    previewRemoveButton: (slotProps?: {
        className?: string;
    }) => string;
};
interface UploadZoneProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'onChange' | 'value' | 'placeholder' | 'onDrop'> {
    variant?: VariantPropsInternal<typeof uploadZone>['variant'];
    size?: VariantPropsInternal<typeof uploadZone>['size'];
    disabled?: boolean;
    label?: React__default.ReactNode;
    labelWeight?: keyof typeof labelStyles.weight;
    helperText?: React__default.ReactNode;
    error?: string;
    labelClassName?: string;
    uploadZoneClassName?: string;
    contentClassName?: string;
    helperClassName?: string;
    errorClassName?: string;
    previewClassName?: string;
    className?: string;
    multiple?: boolean;
    accept?: string;
    placeholder?: React__default.ReactNode;
    icon?: React__default.ReactNode;
    value?: FileList | File[] | null;
    onChange?: (files: FileList | null) => void;
    onDrop?: (files: FileList) => void;
    ref?: React__default.Ref<HTMLInputElement>;
    name?: string;
}
declare function UploadZone({ className, variant, size, disabled, label, labelWeight, error, helperText, labelClassName, uploadZoneClassName, contentClassName, helperClassName, errorClassName, previewClassName, multiple, accept, placeholder, icon, value, onChange, onDrop, name, ref, ...inputProps }: UploadZoneProps): react_jsx_runtime.JSX.Element;

export { UploadZone, type UploadZoneProps };
