import * as React from 'react';
import { type FloatingComponentProps, type VirtualElement } from '../../lib/floating';
import type { HTMLAttributesWithRootRef } from '../../types';
import { type FloatingArrowProps as FloatingArrowPropsPrivate } from '../FloatingArrow/FloatingArrow';
export type FloatingArrowProps = Omit<FloatingArrowPropsPrivate, 'getRootRef' | 'coords' | 'placement' | 'Icon'>;
type AllowedFloatingComponentProps = Pick<FloatingComponentProps, 'arrow' | 'arrowRef' | 'arrowHeight' | 'arrowPadding' | 'hoverDelay' | 'placement' | 'offsetByMainAxis' | 'offsetByCrossAxis' | 'shown' | 'onShownChange' | 'defaultShown' | 'hideWhenReferenceHidden' | 'onReferenceHiddenChange' | 'sameWidth' | 'zIndex' | 'strategy' | 'usePortal' | 'customMiddlewares' | 'onPlacementChange' | 'disableFlipMiddleware' | 'disableShiftMiddleware' | 'flipMiddlewareFallbackAxisSideDirection' | 'overflowPadding'>;
export interface PopperCommonProps extends AllowedFloatingComponentProps, Omit<HTMLAttributesWithRootRef<HTMLDivElement>, keyof AllowedFloatingComponentProps> {
    /**
     * Позволяет набросить на стрелку пользовательские атрибуты.
     */
    arrowProps?: FloatingArrowProps;
    /**
     * Пользовательская SVG иконка.
     *
     * Требования:
     *
     * 1. Иконка по умолчанию должна быть направлена вверх (a.k.a `IconUp`).
     * 2. Чтобы избежать проблемы с пространством между стрелкой и контентом на некоторых экранах,
     *    растяните кривую по высоте на `1px` и увеличьте на этот размер `height` и `viewBox` SVG.
     *    (смотри https://github.com/VKCOM/VKUI/pull/4496).
     * 3. Передайте высоту иконки в параметр `arrowHeight`. В значении высоты можно исключить хак с `1px` из п.2.
     * 4. Убедитесь, что компонент принимает все валидные для SVG параметры.
     * 5. Убедитесь, что SVG и её элементы наследует цвет через `fill="currentColor"`.
     */
    ArrowIcon?: FloatingArrowPropsPrivate['Icon'];
    /**
     * Подписывается на изменение геометрии `targetRef`, чтобы пересчитать свою позицию.
     */
    autoUpdateOnTargetResize?: boolean;
    /**
     * Пытаться обновлять позицию всплывающего элемента каждый фрейм.
     */
    autoUpdateOnAnimationFrame?: boolean;
}
export interface PopperProps extends PopperCommonProps {
    /**
     * Ref на якорный элемент.
     */
    targetRef: React.RefObject<HTMLElement | null> | VirtualElement;
}
/**
 * @see https://vkui.io/components/popper
 */
export declare const Popper: ({ placement: placementProp, sameWidth, hideWhenReferenceHidden, offsetByMainAxis, offsetByCrossAxis, arrow, arrowHeight, arrowPadding, customMiddlewares, disableFlipMiddleware, disableShiftMiddleware, flipMiddlewareFallbackAxisSideDirection, overflowPadding, autoUpdateOnTargetResize, autoUpdateOnAnimationFrame, strategy: strategyProp, arrowProps, ArrowIcon, targetRef, getRootRef, children, usePortal, onPlacementChange, onReferenceHiddenChange, zIndex, style, ...restProps }: PopperProps) => React.ReactNode;
export {};
//# sourceMappingURL=Popper.d.ts.map