/**
 * @license
 * Copyright 2025 Sandlada & Kai Orion
 * SPDX-License-Identifier: MIT
 */
import { type Ref } from 'vue';
export declare const STooltipController: unique symbol;
export declare enum ETooltipPosition {
    Left = "left",
    Above = "above",
    Right = "right",
    Below = "below",
    Before = "before",
    After = "after"
}
export type TTooltipPosition = 'left' | 'above' | 'right' | 'below' | 'before' | 'after';
export type TTooltipTouchGestures = 'auto' | 'on' | 'off';
export type TooltipVisibility = 'initial' | 'visible' | 'hidden';
export interface ITooltip {
    open(delay?: number): void;
    close(delay?: number): void;
    position: Ref<TTooltipPosition>;
    visibility: Ref<boolean>;
    touchGestures: Ref<TTooltipTouchGestures>;
}
export interface ITooltipControllerHost extends HTMLElement {
    [STooltipController]: ITooltip;
}
export interface IUseTooltipOptions {
    position: Ref<TTooltipPosition>;
    visibility: Ref<boolean>;
    touchGestures: Ref<TTooltipTouchGestures>;
    disabled: Ref<boolean>;
    showDelay: Ref<number>;
    hideDelay: Ref<number>;
}
export declare function useTooltip(surfaceRef: Ref<ITooltipControllerHost | null>, anchorRef: Ref<HTMLElement | null>, options: Required<IUseTooltipOptions>): {
    show: (delay?: number, origin?: {
        x: number;
        y: number;
    }) => void;
    hide: (delay?: number) => void;
};
//# sourceMappingURL=tooltip-controller.d.ts.map