/**
 * @jsxRuntime classic
 * @jsx jsx
 */
import React from 'react';
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
import type { Decoration, EditorView, NodeView } from '@atlaskit/editor-prosemirror/view';
import type { PMPluginFactoryParams } from '../types';
export type InlineNodeViewComponentProps = {
    getPos: () => GetPosReturn;
    node: PMNode;
    view: EditorView;
};
type InlineNodeViewComponent<ExtraComponentProps> = React.ComponentType<React.PropsWithChildren<InlineNodeViewComponentProps & ExtraComponentProps>>;
export type CreateNodeViewOptions<ExtraComponentProps> = {
    Component: InlineNodeViewComponent<ExtraComponentProps>;
    extraComponentProps: ExtraComponentProps;
    extraNodeViewProps?: Pick<NodeView, 'stopEvent'>;
    nodeViewParams: NodeViewParams;
    pmPluginFactoryParams: PMPluginFactoryParams;
};
export declare const inlineNodeViewClassname = "inlineNodeView";
type NodeViewProducer = (node: PMNode, view: EditorView, getPos: () => GetPosReturn, decorations: readonly Decoration[]) => NodeView;
type GetPosReturn = number | undefined;
type NodeViewParams = {
    decorations: Parameters<NodeViewProducer>[3];
    getPos: () => GetPosReturn;
    node: Parameters<NodeViewProducer>[0];
    view: Parameters<NodeViewProducer>[1];
};
export declare function getInlineNodeViewProducer<ExtraComponentProps>({ pmPluginFactoryParams, Component, extraComponentProps, extraNodeViewProps, }: {
    Component: InlineNodeViewComponent<ExtraComponentProps>;
    extraComponentProps?: ExtraComponentProps;
    extraNodeViewProps?: Pick<NodeView, 'stopEvent'>;
    pmPluginFactoryParams: PMPluginFactoryParams;
}): NodeViewProducer;
export {};
