/// <reference types="react" />
import { DOMExportOutput, ElementFormatType, LexicalNode, NodeKey, Spread } from 'lexical';
import { DecoratorBlockNode, SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode';
export type ImageNodePayload = {
    src: string;
    caption: string;
};
type SerializedImageNode = Spread<{
    type: 'image';
    version: 1;
} & ImageNodePayload, SerializedDecoratorBlockNode>;
export declare class ImageNode extends DecoratorBlockNode {
    __src: string;
    __caption: string;
    static getType(): string;
    static clone(node: ImageNode): ImageNode;
    constructor(src: string, caption: string, format?: ElementFormatType, key?: NodeKey);
    createDOM(): HTMLElement;
    updateDOM(): false;
    decorate(): JSX.Element;
    static importJSON(serializedNode: SerializedImageNode): ImageNode;
    exportJSON(): SerializedImageNode;
    exportDOM(): DOMExportOutput;
}
export declare function $createImageNode({ src, caption, }: ImageNodePayload): ImageNode;
export declare function $isImageNode(node: LexicalNode | null | undefined): node is ImageNode;
export {};
