/**
 * @file computeOverflow.ts
 * @input Plain measurements (item widths, gap, available width, indicator width, limits)
 * @output Pure overflow computation: how many items are visible and their row layout
 * @position Pure helper consumed by useOverflow; contains no DOM or React code so the
 *           fit/clamp math and the multi-row packing can be unit-tested in isolation.
 *
 * There is a single source of truth for `visibleCount`:
 *   visibleCount = clamp(fitCount, minVisibleItems, maxVisibleItems ?? itemCount)
 *
 * SYNC: When modified, update:
 * - /packages/core/src/hooks/useOverflow.ts (the only caller)
 */
export interface ComputeOverflowInput {
    /** Measured widths of each item, in original DOM order. */
    widths: number[];
    /** Gap between items, in pixels. */
    gap: number;
    /** Width available to lay items out, in pixels. */
    availableWidth: number;
    /** Measured width of the overflow indicator (0 if none). */
    indicatorWidth: number;
    /** Floor — always show at least this many items. */
    minVisibleItems: number;
    /** Ceiling — never show more than this many items. `undefined` = no cap. */
    maxVisibleItems?: number;
    /**
     * Bounded multi-row: wrap items across up to this many rows, then collapse
     * the rest into the overflow indicator. `undefined` (or `1`) = single line.
     */
    maxRows?: number;
    /** Which end items collapse from. */
    collapseFrom: 'start' | 'end';
}
export interface ComputeOverflowResult {
    /** Number of items that should be rendered in the visible container. */
    visibleCount: number;
    /** Number of rows the visible items occupy (always 1 for the single-line path). */
    rows: number;
}
/**
 * Pure overflow computation. Given plain measurements and the configured
 * limits, return how many items should be visible and how many rows they
 * occupy. No DOM, no React — safe to unit-test directly.
 */
export declare function computeOverflow(input: ComputeOverflowInput): ComputeOverflowResult;
//# sourceMappingURL=computeOverflow.d.ts.map