import { FC, LegacyRef } from 'react';
export type TriggerTypes = 'hover' | 'click' | 'contextmenu' | 'focus' | 'key';
export interface OverlayTriggerEvent {
    /**
     * The type of event that triggered the overlay.
     */
    type: TriggerTypes;
    /**
     * The native event that triggered the overlay.
     */
    nativeEvent: any;
}
export interface OverlayTriggerProps {
    /**
     * The children to be rendered within the overlay trigger.
     */
    children?: any;
    /**
     * The CSS class name to be applied to the overlay trigger.
     */
    className?: string;
    /**
     * The type of element that will be used as the overlay trigger.
     * @default 'span'
     */
    elementType?: any;
    /**
     * The type(s) of event(s) that will trigger the overlay.
     * Can be a single trigger type or an array of trigger types.
     */
    trigger: TriggerTypes | TriggerTypes[];
    /**
     * A function that is called when the overlay is opened.
     * It receives an object of type OverlayTriggerEvent as an argument.
     * @default () => undefined
     */
    onOpen?: (event: OverlayTriggerEvent) => void;
    /**
     * A function that is called when the overlay is closed.
     * It receives an object of type OverlayTriggerEvent as an argument.
     * @default () => undefined
     */
    onClose?: (event: OverlayTriggerEvent) => void;
}
export declare const OverlayTrigger: FC<OverlayTriggerProps & {
    ref: LegacyRef<HTMLSpanElement>;
}>;
