import { Extension } from '@tiptap/core';
export interface MediaUploadOptions {
    acceptedTypes: string[];
    maxFileSize: number;
    maxFiles: number;
    uploadHandler: (files: File[]) => Promise<MediaUploadResult[]>;
    onUploadStart?: (files: File[]) => void;
    onUploadProgress?: (progress: number, file: File) => void;
    onUploadComplete?: (results: MediaUploadResult[]) => void;
    onUploadError?: (error: Error, file: File) => void;
    enableDragDrop: boolean;
    enablePasteUpload: boolean;
}
export interface MediaUploadResult {
    id: string;
    url: string;
    filename: string;
    size: number;
    type: string;
    thumbnail?: string;
    metadata?: {
        width?: number;
        height?: number;
        duration?: number;
        alt?: string;
    };
}
declare module '@tiptap/core' {
    interface Commands<ReturnType> {
        mediaUpload: {
            /**
             * Upload files
             */
            uploadFiles: (files: File[]) => ReturnType;
            /**
             * Insert uploaded media
             */
            insertMedia: (media: MediaUploadResult) => ReturnType;
        };
    }
}
export declare const MediaUploadExtension: Extension<MediaUploadOptions, any>;
export default MediaUploadExtension;
//# sourceMappingURL=MediaUploadExtension.d.ts.map