import React from 'react';
import type UIAnalyticsEvent from '@atlaskit/analytics-next/UIAnalyticsEvent';
import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics/api';
import type { HyperlinkAddToolbarProps } from '@atlaskit/editor-common/link/HyperlinkAddToolbar';
import type ProviderFactory from '@atlaskit/editor-common/provider-factory/provider-factory';
import type { Command } from '@atlaskit/editor-common/types/command';
import type { FloatingToolbarConfig, FloatingToolbarItem } from '@atlaskit/editor-common/types/floating-toolbar';
import type { LinkInputType, LinkPickerOptions } from '@atlaskit/editor-common/types/hyperlink';
import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types/next-editor-plugin';
import type { ForceFocusSelector } from '@atlaskit/editor-plugin-floating-toolbar/floatingToolbarPluginType';
import type { Node } from '@atlaskit/editor-prosemirror/model';
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
import type { cardPlugin } from '../cardPlugin';
export type EditLinkToolbarProps = {
    forceFocusSelector: ForceFocusSelector | undefined;
    linkPickerOptions?: LinkPickerOptions;
    lpLinkPicker: boolean;
    node: Node;
    onSubmit?: (href: string, text?: string, inputMethod?: LinkInputType, analytic?: UIAnalyticsEvent | null | undefined) => void;
    providerFactory: ProviderFactory;
    text: string;
    url: string | undefined;
    view: EditorView;
};
export declare function HyperlinkAddToolbarWithState({ linkPickerOptions, onSubmit, displayText, displayUrl, providerFactory, view, onCancel, invokeMethod, lpLinkPicker, onClose, onEscapeCallback, onClickAwayCallback, }: HyperlinkAddToolbarProps): React.JSX.Element;
export declare class EditLinkToolbar extends React.Component<EditLinkToolbarProps> {
    componentDidUpdate(prevProps: EditLinkToolbarProps): void;
    componentWillUnmount(): void;
    private hideLinkToolbar;
    render(): React.JSX.Element;
}
export declare const getEditLinkCallback: (editorAnalyticsApi: EditorAnalyticsAPI | undefined, scrollIntoView: boolean) => Command;
export declare const buildEditLinkToolbar: ({ providerFactory, node, pluginInjectionApi, linkPicker, lpLinkPicker, }: {
    linkPicker?: LinkPickerOptions;
    lpLinkPicker: boolean;
    node: Node;
    pluginInjectionApi: ExtractInjectionAPI<typeof cardPlugin> | undefined;
    providerFactory: ProviderFactory;
}) => FloatingToolbarItem<Command>;
export declare const editLinkToolbarConfig: (showLinkingToolbar: boolean, lpLinkPicker?: boolean, linkPickerOptions?: LinkPickerOptions) => Partial<FloatingToolbarConfig>;
