import { ComponentTypeEnum } from '../interface/type';
import type { IModelLayoutOption, IModelRenderOption } from '../../model/interface';
import type { IRegion } from '../../region/interface';
import { BaseComponent } from '../base/base-component';
import type { BaseEventParams, EventCallback, EventQuery, EventType } from '../../event/interface';
import type { ITooltipHandler, TooltipActiveType } from '../../typings/tooltip';
import type { Datum, IShowTooltipOption } from '../../typings';
import type { ITooltip, ITooltipActiveTypeAsKeys, ITooltipSpec, TooltipHandlerParams, TotalMouseEventData } from './interface';
import { TooltipResult } from './interface/common';
import { GroupTooltipProcessor, DimensionTooltipProcessor, MarkTooltipProcessor } from './processor';
import type { IGraphic } from '@visactor/vrender-core';
import { TooltipSpecTransformer } from './tooltip-transformer';
export declare class Tooltip extends BaseComponent<any> implements ITooltip {
    protected layoutZIndex: number;
    static type: ComponentTypeEnum;
    static readonly transformerConstructor: typeof TooltipSpecTransformer;
    type: ComponentTypeEnum;
    name: string;
    readonly transformerConstructor: typeof TooltipSpecTransformer;
    static specKey: string;
    specKey: string;
    layoutType: 'none';
    private _hideTimer?;
    private _outTimer?;
    private _showTimer?;
    private _needInitEventOfTooltip?;
    private _enterable;
    private _isReleased;
    private _isEnterTooltip;
    protected _spec: ITooltipSpec;
    tooltipHandler?: ITooltipHandler;
    processor: ITooltipActiveTypeAsKeys<MarkTooltipProcessor, DimensionTooltipProcessor, GroupTooltipProcessor>;
    private _alwaysShow;
    private _cacheInfo;
    private _cacheParams;
    private _cacheActiveType;
    private _cacheEnterableRect;
    private _eventList;
    protected _isTooltipShown: boolean;
    protected _clickLock: boolean;
    private _handleMouseMove;
    isTooltipShown(): boolean;
    changeRegions(regions: IRegion[]): void;
    protected _getNeedClearVRenderComponents(): IGraphic[];
    protected _registerEvent(): void;
    protected _releaseEvent(): void;
    onLayout(ctx: IModelLayoutOption): void;
    onLayoutEnd(ctx: IModelLayoutOption): void;
    onRender(ctx: IModelRenderOption): void;
    created(): void;
    release(): void;
    beforeRelease(): void;
    protected _initHandler(): void;
    protected _initEventOfTooltipContent(): void;
    protected _initProcessor(): void;
    protected _initEvent(): void;
    protected _throttle(callback: (...args: any[]) => any): (...args: any[]) => any;
    protected _mountEvent: (eType: EventType, query: EventQuery, callback: EventCallback<any>) => void;
    protected _handleClickToLock: (params: BaseEventParams) => void;
    protected _getMouseOutHandler: (needPointerDetection?: boolean) => (params: BaseEventParams) => void;
    protected _handleChartMouseOut: (params?: BaseEventParams) => void;
    protected _getMouseMoveHandler: (isClick: boolean) => (params: BaseEventParams) => void;
    protected _handleChartMouseMove: (params: BaseEventParams, isClick: boolean) => void;
    protected _showTooltipByMouseEvent: (activeType: TooltipActiveType, mouseEventData: TotalMouseEventData, params: BaseEventParams, isClick: boolean, useCache?: boolean) => boolean;
    protected _getMouseEventData: (params: BaseEventParams) => TotalMouseEventData;
    protected _hideTooltipByHandler: (params: TooltipHandlerParams) => TooltipResult;
    reInit(spec?: any): void;
    showTooltip(datum: Datum, options: IShowTooltipOption): false | "none" | TooltipActiveType;
    hideTooltip: () => boolean;
    private _isSameAsCache;
    private _isPointerInChart;
    getVisible(): boolean;
}
export declare const registerTooltip: () => void;
