/**
 * Limita `n` al intervalo cerrado `[lo, hi]`.
 */
export declare function clamp(n: number, lo: number, hi: number): number;
/**
 * Aproxima `value` al múltiplo de `step` más cercano desde `min`, y acota a `[min, max]`.
 */
export declare function snapToStep(value: number, min: number, max: number, step: number): number;
/**
 * Garantiza `start <= end` y ambos dentro de `[min, max]`, aplicando `step` a cada extremo.
 * Si el valor de entrada cruza extremos, **ordena** (útil para estado controlado inválido);
 * durante la interacción usa {@link clampStartAgainstEnd} / {@link clampEndAgainstStart}.
 */
export declare function normalizeRangeValue(raw: {
    start: number;
    end: number;
}, min: number, max: number, step: number): {
    start: number;
    end: number;
};
/**
 * Mueve solo el extremo **inicio** hacia `newStartRaw`, manteniendo `end` fijo.
 * No intercambia extremos: si chocan, el inicio no supera a `end` (ambos pueden quedar iguales).
 */
export declare function clampStartAgainstEnd(newStartRaw: number, end: number, min: number, max: number, step: number): {
    start: number;
    end: number;
};
/**
 * Mueve solo el extremo **fin** hacia `newEndRaw`, manteniendo `start` fijo.
 * No intercambia extremos: si chocan, el fin no baja de `start`.
 */
export declare function clampEndAgainstStart(start: number, newEndRaw: number, min: number, max: number, step: number): {
    start: number;
    end: number;
};
//# sourceMappingURL=rangeValue.d.ts.map