import { ElementNode, DOMConversionMap, EditorConfig, LexicalNode, NodeKey, SerializedElementNode, Spread } from 'lexical'; export type SerializedCourseCatalogueNode = Spread<{ linkType: 'course' | 'programme'; code: string; label: string; }, SerializedElementNode>; export declare class CourseCatalogueNode extends ElementNode { __linkType: 'course' | 'programme'; __code: string; __label: string; constructor(linkType: 'course' | 'programme', code: string, label: string, key?: NodeKey); isInline(): boolean; canBeEmpty(): boolean; canInsertTextBefore(): boolean; canInsertTextAfter(): boolean; static clone(node: CourseCatalogueNode): CourseCatalogueNode; static getType(): string; createDOM(config: EditorConfig): HTMLElement; updateDOM(): false; static importDOM(): DOMConversionMap | null; static importJSON(serializedNode: SerializedCourseCatalogueNode): CourseCatalogueNode; exportJSON(): SerializedCourseCatalogueNode; } export declare function $createCourseCatalogueNode(linkType: 'course' | 'programme', code: string, label?: string): CourseCatalogueNode; export declare function $isCourseCatalogueNode(node: LexicalNode): node is CourseCatalogueNode; export declare function $getLinkTypeFromNode(node: LexicalNode): 'course' | 'programme' | null; export declare const INSERT_COURSE_CATALOGUE_LINK: import('lexical').LexicalCommand; export declare const REMOVE_COURSE_CATALOGUE_LINK: import('lexical').LexicalCommand; export declare function CourseCatalogueLinkPlugin(): null;