interface MediaFile {
    id: string;
    fileName: string;
    originalName: string;
    mimeType: string;
    size: number;
    url: string;
    cdnUrl?: string;
    thumbnailUrl?: string;
    createdAt: string;
    tags: string[];
    description?: string;
    dimensions?: {
        width: number;
        height: number;
    };
}
interface UseEditorMediaDropProps {
    onMediaInsert: (html: string, media: MediaFile) => void;
    onUploadStart?: () => void;
    onUploadProgress?: (progress: number) => void;
    onUploadComplete?: (media: MediaFile) => void;
    onUploadError?: (error: string) => void;
    acceptedTypes?: string[];
    maxFileSize?: number;
}
export declare function useEditorMediaDrop({ onMediaInsert, onUploadStart, onUploadProgress, onUploadComplete, onUploadError, acceptedTypes, maxFileSize, }: UseEditorMediaDropProps): {
    dragHandlers: {
        onDragEnter: (e: React.DragEvent) => void;
        onDragOver: (e: React.DragEvent) => void;
        onDragLeave: (e: React.DragEvent) => void;
        onDrop: (e: React.DragEvent) => Promise<void>;
    };
    uploadFile: (file: File) => Promise<MediaFile | null>;
    insertMedia: (media: MediaFile | MediaFile[]) => void;
    replaceMedia: (oldMediaId: string, newMedia: MediaFile) => void;
    generateMediaHtml: (media: MediaFile) => string;
    validateFile: (file: File) => string | null;
};
export {};
//# sourceMappingURL=useEditorMediaDrop.d.ts.map