import { default as React, PropsWithChildren } from 'react';
import { Options } from '@popperjs/core';
import { Placement } from '../../values/Placement';
import { TriggerType } from '../../values/Trigger';
type PopperConfig = Partial<Options>;
export type OverlayTriggerProps = {
    /**
     * The visibility of the Overlay. `show` is a _controlled_ prop so should be paired
     * with `onToggle` to avoid breaking user interactions.
     *
     * Manually toggling `show` does **not** wait for `delay` to change the visibility.
     *
     * @controllable onToggle
     * @default false
     */
    show?: boolean;
    /**
     * The initial visibility state of the Overlay.
     *
     * @default false
     */
    defaultShow?: boolean;
    /**
     * Defines the usage of React Portal.
     *
     * @default true
     */
    enablePortal?: boolean;
    /**
     * Specify which action or actions trigger Overlay visibility
     *
     * The `click` trigger ignores the configured `delay`.
     *
     * Possible values are:
     *
     * - `OverlayTrigger.TRIGGER_CLICK`
     * - `OverlayTrigger.TRIGGER_HOVER`
     * - `OverlayTrigger.TRIGGER_HOVER`
     * - `'hover'`
     * - `'click'`
     * - `'focus'`
     *
     * @default 'hover'
     */
    trigger?: TriggerType;
    /**
     * A millisecond delay amount to show and hide the Overlay once triggered
     */
    delay?: number | {
        show?: number;
        hide?: number;
    };
    /**
     * An element or text to overlay next to the target.
     */
    overlay: React.ReactElement;
    /**
     * The placement of the Overlay in relation to it's `target`.
     *
     * possible values are:
     *
     * - `OverlayTrigger.AUTO_START`
     * - `OverlayTrigger.AUTO`
     * - `OverlayTrigger.AUTO_END`
     * - `OverlayTrigger.TOP_START`
     * - `OverlayTrigger.TOP`
     * - `OverlayTrigger.TOP_END`
     * - `OverlayTrigger.RIGHT_START`
     * - `OverlayTrigger.RIGHT`
     * - `OverlayTrigger.RIGHT_END`
     * - `OverlayTrigger.BOTTOM_START`
     * - `OverlayTrigger.BOTTOM`
     * - `OverlayTrigger.BOTTOM_END`
     * - `OverlayTrigger.LEFT_START`
     * - `OverlayTrigger.LEFT`
     * - `OverlayTrigger.LEFT_END`
     * - `'auto-start'`
     * - `'auto'`
     * - `'auto-end'`
     * - `'top-start'`
     * - `'top'`
     * - `'top-end'`
     * - `'right-start'`
     * - `'right'`
     * - `'right-end'`
     * - `'bottom-start'`
     * - `'bottom'`
     * - `'bottom-end'`
     * - `'left-start'`
     * - `'left'`
     * - `'left-end'`
     *
     * @default 'top'
     */
    placement?: Placement;
    /**
     * A Popper.js config object passed to the underlying popper instance.
     * If no custom config is provided, a default config will be used. This default config
     * includes an arrow element. In case you want to use a custom config and an arrow, include the arrow
     * modifier so the correct arrow element can be injected for the arrow modifier.
     *
     * @example
     * popperConfig={{
     *     modifiers: [
     *          {
     *              name: 'offset',
     *              options: {
     *                  offset: [0, 5],
     *              },
     *          },
     *          {
     *              name: 'arrow',
     *              options: {},
     *          },
     *      ],
     *  }}
     */
    popperConfig?: PopperConfig;
    /**
     * Specify whether the overlay should trigger onHide when the user clicks outside the overlay.
     *
     * @default true
     */
    rootClose?: boolean;
    /**
     * A callback that fires when the user triggers a change in tooltip visibility.
     *
     * `onToggle` is called with the desired next `show`, and generally should be passed
     * back to the `show` prop. `onToggle` fires _after_ the configured `delay`
     *
     * @controllable `show`
     */
    onToggle?: (show: boolean) => void;
};
declare const OverlayTrigger: {
    (props: PropsWithChildren<OverlayTriggerProps>): import("react/jsx-runtime").JSX.Element;
    TRIGGER_CLICK: "click";
    TRIGGER_HOVER: "hover";
    TRIGGER_FOCUS: "focus";
    AUTO_START: "auto-start";
    AUTO: "auto";
    AUTO_END: "auto-end";
    TOP_START: "top-start";
    TOP: "top";
    TOP_END: "top-end";
    RIGHT_START: "right-start";
    RIGHT: "right";
    RIGHT_END: "right-end";
    BOTTOM_START: "bottom-start";
    BOTTOM: "bottom";
    BOTTOM_END: "bottom-end";
    LEFT_START: "left-start";
    LEFT: "left";
    LEFT_END: "left-end";
};
export default OverlayTrigger;
