import { Descendant, Element as SlateElement } from 'slate';
import { HtmlDeserializerPlugin } from './HtmlDeserializerPlugin';
import { EditorDefaultElementFactory } from '../EditorWithEssentials';
export interface TextAttrs {
    [key: string]: any;
}
export type NodesWithTypeFiltered = {
    texts: Descendant[];
    elements?: undefined;
} | {
    elements: SlateElement[];
    texts?: undefined;
};
export type NodesWithType = NodesWithTypeFiltered | null;
export declare class HtmlDeserializer {
    createDefaultElement: EditorDefaultElementFactory;
    private plugins;
    constructor(createDefaultElement: EditorDefaultElementFactory, plugins: HtmlDeserializerPlugin[]);
    registerPlugin(plugin: HtmlDeserializerPlugin, prepend?: boolean): void;
    processNodeListPaste(nodeList: Node[], cumulativeTextAttrs: TextAttrs): {
        texts: Descendant[];
        elements?: undefined;
    } | {
        elements: import("../..").EditorElement[];
        texts?: undefined;
    } | null;
    deserializeInline(list: NodeList | Node[], cumulativeTextAttrs: TextAttrs): Descendant[];
    deserializeBlocks(list: Node[], cumulativeTextAttrs: TextAttrs): Descendant[];
    private deserializeTextNode;
    private processInlinePaste;
    private processWithAttributeProcessor;
    private processBlockPaste;
}
//# sourceMappingURL=HtmlDeserializer.d.ts.map