import { type ReactNode } from "react";
import { FileValidationErrorCode } from "../types.js";
/**
 * @internal
 */
export interface IFileDropzoneProps {
    /**
     * Specifies the types of files that are accepted.
     * This should be a string containing a comma-separated list of file types or MIME types.
     * MIME types are strongly encouraged since they can be validated on dragover.
     *
     * If undefined, all file types are accepted.
     */
    acceptedFileTypes?: string;
    multiple?: boolean;
    disabled?: boolean;
    ariaLabel?: string;
    idleLabel: ReactNode;
    activeLabel?: ReactNode;
    /**
     * Content shown when the user drags an invalid file over the dropzone.
     * Pass a function to customize the message based on the specific error.
     */
    invalidLabel?: ReactNode | ((errorCode: FileValidationErrorCode | undefined) => ReactNode);
    /**
     * Extra props forwarded to the hidden `<input type="file">` element.
     * Use for E2E test selectors (e.g. `className`, `data-testid`).
     */
    inputProps?: {
        className?: string;
        testId?: string;
    };
    onFilesSelected: (files: File[]) => void;
}
/**
 * @internal
 */
export interface IFileDropzoneHandle {
    open: () => void;
}
/**
 * @internal
 */
export declare const FileDropzone: import("react").ForwardRefExoticComponent<IFileDropzoneProps & import("react").RefAttributes<IFileDropzoneHandle>>;
//# sourceMappingURL=FileDropzone.d.ts.map