import { MaybeRef, MaybeRefOrGetter, Ref } from 'vue';
export interface UseDropzoneReturn {
    files: Ref<File[] | null>;
    isOverDropZone: Ref<boolean>;
    isOverError: Ref<boolean>;
}
export interface UseDropzoneOptions {
    /**
     * Allowed data types, if not set, all data types are allowed.
     * Also can be a function to check the data types.
     */
    dataTypes?: MaybeRef<string[]> | ((types: readonly string[]) => boolean);
    onDrop?: (files: File[] | null, event: DragEvent) => unknown;
    onEnter?: (files: File[] | null, event: DragEvent) => unknown;
    onLeave?: (files: File[] | null, event: DragEvent) => unknown;
    onOver?: (files: File[] | null, event: DragEvent) => unknown;
    onError?: (files: File[] | null, event: DragEvent) => unknown;
    /**
     * Allow multiple files to be dropped. Defaults to true.
     */
    multiple?: boolean;
    /**
     * Prevent default behavior for unhandled events. Defaults to false.
     */
    preventDefaultForUnhandled?: boolean;
}
export declare function useDropzone(target: MaybeRefOrGetter<HTMLElement | null | undefined>, options?: UseDropzoneOptions | UseDropzoneOptions['onDrop']): UseDropzoneReturn;
