import { BaseController } from '../base-controller';
import type { ControllerInterface, ResolvedInputProps, StateAccess } from '../generic-types';
import type { TooltipApi } from './api';
export declare class TooltipController extends BaseController<TooltipApi> implements ControllerInterface<TooltipApi> {
    private previousSibling?;
    private tooltipElement?;
    private hasFocusIn;
    private hasMouseIn;
    private isHiddenForCurrentVisit;
    private overFocusTimeout?;
    private cleanupAutoPositioning?;
    constructor(stateAccess: StateAccess<TooltipApi>);
    componentWillLoad(props: ResolvedInputProps<TooltipApi>): void;
    watchLabel(value?: string): void;
    watchAlign(value?: string): void;
    watchBadgeText(value?: string): void;
    watchId(value?: string): void;
    initContext(previousSibling: HTMLElement | undefined): void;
    syncListeners(last?: HTMLElement | null, next?: HTMLElement | null, replacePreviousSibling?: boolean): void;
    handleEventListeners(host: HTMLElement): void;
    hideTooltip(): void;
    setTooltipElementRef: (el?: HTMLElement) => void;
    destroy(): void;
    private isNewVisit;
    private resetHideFlag;
    private alignTooltip;
    private showTooltip;
    private showOrHideTooltip;
    private hideTooltipByEscape;
    private handleMouseEnter;
    private handleMouseLeave;
    private handleFocusIn;
    private handleFocusOut;
    private addListeners;
    private removeListeners;
}
