import React from 'react';
import { Placement } from '@popperjs/core';
import { ComponentWithClass } from '../../common/ComponentWithClass';
import { FloatingBoxSchemeType } from './types';
import { PositionType } from '../../common/Position';
export interface FloatingBoxBaseProps extends PositionType, ComponentWithClass, Pick<React.AriaAttributes, 'aria-label' | 'aria-labelledby'>, Pick<React.HTMLAttributes<HTMLDivElement>, 'id'> {
    role?: string;
    contentId?: string;
    scheme?: FloatingBoxSchemeType;
    onMouseEnter?: (e: React.MouseEvent) => void;
    onMouseLeave?: (e: React.MouseEvent) => void;
    children?: React.ReactElement;
    isVisible?: boolean;
    placement?: Placement;
}
export interface FloatingBoxWithExternalTargetProps extends FloatingBoxBaseProps {
    renderTarget?: never;
    /**
     * External element that the floating box should attach to.
     */
    targetElement?: Element | null;
}
export interface FloatingBoxWithEmbeddedTargetProps extends FloatingBoxBaseProps {
    /**
     * JSX to render, representing the element that the floating
     * box should attach to.
     */
    renderTarget?: React.ReactElement;
    targetElement?: never;
}
export type FloatingBoxProps = FloatingBoxWithExternalTargetProps | FloatingBoxWithEmbeddedTargetProps;
export declare const FloatingBox: React.FC<FloatingBoxProps>;
//# sourceMappingURL=FloatingBox.d.ts.map