import type { DOMConversionMap, DOMExportOutput, EditorConfig, LexicalEditor, LexicalNode, NodeKey, SerializedLexicalNode, Spread } from 'lexical';
import type { JsonObject } from 'payload';
import type React from 'react';
import type { JSX } from 'react';
import { DecoratorNode } from 'lexical';
export type InlineBlockFields<TInlineBlockFields extends JsonObject = JsonObject> = {
    blockType: string;
    id: string;
} & TInlineBlockFields;
export type SerializedInlineBlockNode<TBlockFields extends JsonObject = JsonObject> = Spread<{
    children?: never;
    fields: InlineBlockFields<TBlockFields>;
    type: 'inlineBlock';
}, SerializedLexicalNode>;
export declare class ServerInlineBlockNode extends DecoratorNode<null | React.ReactElement> {
    __fields: InlineBlockFields;
    constructor({ fields, key }: {
        fields: InlineBlockFields;
        key?: NodeKey;
    });
    static clone(node: ServerInlineBlockNode): ServerInlineBlockNode;
    static getType(): string;
    static importDOM(): DOMConversionMap<HTMLDivElement> | null;
    static importJSON(serializedNode: SerializedInlineBlockNode): ServerInlineBlockNode;
    static isInline(): false;
    canIndent(): boolean;
    createDOM(): HTMLSpanElement;
    decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element | null;
    exportDOM(): DOMExportOutput;
    exportJSON(): SerializedInlineBlockNode;
    getFields(): InlineBlockFields;
    getTextContent(): string;
    isInline(): boolean;
    setFields(fields: InlineBlockFields): void;
    updateDOM(): boolean;
}
export declare function $createServerInlineBlockNode(fields: Exclude<InlineBlockFields, 'id'>): ServerInlineBlockNode;
export declare function $isServerInlineBlockNode(node: LexicalNode | null | ServerInlineBlockNode | undefined): node is ServerInlineBlockNode;
//# sourceMappingURL=InlineBlocksNode.d.ts.map