import Component from '@glimmer/component';
import type { EuiTooltipPopoverSignature } from './eui-tool-tip-popover';
export type ToolTipPositions = 'top' | 'right' | 'bottom' | 'left';
export type ToolTipDelay = 'regular' | 'long';
interface ToolTipStyles {
    top: string;
    left: string | 'auto';
    right?: string | 'auto';
    opacity?: string;
    visibility?: 'hidden';
    display?: 'inlineBlock';
}
declare const displayToClassNameMap: {
    inlineBlock: undefined;
    block: string;
};
export type EuiTooltipArgs = {
    /**
     * Passes onto the the trigger.
     */
    anchorClassName?: string;
    /**
     * Passes onto the tooltip itself, not the trigger.
     */
    className?: string;
    /**
     * The main content of your tooltip.
     */
    content?: string;
    /**
     * Common display alternatives for the anchor wrapper
     */
    display?: keyof typeof displayToClassNameMap;
    /**
     * Delay before showing tooltip. Good for repeatable items.
     */
    delay?: ToolTipDelay;
    /**
     * An optional title for your tooltip.
     */
    title?: string;
    /**
     * Unless you provide one, this will be randomly generated.
     */
    id?: string;
    /**
     * Suggested position. If there is not enough room for it this will be changed.
     */
    position?: ToolTipPositions;
    attachTo?: undefined | HTMLElement | string | null;
    isShown?: boolean | undefined;
    /**
     * If supplied, called when mouse movement causes the tool tip to be
     * hidden.
     */
    onMouseOut?: (event: MouseEvent) => void;
    onFocus?: () => void;
    onBlur?: () => void;
    hasTitle?: boolean;
};
export interface EuiToolTipSignature {
    Element: EuiTooltipPopoverSignature['Element'];
    Args: EuiTooltipArgs;
    Blocks: {
        default?: [id: string];
        title?: [];
        content?: [];
        anchor?: [id: string];
    };
}
export default class EuiToolTip extends Component<EuiToolTipSignature> {
    anchor: null | HTMLElement;
    popover: null | HTMLElement;
    position: ToolTipPositions;
    delay: ToolTipDelay;
    visible: boolean;
    hasFocus: boolean;
    calculatedPosition: ToolTipPositions;
    toolTipStyles: ToolTipStyles;
    arrowStyles: {
        left?: string;
        top?: string;
    };
    id: string;
    _attachTo: undefined | HTMLElement | string | null;
    private timeoutId?;
    updateAttachTo(): void;
    setupAttachToHandlers(): void;
    removeAttachToHandlers(): void;
    clearAnimationTimeout(): void;
    visibleDidUpdate(value: boolean): void;
    willDestroy(): void;
    testAnchor(): void;
    didInsertAnchor(ref: HTMLElement): void;
    setPopoverRef(ref: HTMLElement | null): void;
    showToolTip(): void;
    get attachTo(): Element | null | undefined;
    get _anchor(): Element | null;
    positionToolTip(): void;
    hideToolTip(): void;
    hasFocusMouseMoveListener(): void;
    onKeyUp(event: KeyboardEvent): void;
    onFocus(): void;
    onBlur(): void;
    onMouseOut(event: MouseEvent): void;
}
export {};
//# sourceMappingURL=eui-tool-tip.d.ts.map