/// <reference types="react" />
import { ComponentClass } from 'react';
import { Fragment, Mark, Node, Schema } from '../../prosemirror';
import { Serializer } from '../serializer';
import { TextWrapper } from './nodes';
import ProviderFactory from '../../providerFactory';
import { EventHandlers } from '../../ui/Renderer';
export interface RendererContext {
    objectAri: string;
    containerAri: string;
}
export default class ReactSerializer implements Serializer<JSX.Element> {
    private providers?;
    private eventHandlers?;
    private portal?;
    private rendererContext?;
    constructor(providers?: ProviderFactory, eventHandlers?: EventHandlers, portal?: HTMLElement, objectContext?: RendererContext);
    serializeFragment(fragment: Fragment, props?: any, target?: ComponentClass<any>, key?: string): JSX.Element | null;
    private serializeTextWrapper(content);
    private serializeMark(mark, index?);
    private renderNode(Node, props, key, content);
    private renderMark(Mark, props, key, content);
    private getProps(node);
    private getMarkProps(mark);
    static getChildNodes(fragment: Fragment): (Node | TextWrapper)[];
    static getMarks(node: Node): Mark[];
    static buildMarkStructure(content: Node[]): Mark[];
    static fromSchema(schema: Schema<any, any>, providers?: ProviderFactory, eventHandlers?: EventHandlers): ReactSerializer;
}
