import type { Mark } from "@tiptap/core"; import type { Mark as ProsemirrorMark, Schema } from "@tiptap/pm/model"; import { ExtensionType } from "../../models"; import type { ExtendedRichTextNodeType } from "../../types"; export declare class LinkExtension { readonly name: "hyperlink"; readonly component: Mark; readonly converter: { fromPrismic(schema: Schema): (elmt: LinkElement) => ProsemirrorMark | undefined; toPrismic(elmt: ProsemirrorMark): LinkElementData; }; extType: ExtensionType.Mark; richTextNodeTypes: ExtendedRichTextNodeType[]; constructor(name: "hyperlink", component: Mark, converter: { fromPrismic(schema: Schema): (elmt: LinkElement) => ProsemirrorMark | undefined; toPrismic(elmt: ProsemirrorMark): LinkElementData; }); } export interface LinkElement { type: "hyperlink"; start: number; end: number; data: LinkElementData; } export type LinkElementData = ImageLinkData | FileLinkData | DocumentLinkData | ExternalLinkData; export interface ImageLinkData { __TYPE__: "ImageLink"; id: string; url: string; height: string; width: string; size: string; name: string; kind: "image"; date?: string | null | undefined; } export interface FileLinkData { __TYPE__: "FileLink"; id: string; url: string; name: string; kind: "file"; size: string; date?: string | null | undefined; } interface DocumentLinkData { __TYPE__: "DocumentLink"; id: string; } interface ExternalLinkData { __TYPE__: "ExternalLink"; url: string; kind?: "web"; target?: string | null | undefined; preview?: { title?: string; } | null | undefined; } export {};