import { Transformer } from '@uidu/editor-common';
import { EditorView } from 'prosemirror-view';
import React, { PureComponent } from 'react';
import { IntlShape } from 'react-intl';
import EditorActions from "./actions/index.js";
import { EventDispatcher } from "./event-dispatcher/index.js";
import type { EditorProps } from "./types/editor-props.js";
export type { AllowedBlockTypes, Command, CommandDispatch, DomAtPos, EditorAppearance, EditorAppearanceComponentProps, EditorConfig, EditorInstance, EditorPlugin, EditorProps, ExtensionConfig, FeedbackInfo, MarkConfig, NodeConfig, NodeViewConfig, PluginsOptions, PMPlugin, PMPluginCreateConfig, PMPluginFactory, PMPluginFactoryParams, ReactComponents, ToolbarUIComponentFactory, ToolbarUiComponentFactoryParams, UIComponentFactory, UiComponentFactoryParams, } from "./types/index.js";
declare type Context = {
    editorActions?: EditorActions;
    intl: IntlShape;
};
export default class Editor extends PureComponent<EditorProps> {
    static contextTypes: {
        editorActions: {};
        intl: React.Context<IntlShape>;
    };
    private editorActions;
    private providerFactory;
    private createAnalyticsEvent?;
    constructor(props: EditorProps, context: Context);
    componentDidMount(): void;
    componentWillUnmount(): void;
    private handleProviders;
    onEditorCreated: (instance: {
        view: EditorView;
        eventDispatcher: EventDispatcher;
        transformer?: Transformer<string>;
    }) => void;
    onEditorDestroyed(): void;
    private registerEditorForActions;
    private unregisterEditorFromActions;
    renderToolbar: ({ view, eventDispatcher, config }: {
        view: any;
        eventDispatcher: any;
        config: any;
    }) => React.JSX.Element;
    renderEditor: ({ view, eventDispatcher, dispatchAnalyticsEvent, config, editor, }: {
        view: any;
        eventDispatcher: any;
        dispatchAnalyticsEvent: any;
        config: any;
        editor: any;
    }) => React.JSX.Element;
    render(): React.JSX.Element;
}
