import { type CSSProperties, type ReactNode } from "react";
import { type OverlayPositionType } from "../typings/overlay.js";
import { type IAlignPoint } from "../typings/positioning.js";
import { type ArrowDirections, type ArrowOffsets } from "./typings.js";
export declare const X_SHIFT = 7;
export declare const Y_SHIFT = 11;
/**
 * @internal
 */
export interface IBubbleAccessibilityConfig {
    role?: string;
    ariaLabelledBy?: string;
}
/**
 * @internal
 */
export interface IBubbleProps {
    id?: string;
    alignPoints?: IAlignPoint[];
    alignTo?: string | HTMLElement | null;
    arrowOffsets?: ArrowOffsets;
    arrowDirections?: ArrowDirections;
    arrowStyle?: CSSProperties;
    className?: string;
    closeOnOutsideClick?: boolean;
    closeOnParentScroll?: boolean;
    closeOnEscape?: boolean;
    /**
     * Array of refs where user clicks should be ignored
     * and bubble should not be closed by clicking on them
     */
    ignoreClicksOn?: any[];
    ignoreClicksOnByClass?: string[];
    onClose?: () => void;
    onMouseEnter?: () => void;
    onMouseLeave?: () => void;
    onKeyDown?: () => void;
    overlayClassName?: string;
    children?: ReactNode;
    overlayPositionType?: OverlayPositionType;
    ensureVisibility?: boolean;
    accessibilityConfig?: IBubbleAccessibilityConfig;
}
/**
 * @internal
 */
export interface IBubbleState {
    alignPoints: IAlignPoint[];
    optimalAlignPoints: string;
}
/**
 * @internal
 */
export declare const Bubble: import("react").NamedExoticComponent<IBubbleProps>;
//# sourceMappingURL=Bubble.d.ts.map