import { ComponentType, ReactElement, ReactNode } from 'react'; export type OverflowComponent = ComponentType<{ items: ReactElement[]; }>; export type ItemElement = ReactElement>; export type CollapseStrategy = 'asc' | 'desc' | 'innerAscFirstKeepLast' | 'innerDescFirstKeepLast'; export type CollapseUnit = number | number[]; export declare function resolveCollapseOrder(order: CollapseUnit[] | CollapseStrategy, itemCount: number): CollapseUnit[]; export type CollapseState = { hiddenIndices: number[]; overflowAt: number; }; export declare const INITIAL_STATE: CollapseState; export declare function arraysEqual(a: number[], b: number[]): boolean; export declare function totalWidth(itemWidths: number[], gap: number): number; export declare const FIT_EPSILON = 0.5; export declare function getMeasurements(measureEl: HTMLElement, overflowEl: HTMLElement, hasSep: boolean, orientation?: 'horizontal' | 'vertical', lastItemFlexibleSelector?: string): { itemWidths: number[]; gap: number; overflowWidth: number; outerMarginLeft: number; outerMarginRight: number; lastItemFlexibleWidth?: number; }; export declare function hideUntilFit(total: number, itemWidths: number[], gap: number, overflowCost: number, hideOrder: CollapseUnit[], containerWidth: number): { hidden: Set; firstHidden: number | null; }; export declare function computeCollapseState({ containerSize, itemWidths, gap, overflowWidth, outerMarginLeft, outerMarginRight, collapseOrder, }: { containerSize: number; itemWidths: number[]; gap: number; overflowWidth: number; outerMarginLeft?: number; outerMarginRight?: number; collapseOrder: CollapseUnit[]; }): CollapseState; export declare function computeCollapsedMinWidth({ itemWidths, gap, overflowWidth, outerMarginLeft, outerMarginRight, collapseOrder, lastItemMinVisible, lastItemFlexibleWidth, }: { itemWidths: number[]; gap: number; overflowWidth: number; outerMarginLeft?: number; outerMarginRight?: number; collapseOrder: CollapseUnit[]; lastItemMinVisible?: number; lastItemFlexibleWidth?: number; }): number; export declare function collapseStatesEqual(a: CollapseState, b: CollapseState): boolean; export declare function buildVisibleTokens(items: ReactElement[], hiddenSet: Set, overflowAt: number, hiddenItems: ReactElement[], Overflow: OverflowComponent): Array<{ key: string | number; node: ReactNode; }>;