import { type ReactElement } from "react";
import { AnimationType as AnimationTypeEnum, HideShowEvent as HideShowEventEnum } from "../Dialog/DialogConstants";
import { type DialogAnimationType, type DialogTriggerEvent } from "../Dialog/Dialog.types";
import { TipseenCloseButtonTheme as TipseenCloseButtonThemeEnum, TipseenColor as TipseenColorEnum } from "./TipseenConstants";
import { type TipseenCloseButtonTheme, type TipseenColor } from "./Tipseen.types";
import { type ElementContent, type VibeComponentProps } from "../../types";
import { type MoveBy } from "../../types/MoveBy";
import { type Modifier } from "react-popper";
import React from "react";
import { type TooltipPositions } from "../Tooltip/Tooltip.types";
import { TooltipPositions as TooltipPositionsEnum } from "../Tooltip/TooltipConstants";
export interface TipseenProps extends VibeComponentProps {
    /**
     * Class name applied to the Tipseen title.
     */
    titleClassName?: string;
    /**
     * The position of the Tipseen relative to the target element.
     */
    position?: TooltipPositions;
    /**
     * The animation type used for showing/hiding the Tipseen.
     */
    animationType?: DialogAnimationType;
    /**
     * The delay in milliseconds before hiding the Tipseen.
     */
    hideDelay?: number;
    /**
     * The delay in milliseconds before showing the Tipseen.
     */
    showDelay?: number;
    /**
     * The title text of the Tipseen.
     */
    title?: string;
    /**
     * If true, hides the close button.
     */
    hideCloseButton?: boolean;
    /**
     * The child element that triggers the Tipseen.
     */
    children?: ReactElement;
    /**
     * The CSS selector of the container where the Tipseen should be rendered.
     */
    containerSelector?: string;
    /**
     * Events that trigger hiding the Tipseen.
     */
    hideTrigger?: DialogTriggerEvent | Array<DialogTriggerEvent>;
    /**
     * Events that trigger showing the Tipseen.
     */
    showTrigger?: DialogTriggerEvent | Array<DialogTriggerEvent>;
    /**
     * The width of the Tipseen.
     */
    width?: number;
    /**
     * Offset values for positioning adjustments.
     */
    moveBy?: MoveBy;
    /**
     * If true, hides the Tipseen when the reference element is hidden.
     */
    hideWhenReferenceHidden?: boolean;
    /**
     * Class name applied to the reference wrapper element.
     */
    referenceWrapperClassName?: string;
    /**
     * If false, hides the arrow of the Tipseen.
     */
    tip?: boolean;
    /**
     * Class name applied to the Tipseen arrow.
     */
    tooltipArrowClassName?: string;
    /**
     * Custom Popper.js modifiers.
     * https://popper.js.org/docs/v2/modifiers/
     */
    modifiers?: Array<Modifier<unknown>>;
    /**
     * The aria-label for the close button.
     */
    closeAriaLabel?: string;
    /**
     * Callback fired when the Tipseen is closed.
     */
    onClose?: (event?: React.MouseEvent<HTMLButtonElement>) => void;
    /**
     * The content displayed inside the Tipseen.
     */
    content: ElementContent;
    /**
     * The theme of the Tipseen close button.
     */
    closeButtonTheme?: TipseenCloseButtonTheme;
    /**
     * If true, renders the Tipseen as a floating element without a reference.
     */
    floating?: boolean;
    /**
     * The color theme of the Tipseen.
     */
    color?: TipseenColor;
}
export declare const TipseenContext: React.Context<TipseenColor>;
declare const _default: React.ForwardRefExoticComponent<TipseenProps & React.RefAttributes<HTMLElement>> & {
    closeButtonThemes: typeof TipseenCloseButtonThemeEnum;
    animationTypes: typeof AnimationTypeEnum;
    hideShowTriggers: typeof HideShowEventEnum;
    colors: typeof TipseenColorEnum;
    positions: typeof TooltipPositionsEnum;
};
export default _default;
