import { PlacementType } from "../../utils/types";
/**
 * @slot (default) - The tooltip's target element
 * @slot content - HTML content for the tooltip
 */
export declare class PdsTooltip {
    private static instanceCounter;
    /**
     * Internal state: true if the tooltip was opened by user interaction (hover/focus),
     * false if opened via the `opened` prop or currently closed.
     */
    private _isInteractiveOpen;
    private portalEl;
    private resolvedPlacement;
    private triggerEl;
    private contentDiv;
    private slotMutationObserver;
    private currentPathname;
    private pathnameCheckInterval;
    private stopAutoUpdate;
    /**
     * Reference to the Host element
     */
    el: HTMLPdsTooltipElement;
    /**
     * Content for the tooltip. If HTML is required, use the content slot
     */
    content: string;
    /**
     * A unique identifier used for the underlying component `id` attribute.
     */
    componentId: string;
    /**
     * Determines whether or not the tooltip has an arrow
     * @defaultValue true
     */
    hasArrow: boolean;
    /**
     * Enable this option when using the content slot
     * @defaultValue false
     */
    htmlContent: boolean;
    /**
     * Determines the preferred position of the tooltip
     * @defaultValue "right"
     */
    placement: PlacementType;
    /**
     * Sets the maximum width of the tooltip content
     * @defaultValue "352px"
     */
    maxWidth: string;
    /**
     * Determines whether or not the tooltip is visible
     * @defaultValue false
     */
    opened: boolean;
    handleOpenToggle(newValue: boolean, oldValue: boolean): void;
    componentWillLoad(): void;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    componentDidRender(): void;
    /**
     * Shows the tooltip by enabling the opened property
     */
    showTooltip(): Promise<void>;
    /**
     * Hides the tooltip by disabling the opened property
     */
    hideTooltip(): Promise<void>;
    private handleHide;
    private handleShow;
    private handlePageShow;
    private handleSpaNavigation;
    private checkPathnameChange;
    /**
     * Determines the most accurate HTML element to use as the anchor for positioning the tooltip.
     * If `htmlContent` is false, it attempts to find the actual element slotted as the trigger.
     * Otherwise, or if no specific element is found, it defaults to the span wrapper around the trigger slot.
     * This helps with precise alignment.
     */
    private determinePositioningAnchor;
    /**
     * Centralized method to calculate and apply the tooltip's position using floating UI.
     * Uses the determined anchor element and applies computePosition with flip, offset, and shift.
     */
    private repositionPortal;
    private createPortal;
    private removePortal;
    render(): any;
}
