import { CSSProperties, ChangeEvent, ComponentPropsWithRef, DragEvent, ReactNode } from 'react'; import { BillboardProps, BillboardIconColor, BillboardImage } from '../Billboard/Billboard'; import { UseMessageProps } from '../shared/types'; type HTMLInputProps = Omit, 'onDrop'>; export type DropEvent = DragEvent | ChangeEvent | DragEvent; export type InputFileProps = HTMLInputProps & UseMessageProps & { onDrop: (acceptedFiles: readonly File[], rejectedFiles: readonly File[], event: DropEvent) => void; onDropAccepted?: (acceptedFiles: readonly File[]) => void; onDropRejected?: (rejectedFiles: readonly File[]) => void; messages?: readonly string[]; accept: string; multiple?: boolean; loading?: Readonly<{ isVisible: boolean; component?: ReactNode; }>; maxSize?: number; dropZoneStyle?: Readonly; billboard?: Readonly<{ title?: BillboardProps['title']; iconName?: BillboardProps['iconName']; message?: BillboardProps['message']; color?: BillboardIconColor; image?: BillboardImage; }>; fileUploadButtonLabel?: string; }; /** * - `InputFile` can be used to replace our current `react-dropzone` dependency with a more accessible and customizable file input. * - It contains a [Billboard](/docs/billboard--docs), whose content you can customize to reflect the state of the file input. * - `id` is required for accessibility. */ export declare const InputFile: import('react').ForwardRefExoticComponent & import('react').RefAttributes>; export default InputFile;