/**
 * dragDrop.ts — External drag & drop support for editors.
 *
 * Handles file/image drops from the OS or other applications
 * into the editor canvas area.
 */
import React from "react";
export interface DropResult {
    files: File[];
    images: ImageData[];
    text?: string;
    urls: string[];
}
export interface DragDropConfig {
    /** Accepted MIME types. Defaults to image/*. */
    accept?: string[];
    /** Maximum number of files. Default: 10. */
    maxFiles?: number;
    /** Maximum file size in bytes. Default: 50MB. */
    maxSize?: number;
    /** Called when valid files are dropped. */
    onDrop?: (result: DropResult) => void;
    /** Called when drag enters the zone. */
    onDragEnter?: () => void;
    /** Called when drag leaves the zone. */
    onDragLeave?: () => void;
    /** Called if a drop fails validation. */
    onError?: (message: string) => void;
}
export interface DragDropState {
    isDragging: boolean;
    dragProps: {
        onDragEnter: (e: React.DragEvent) => void;
        onDragOver: (e: React.DragEvent) => void;
        onDragLeave: (e: React.DragEvent) => void;
        onDrop: (e: React.DragEvent) => void;
    };
}
/** React hook for handling external file/image drag & drop. */
export declare function useDragDrop(config: DragDropConfig): DragDropState;
export interface DropZoneOverlayProps {
    isDragging: boolean;
    message?: string;
}
/** Visual overlay shown when dragging files over the editor. */
export declare const DropZoneOverlay: React.FC<DropZoneOverlayProps>;
