import { DOMConversionMap, DOMConversionOutput, DOMExportOutput, EditorConfig, ElementNode, LexicalEditor, LexicalNode, NodeKey, SerializedElementNode, Spread } from 'lexical';
type SerializedCollapsibleContainerNode = Spread<{
    open: boolean;
}, SerializedElementNode>;
export declare function convertDetailsElement(domNode: HTMLDetailsElement): DOMConversionOutput | null;
/**
 * A Lexical node to represent an HTML details container
 */
export declare class CollapsibleContainerNode extends ElementNode {
    __open: boolean;
    constructor(open: boolean, key?: NodeKey);
    static getType(): string;
    static clone(node: CollapsibleContainerNode): CollapsibleContainerNode;
    createDOM(config: EditorConfig, editor: LexicalEditor): HTMLElement;
    updateDOM(prevNode: CollapsibleContainerNode, dom: HTMLDetailsElement): boolean;
    static importDOM(): DOMConversionMap<HTMLDetailsElement> | null;
    static importJSON(serializedNode: SerializedCollapsibleContainerNode): CollapsibleContainerNode;
    exportDOM(): DOMExportOutput;
    exportJSON(): SerializedCollapsibleContainerNode;
    /**
     * Sets the open state of the details container
     */
    setOpen(open: boolean): void;
    /**
     * Gets the open state of the details container
     */
    getOpen(): boolean;
    /**
     * Toggles the open state of the details container
     */
    toggleOpen(): void;
}
/**
 * Creates a Collapsible Container node with an initial open state
 *
 * @param isOpen The initial open state of the container
 * @returns A Collapsible Container node
 */
export declare function $createCollapsibleContainerNode(isOpen: boolean): CollapsibleContainerNode;
/**
 * A typeguard function to assert on a Collapsible Container node
 *
 * @param node A Lexical node
 * @returns true if the node is a Collapsible Container node, otherwise false
 */
export declare function $isCollapsibleContainerNode(node: LexicalNode | null | undefined): node is CollapsibleContainerNode;
export {};
