import type { Attrs } from "@tiptap/pm/model"; import type { MediaAssetOrExternalImage } from "../../../../core/MediaLibrary/hooks/mediaLibraryData"; import { type FileLinkData, type ImageLinkData, type LinkElementData, LinkExtension } from "./LinkModel"; export interface LinkProtocolOptions { scheme: string; optionalSlashes?: boolean; } export interface LinkOptions { autolink: boolean; protocols: (LinkProtocolOptions | string)[]; openOnClick: boolean; linkOnPaste: boolean; /** These are the values passed into the HTML through the Tiptap extension. */ htmlAttributes: Record; validate?: (url: string) => boolean; } declare module "@tiptap/core" { interface Commands { Link: { setWebLink: (attributes: { href: string; target?: string | null; }) => ReturnType; setDocumentLink: (attributes: { id: string; }) => ReturnType; setMediaLink: (attributes: { media: MediaAssetOrExternalImage; }) => ReturnType; unsetLink: () => ReturnType; }; } } export interface LinkMarkAttributes extends Attrs { href: string; id: string; target: string; media?: string; } export declare const Link: LinkExtension; export declare function stringifyMediaLinkData(media: ImageLinkData | FileLinkData): string; export declare function parseMediaLinkData(media: string): LinkElementData;