import { availablePositions, textAlignments } from './constants'; import type { Placement } from '@popperjs/core'; import type { DirectiveBinding } from 'vue'; export type TargetElement = HTMLElement & { __tooltip?: Tooltip; }; export type TooltipOptions = { label: string; offset: [number, number]; placement: Placement; show: boolean; textAlign: string; isFullLength: boolean; zIndex: number; withinTarget: boolean; /** * When false or undefined (default), the trigger gets aria-describedby pointing at the tooltip. * Set it to true when the trigger already has a full accessible name (e.g. aria-label) * and the tooltip is only for sighted hover to avoid duplicating the Screen Reader announcement. */ ariaHidden?: boolean; isInfoButtonOnly?: boolean; }; export type ToolTipOptionsInput = string | Partial & { position: Placement; }>; export type AvailablePositions = (typeof availablePositions)[number]; export type TextAlignments = (typeof textAlignments)[number]; export declare class Tooltip { private static activeTooltip; private static mountedTriggers; private static onDocumentKeydown; private static registerTrigger; private static unregisterTrigger; private tooltipEl; private triggerEl; private popperInstance; private bridgeEl; private triggerHover; private tooltipHover; private bridgeHover; private clickActive; private options; private scrollableParents; private timer; constructor(trigger: TargetElement, opts: ToolTipOptionsInput | undefined); show(): void; hide(): void; addTriggerListeners(): void; removeTriggerListeners(): void; resetTriggerAttributes(): void; setOptions(opts: ToolTipOptionsInput | undefined): void; private setPopperInstance; private getCenteredArrowModifier; private scheduleHide; private clearTimer; private createTooltip; private setTooltipContent; private addTooltipListeners; private removeTooltipListeners; private setScrollableParents; private addScrollListeners; private removeScrollListeners; private cleanupTooltipInstances; private createBridge; private calculateBridgeGeometry; private removeBridge; private onBridgeEnter; private onBridgeLeave; private onTriggerEnter; private onTriggerLeave; private onTriggerPointerDown; private onTriggerClick; private onTriggerFocus; private onTriggerBlur; private onTooltipEnter; private onTooltipLeave; private onScroll; private isTriggerInViewport; private checkOverlapWithSlideover; } /** * @function validateBinding * @param {DirectiveBinding} binding * @returns {Boolean} */ export declare const validateBinding: (binding: DirectiveBinding) => boolean;