/**
 * This Source Code is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * Copyright (c) Infonomic Company Limited
 */
import * as React from 'react';
import type { DOMConversionMap, DOMExportOutput, EditorConfig, LexicalEditor, LexicalNode, NodeKey } from 'lexical';
import { DecoratorNode } from 'lexical';
import type { DocumentRelation } from '../../nodes/document-relation';
import type { InlineImageAttributes, Position, SerializedInlineImageNode } from './node-types';
export declare class InlineImageNode extends DecoratorNode<React.JSX.Element> {
    __relation: DocumentRelation;
    __src: string;
    __position: Position;
    __altText: string | undefined;
    __width: number | string | undefined;
    __height: number | string | undefined;
    __showCaption: boolean;
    __caption: LexicalEditor;
    static getType(): string;
    static clone(node: InlineImageNode): InlineImageNode;
    static importJSON(serializedNode: SerializedInlineImageNode): InlineImageNode;
    static importDOM(): DOMConversionMap | null;
    constructor(relation: DocumentRelation, src: string, position: Position, altText?: string, width?: number | string, height?: number | string, showCaption?: boolean, caption?: LexicalEditor, key?: NodeKey);
    exportDOM(): DOMExportOutput;
    exportJSON(): SerializedInlineImageNode;
    getRelation(): DocumentRelation;
    getSrc(): string;
    getAltText(): string;
    setAltText(altText: string): void;
    setWidthAndHeight(width: number | string, height: number | string): void;
    getShowCaption(): boolean;
    setShowCaption(showCaption: boolean): void;
    getPosition(): Position;
    setPosition(position: Position): void;
    update(payload: InlineImageAttributes): void;
    createDOM(config: EditorConfig): HTMLElement;
    updateDOM(prevNode: InlineImageNode, dom: HTMLElement, config: EditorConfig): boolean;
    decorate(): React.JSX.Element;
}
export declare function $createInlineImageNode({ targetDocumentId, targetCollectionId, targetCollectionPath, document, src, position, altText, height, width, showCaption, caption, key, }: InlineImageAttributes): InlineImageNode;
export declare function $isInlineImageNode(node: LexicalNode | null | undefined): node is InlineImageNode;
