import type { IntlShape } from 'react-intl';
import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
import type { NodeView } from '@atlaskit/editor-prosemirror/view';
import type { EmojiPlugin } from '../emojiPluginType';
import type { EmojiNodeDataProvider } from '../pm-plugins/providers/EmojiNodeDataProvider';
interface Params {
    api: ExtractInjectionAPI<EmojiPlugin> | undefined;
    emojiNodeDataProvider?: EmojiNodeDataProvider;
    intl: IntlShape;
}
/**
 * Check if we can nicely fallback to the nodes text
 *
 * @param fallbackText string of the nodes fallback text
 *
 * @example
 * isSingleEmoji('😀') // true
 */
export declare function isSingleEmoji(fallbackText: string): boolean;
/**
 * Emoji node view for renderering emoji nodes
 */
export declare class EmojiNodeView implements NodeView {
    dom: Node;
    domElement: HTMLElement | undefined;
    private readonly node;
    private readonly intl;
    private renderingFallback;
    readonly destroy: () => void;
    private static logError;
    /**
     * Prosemirror node view for rendering emoji nodes. This class is responsible for
     * rendering emoji nodes in the editor, handling updates, and managing fallback rendering.
     *
     * @param node - The ProseMirror node representing the emoji.
     * @param extraProps - An object containing additional parameters.
     * @param extraProps.intl - The internationalization object for formatting messages.
     * @param extraProps.api - The editor API for accessing shared state and connectivity features.
     * @param extraProps.emojiNodeDataProvider - (Optional) A provider for fetching emoji data.
     *
     * @example
     * const emojiNodeView = new EmojiNodeView(node, { intl, api, emojiNodeDataProvider });
     */
    constructor(node: PMNode, { intl, api, emojiNodeDataProvider }: Params);
    /** Type guard to check if a Node is an HTMLElement in a safe way. */
    private isHTMLElement;
    private updateDom;
    private static isEmojiRepresentationSupported;
    private cleanUpAndRenderCommonAttributes;
    private renderFallback;
    private renderEmoji;
    private createSpriteEmojiElement;
    private createImageEmojiElement;
}
export {};
