/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { ICustomElementFoundation } from '@tylertech/forge-core';
import { ITooltipAdapter } from './tooltip-adapter';
import { TooltipBuilder } from './tooltip-constants';
import { PopupPlacement } from '../popup';
export interface ITooltipFoundation extends ICustomElementFoundation {
    text: string;
    builder: TooltipBuilder | undefined;
    target: string;
    delay: number;
    position: PopupPlacement;
    open: boolean;
    hide(): void;
    tooltipElement: HTMLElement | null;
}
/**
 * The foundation class behind the tooltip component.
 */
export declare class TooltipFoundation implements ITooltipFoundation {
    private _adapter;
    private static _tooltipIdentifier;
    private _identifier;
    private _text;
    private _builder;
    private _target;
    private _delay;
    private _position;
    private _mouseOverTimeout;
    private _isOpen;
    private _touchTimeout;
    private _mouseOverListener;
    private _mouseOutListener;
    private _touchStartListener;
    private _touchEndListener;
    private _scrollListener;
    private _clickListener;
    private _mouseDownListener;
    private _dragListener;
    constructor(_adapter: ITooltipAdapter);
    initialize(): void;
    disconnect(): void;
    /**
     * Generates the next available tooltip identifier.
     */
    private _getNextIdentifier;
    /** Adds event listeners to the target element. */
    private _addTargetListeners;
    /**
     * Removes the event listeners from the target element.
     * @param targetElement The target element instance.
     */
    private _removeTargetListeners;
    /**
     * Handles the touchstart event on the target element to detect long press.
     */
    private _onTouchStart;
    /**
     * Handles the touchend event on the target element to cancel a long press action.
     */
    private _onTouchEnd;
    private _clearTouchTimer;
    /**
     * Handles the mouseover event on the target element.
     */
    private _onMouseOver;
    /**
     * Handles the mouseout event on the target element.
     */
    private _onMouseOut;
    /**
     * Displays the tooltip.
     */
    private _show;
    /**
     * Hides the tooltip.
     */
    hide(): void;
    /**
     * Handles scrolling events when the tooltip is open.
     */
    private _onScroll;
    private _targetInteracted;
    /** Gets/sets the tooltip text. */
    get text(): string;
    set text(value: string);
    /** Sets the tooltip builder function. */
    get builder(): TooltipBuilder | undefined;
    set builder(value: TooltipBuilder | undefined);
    /** Gets/sets the target element CSS selector. */
    get target(): string;
    set target(value: string);
    /** Gets/sets the interaction delay. */
    get delay(): number;
    set delay(value: number);
    /** Gets/sets the tooltip position. */
    get position(): PopupPlacement;
    set position(value: PopupPlacement);
    set open(value: boolean);
    get open(): boolean;
    get tooltipElement(): HTMLElement | null;
}
