import { ReactElement, ReactNode, RefObject } from "react";
import { IAccessibilityConfigBase } from "../../typings/accessibility.js";
import { UiTooltipProps } from "../UiTooltip/types.js";
/**
 * @internal
 */
export interface UiPopoverProps {
    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?: UiTooltipProps["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;
    onOpen?: () => void;
    onClose?: () => void;
}
/**
 * @internal
 */
export declare function UiPopover({ accessibilityConfig, anchor, width, title, tabIndex, disabled, content, footer, closeText, closeVisible, initialFocus, returnFocusTo, triggerBy, returnFocusAfterClose, focusCheckFn, onOpen, onClose, }: UiPopoverProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=UiPopover.d.ts.map