import React 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, ExtensionProvider, ReferenceEntity } from '../extensions';
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;
    extensionProvider?: Promise<ExtensionProvider>;
    getPos: ProsemirrorGetPosHandler;
    handleContentDOMRef: (node: HTMLElement | null) => void;
    isLivePageViewMode?: boolean;
    macroInteractionDesignFeatureFlags?: MacroInteractionDesignFeatureFlags;
    node: PMNode;
    pluginInjectionApi: ExtensionsPluginInjectionAPI;
    references?: ReferenceEntity[];
    rendererExtensionHandlers?: ExtensionHandlers;
    setShowBodiedExtensionRendererView?: (showBodiedExtensionRendererView: boolean) => void;
    showBodiedExtensionRendererView?: boolean;
    showLivePagesBodiedMacrosRendererView?: (node: ADFEntity) => boolean;
    showUpdatedLivePages1PBodiedExtensionUI?: (node: ADFEntity) => boolean;
}
export interface State {
    _privateProps?: {
        __allowBodiedOverride?: boolean;
        __hideFrame?: boolean;
    };
    activeChildIndex?: number;
    extensionHandlersFromProvider?: ExtensionHandlers;
    extensionProvider?: ExtensionProvider;
    isNodeHovered?: boolean;
    showBodiedExtensionRendererView?: boolean;
}
export declare const ExtensionComponent: (props: Props) => React.JSX.Element;
