import { Placement } from 'bloko/common/metrics'; import { BoundingClientRect } from 'bloko/common/types'; import { InfoTheme } from 'bloko/blocks/drop/Info'; import { TipTheme } from 'bloko/blocks/drop/Tip'; import { Alignment, PlacementRect } from 'bloko/blocks/drop/types'; export interface Behavior { showArrow: boolean; arrowSize: number; placementOffset: number; alignToActivatorBorders: boolean; setupFullWidthOnXS: boolean; fullScreenOnXS: boolean; } interface UpdatePositionParams { host: HTMLElement | null; behavior: Behavior; activatorElement: HTMLElement; placement: Placement; dropElement: HTMLElement; sizeBox?: HTMLElement | null; classNames: string[]; arrow: HTMLElement | null; arrowSize: number; placementSequence: Placement[]; } export declare function getPlacementClass(placement: Placement): string[]; export declare function updateCSSMetrics(element: HTMLElement, metrics: Alignment | Record | undefined): void; export declare function getThemeClass(theme: InfoTheme | TipTheme): string; export declare function calculateRectangle(placement: PlacementRect, tooltipMetrics: BoundingClientRect, elementOffset: PlacementRect): BoundingClientRect; export declare function updatePosition({ host, behavior, activatorElement, placement, dropElement, sizeBox, classNames, arrowSize, arrow, placementSequence, }: UpdatePositionParams): { placement: Placement; }; export declare function setInitialCSSMetrics(dropElement: HTMLElement): void; export declare function setupWidth(node: HTMLElement, host: HTMLElement): void; export {};