import type { Editor } from '../Editor';
import type { EditorView } from 'prosemirror-view';
import { Plugin } from 'prosemirror-state';
interface PopoverElement extends HTMLElement {
    _cleanup?: () => void;
    _cancelCleanup?: () => void;
}
export interface PopoverRule {
    className?: string;
    find: (target: PopoverElement) => boolean;
    content: (target: PopoverElement) => string | HTMLElement | null | undefined;
}
export default class PopoverHandler {
    private editor;
    private view;
    private rules;
    private hoverTooltip?;
    private updateDebounce;
    constructor(editor: Editor, view: EditorView, rules: PopoverRule[]);
    private handleHover;
    private showTooltip;
    private removeTooltip;
    static createPopover(className?: string): {
        container: HTMLElement;
        content: HTMLElement;
        arrow: HTMLElement;
    };
    private attachListeners;
    private removeListeners;
    static updatePosition(trigger: HTMLElement, container: HTMLElement, arrowElem: HTMLElement): Promise<void>;
    destroy(): void;
}
export declare function popoverPlugin(editor: Editor, rules: PopoverRule[]): Plugin<any>;
export {};
//# sourceMappingURL=popover.d.ts.map