import { type ReactElement, type ReactNode, type RefObject } from "react";
import { type IAccessibilityConfigBase } from "../../typings/accessibility.js";
import { type IUiTooltipProps } from "../UiTooltip/types.js";
/**
 * @internal
 */
export interface IUiPopoverProps {
    id?: string;
    anchor: ReactElement<any>;
    width?: "default" | number;
    disabled?: boolean;
    tabIndex?: number;
    accessibilityConfig?: IAccessibilityConfigBase;
    title?: string | ReactNode;
    content?: ReactNode | ((args: {
        onClose: () => void;
    }) => ReactNode);
    footer?: ReactNode | ((args: {
        onClose: () => void;
    }) => ReactNode);
    triggerBy?: IUiTooltipProps["triggerBy"];
    closeText?: string;
    closeVisible?: boolean;
    initialFocus?: RefObject<HTMLElement> | string;
    returnFocusTo?: RefObject<HTMLElement> | string;
    returnFocusAfterClose?: boolean;
    /**
     * customize if you know that dialog content has some custom focusIn logic which modifies focused element, eg. table which shifts its focus from table wrapper to first table cell
     * default is check if active element is exactly focused element.
     */
    focusCheckFn?: (element: HTMLElement) => boolean;
    /**
     * Enable focus trap to prevent tabbing out of the popover
     * When true, uses UiFocusManager's focus trap instead of tabOutHandler
     */
    enableFocusTrap?: boolean;
    onOpen?: () => void;
    onClose?: () => void;
}
/**
 * @internal
 */
export declare function UiPopover({ id, accessibilityConfig, anchor, width, title, tabIndex, disabled, content, footer, closeText, closeVisible, initialFocus, returnFocusTo, triggerBy, returnFocusAfterClose, focusCheckFn, enableFocusTrap, onOpen, onClose }: IUiPopoverProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=UiPopover.d.ts.map