import { Component } from 'react';
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
import type { EventDispatcher } from '../event-dispatcher';
import type { ExtensionHandlers, ReferenceEntity } from '../extensions';
import { ProviderFactory } from '../provider-factory';
import type { ProsemirrorGetPosHandler } from '../react-node-view';
import type { EditorAppearance } from '../types';
import type { ExtensionsPluginInjectionAPI } from './types';
export interface Props {
    editorView: EditorView;
    node: PMNode;
    getPos: ProsemirrorGetPosHandler;
    providerFactory?: ProviderFactory;
    handleContentDOMRef: (node: HTMLElement | null) => void;
    extensionHandlers: ExtensionHandlers;
    references?: ReferenceEntity[];
    editorAppearance?: EditorAppearance;
    pluginInjectionApi: ExtensionsPluginInjectionAPI;
    eventDispatcher?: EventDispatcher;
    showMacroInteractionDesignUpdates?: boolean;
}
export declare class Extension extends Component<Props, any> {
    static displayName: string;
    private providerFactory;
    constructor(props: Props);
    componentWillUnmount(): void;
    private renderWithProvider;
    render(): JSX.Element;
}
