import { DOMConversionMap, DOMExportOutput, EditorConfig, ElementFormatType, LexicalEditor, LexicalNode, NodeKey, SerializedLexicalNode, Spread, DecoratorNode } from 'lexical';
import { AlignmentType, VideoPlatform } from './types';
export type SerializedVideoNode = Spread<{
    platform: VideoPlatform;
    videoID: string;
    url?: string;
    posterUrl?: string;
    chaptersDisabled?: boolean;
    width: number | string | 'inherit';
    height: number | string | 'inherit';
    create?: boolean;
    alignment?: AlignmentType;
    format?: ElementFormatType | null;
}, SerializedLexicalNode>;
export declare class VideoNode extends DecoratorNode<JSX.Element> {
    __platform: VideoPlatform;
    __id: string;
    __url: string;
    __posterUrl: string;
    __chaptersDisabled: boolean;
    __create: boolean;
    __width: 'inherit' | number | string;
    __height: 'inherit' | number | string;
    __alignment: AlignmentType;
    __format: ElementFormatType | null;
    constructor(platform: VideoPlatform, id: string, format?: ElementFormatType | null, width?: 'inherit' | number | string, height?: 'inherit' | number | string, key?: NodeKey, alignment?: AlignmentType, create?: boolean);
    static getType(): string;
    static clone(node: VideoNode): VideoNode;
    static importJSON(serializedNode: SerializedVideoNode): VideoNode;
    exportJSON(): SerializedVideoNode;
    static importDOM(): DOMConversionMap | null;
    isInline(): boolean;
    createDOM(): HTMLElement;
    updateDOM(prevNode: VideoNode, dom: HTMLElement): boolean;
    exportDOM(): DOMExportOutput;
    decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element;
    setPlatform(platform: VideoPlatform): void;
    setFormat(format: ElementFormatType): void;
    setId(id: string): void;
    setUrl(url: string): void;
    setPosterUrl(url: string): void;
    setChaptersDisabled(value: boolean): void;
    setCreated(value: boolean): void;
    getId(): string;
    getUrl(): string;
    getPosterUrl(): string;
    getChaptersDisabled(): boolean;
    getFormat(): ElementFormatType | null;
    setAlignment(alignment: AlignmentType): void;
    getTextContent(): string;
    setWidthAndHeight(width: 'inherit' | number | string, height: 'inherit' | number | string): void;
}
export declare function $createVideoNode(url: string, width: number | string | 'inherit', height: number | string | 'inherit', alignment?: AlignmentType, create?: boolean): VideoNode;
export declare function $isVideoNode(node: VideoNode | LexicalNode | null | undefined): node is VideoNode;
//# sourceMappingURL=node.d.ts.map