/** * Strategy for how a moving thumb interacts with its neighbours. * * - `"none"`: thumbs cannot cross; the pressed thumb is clamped at its * neighbour's boundary. * - `"push"`: the pressed thumb pushes its neighbours along. * - `"swap"`: thumbs swap identities when they cross. */ export type ThumbCollisionBehavior = "none" | "push" | "swap"; export interface ResolveThumbCollisionParams { behavior: ThumbCollisionBehavior; values: readonly number[]; currentValues?: readonly number[] | null | undefined; initialValues?: readonly number[] | null | undefined; pressedIndex: number; nextValue: number; min: number; max: number; step: number; minStepsBetweenValues: number; } export interface ResolveThumbCollisionResult { value: number | number[]; thumbIndex: number; didSwap: boolean; } /** * Applies the chosen collision `behavior` to compute the new thumb values * when the thumb at `pressedIndex` attempts to move to `nextValue`. Returns * both the updated values and the resolved thumb index (swap may change it). */ export declare function resolveThumbCollision({ behavior, values, currentValues, initialValues, pressedIndex, nextValue, min, max, step, minStepsBetweenValues, }: ResolveThumbCollisionParams): ResolveThumbCollisionResult; //# sourceMappingURL=resolve-thumb-collision.d.ts.map