import React, { Component } from 'react';
import type { ADFEntity } from '@atlaskit/adf-utils/types';
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, MacroInteractionDesignFeatureFlags } from './types';
export interface Props {
    editorAppearance?: EditorAppearance;
    editorView: EditorView;
    eventDispatcher?: EventDispatcher;
    extensionHandlers: ExtensionHandlers;
    extensionLoadingHandlers?: ExtensionHandlers;
    getPos: ProsemirrorGetPosHandler;
    handleContentDOMRef: (node: HTMLElement | null) => void;
    macroInteractionDesignFeatureFlags?: MacroInteractionDesignFeatureFlags;
    node: PMNode;
    pluginInjectionApi: ExtensionsPluginInjectionAPI;
    providerFactory?: ProviderFactory;
    references?: ReferenceEntity[];
    rendererExtensionHandlers?: ExtensionHandlers;
    showLivePagesBodiedMacrosRendererView?: (node: ADFEntity) => boolean;
    showUpdatedLivePages1PBodiedExtensionUI?: (node: ADFEntity) => boolean;
}
export declare class Extension extends Component<Props, any> {
    static displayName: string;
    private providerFactory;
    constructor(props: Props);
    componentWillUnmount(): void;
    private renderWithProvider;
    render(): React.JSX.Element;
}
