import { SliderFillRange, SliderMark, SliderMathOptions, SliderRangeMark, SliderRangeOutputValueFallback, SliderRangeValue } from "./types";
export declare function prepareSliderMarks<TMark extends SliderMark>(marks: readonly TMark[] | undefined, min: number, max: number): TMark[];
export declare function getSliderMarkPercent<TMark extends SliderMark>(mark: TMark, marks: readonly TMark[], options: SliderMathOptions<TMark>): number;
/**
 * Возвращает визуальную позицию значения: по шкале min/max или по позиции ближайшей mark.
 */
export declare function valueToSliderVisualPercent<TMark extends SliderMark>(value: number, options: SliderMathOptions<TMark>): number;
/**
 * Возвращает mark, который визуально ближе всего к pointer percent.
 */
export declare function getClosestSliderMarkByPercent<TMark extends SliderMark>(percent: number, options: SliderMathOptions<TMark>): TMark | undefined;
export declare function snapSliderValue<TMark extends SliderMark>(value: number, options: SliderMathOptions<TMark>): number;
export declare function normalizeSingleSliderValue(value: number | undefined, options: SliderMathOptions): number;
/**
 * Возвращает публичное значение mark: `outputValue`, если оно задано, иначе координату `value`.
 */
export declare function getRangeMarkOutputValue(mark: SliderRangeMark | undefined): number | null | undefined;
/**
 * Готовит range-значение к внешней сериализации, заменяя открытые границы на заданные подстановки.
 *
 * Функция не участвует во внутренней логике слайдера: `SliderRange` и `SliderRangeInput`
 * продолжают отдавать `null` через `onChange`, а потребитель явно применяет подстановку
 * рядом со своим обработчиком сохранения/отправки.
 */
export declare function resolveSliderRangeOutputValue(value: SliderRangeValue, fallback: SliderRangeOutputValueFallback | undefined): SliderRangeValue;
/**
 * Нормализует публичное range-значение, сохраняя null как открытую границу.
 */
export declare function normalizeRangeSliderValue(value: SliderRangeValue | undefined, options: SliderMathOptions<SliderRangeMark>): SliderRangeValue;
/**
 * Переводит публичный range tuple в finite-позиции thumb, где null стоит на краю шкалы.
 */
export declare function getRangeSliderVisualValue(value: SliderRangeValue | undefined, options: SliderMathOptions<SliderRangeMark>): [number, number];
/**
 * Преобразует координату шкалы, выбранную pointer/keyboard, в публичное range-значение.
 */
export declare function visualValueToRangeEndpoint(value: number, options: SliderMathOptions<SliderRangeMark>): number | null;
export declare function getClosestSliderThumb(targetValue: number, value: readonly [number, number]): 0 | 1;
export declare function resolveSliderFillRange(value: number | readonly [number, number], options: SliderMathOptions): SliderFillRange;
//# sourceMappingURL=sliderMath.d.ts.map