import { DragEventHandler, MutableRefObject, ReactNode } from "react";
interface FileUploadInputProps {
    onUpload: (files: File[]) => unknown;
    children: ReactNode | ReactNode[];
}
export declare function FileUploadInput({ children, onUpload }: FileUploadInputProps): import("react/jsx-runtime").JSX.Element;
interface DropZoneProps {
    onUpload: (files: File[]) => unknown;
    children: ReactNode | ReactNode[];
    height?: string;
    border?: string;
    borderActiveColor?: string;
}
export declare function DropZone({ onUpload }: DropZoneProps): import("react/jsx-runtime").JSX.Element;
export interface IDropZoneOpts {
    onUpload: (files: File[]) => unknown;
    dragOverClass?: string;
    dropEffect?: "none" | "copy" | "link" | "move";
}
export interface IDropZoneProps<T> {
    onDrop: DragEventHandler<T>;
    onDragOver: DragEventHandler<T>;
    onDragEnter: DragEventHandler<T>;
    onDragLeave: DragEventHandler<T>;
    ref: MutableRefObject<T | null>;
}
export declare function useDropZone<T extends HTMLElement = HTMLDivElement>({ onUpload, dragOverClass, dropEffect, }: IDropZoneOpts): IDropZoneProps<T>;
export {};
//# sourceMappingURL=FileUpload.d.ts.map