import { Node } from '@tiptap/core';
export interface FileAttachmentOptions {
    HTMLAttributes: Record<string, any>;
    allowPreview: boolean;
    allowDownload: boolean;
    maxPreviewSize: number;
    previewableTypes: string[];
    onFileClick?: (fileId: string, action: 'preview' | 'download') => void;
    onFileDelete?: (fileId: string) => void;
    getFileMetadata?: (fileId: string) => Promise<FileMetadata>;
}
export interface FileMetadata {
    id: string;
    name: string;
    size: number;
    type: string;
    url: string;
    downloadUrl?: string;
    previewUrl?: string;
    thumbnail?: string;
    uploadedAt: string;
    uploadedBy: {
        id: string;
        name: string;
        avatar?: string;
    };
    metadata?: {
        pages?: number;
        dimensions?: {
            width: number;
            height: number;
        };
        duration?: number;
        encoding?: string;
    };
}
declare module '@tiptap/core' {
    interface Commands<ReturnType> {
        fileAttachment: {
            /**
             * Insert a file attachment
             */
            insertFileAttachment: (file: FileMetadata) => ReturnType;
            /**
             * Update file metadata
             */
            updateFileMetadata: (fileId: string, metadata: Partial<FileMetadata>) => ReturnType;
            /**
             * Remove file attachment
             */
            removeFileAttachment: (fileId: string) => ReturnType;
        };
    }
}
export declare const FileAttachmentExtension: Node<FileAttachmentOptions, any>;
export default FileAttachmentExtension;
//# sourceMappingURL=FileAttachmentExtension.d.ts.map