import { Node } from '@tiptap/core';
import { IpfsImageFetchPayload, IpfsImageUploadResponse } from '../../types';

declare module '@tiptap/core' {
    interface Commands<ReturnType> {
        resizableMedia: {
            /**
             * Set media
             */
            setMedia: (options: {
                'media-type': 'img' | 'video';
                src: string;
                alt?: string;
                title?: string;
                width?: string;
                height?: string;
            }) => ReturnType;
        };
    }
}
export interface MediaOptions {
    HTMLAttributes: Record<string, any>;
    onError: (error: string) => void;
    ipfsImageUploadFn: (file: File) => Promise<IpfsImageUploadResponse>;
    ipfsImageFetchFn: (_data: IpfsImageFetchPayload) => Promise<{
        url: string;
        file: File;
    }>;
    fetchV1ImageFn: (url: string) => Promise<ArrayBuffer | undefined>;
}
export declare const IMAGE_INPUT_REGEX: RegExp;
export declare const VIDEO_INPUT_REGEX: RegExp;
export declare const ResizableMedia: Node<MediaOptions, any>;
