import { Leafer, App, PointerEvent } from '@leafer-ui/core';
import { ILeaf } from '@leafer-ui/interface';

type IOffset = number | {
    x: number;
    y: number;
} | [number, number];
type UserConfig = {
    className?: string;
    includeTypes?: Array<string>;
    excludeTypes?: Array<string>;
    triggerType?: 'hover' | 'click';
    offset?: IOffset;
    shouldBegin?: (event: PointerEvent) => boolean;
    getContent: (node: ILeaf) => string;
};
declare class TooltipPlugin {
    private readonly app;
    private readonly domId;
    private readonly config;
    private activeNode;
    private readonly bindEventIds;
    private readonly _moveTooltip;
    private readonly _hideTooltip;
    styleSheetElement: HTMLStyleElement;
    constructor(app: Leafer | App, config: UserConfig);
    private initEvent;
    private shouldShowTooltip;
    private leaferPointMove;
    private leaferPointClick;
    private viewReadyEvent;
    private initCssClass;
    private initCreateTooltip;
    private hideTooltip;
    private calculateTooltipPosition;
    private getTooltipContent;
    private moveTooltip;
    getDomId(): string;
    getOffset(): {
        x: number;
        y: number;
    };
    createStyleRule(selector: string, useRules: string | Record<string, string>): void;
    removeStyleRule(selector: string): void;
    findStyleRuleIndex(selector: string): number;
    addClass(className: string | string[]): void;
    removeClass(className: string | string[]): void;
    destroy(): void;
    setTriggerType(triggerType: 'hover' | 'click'): void;
}

export { TooltipPlugin };
