import type { Dispatch, EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
import type { GetPMNodeHeight } from '@atlaskit/editor-common/extensibility';
import type { ExtensionHandlers, ExtensionProvider } from '@atlaskit/editor-common/extensions';
import type { PortalProviderAPI } from '@atlaskit/editor-common/portal';
import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
import type { EditorAppearance, ExtractInjectionAPI, FeatureFlags } from '@atlaskit/editor-common/types';
import type { ApplyChangeHandler } from '@atlaskit/editor-plugin-context-panel';
import type { EditorState } from '@atlaskit/editor-prosemirror/state';
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
import type { ExtensionPlugin, ExtensionPluginOptions, ExtensionState } from '../extensionPluginType';
export declare const createExtensionProviderHandler: (view: EditorView) => (name: string, provider?: Promise<ExtensionProvider>) => Promise<void>;
export declare const handleUpdate: ({ view, prevState, domAtPos, extensionHandlers, applyChange, }: {
    applyChange: ApplyChangeHandler | undefined;
    domAtPos: EditorView["domAtPos"];
    extensionHandlers: ExtensionHandlers;
    prevState: EditorState;
    view: EditorView;
}) => true | undefined;
export declare const createPlugin: (dispatch: Dispatch, providerFactory: ProviderFactory, extensionHandlers: ExtensionHandlers, portalProviderAPI: PortalProviderAPI, eventDispatcher: EventDispatcher, pluginInjectionApi: ExtractInjectionAPI<ExtensionPlugin> | undefined, useLongPressSelection?: boolean, options?: {
    appearance?: EditorAppearance;
    getExtensionHeight?: GetPMNodeHeight;
}, featureFlags?: FeatureFlags, __rendererExtensionOptions?: ExtensionPluginOptions["__rendererExtensionOptions"]) => SafePlugin<ExtensionState>;
