export type SliderScale = "linear" | "log"; /** Value → track position (0–100); "log" spaces by ratio, so equal drag = equal % change, not equal unit change. */ export declare function valueToPosition(value: number, min: number, max: number, scale: SliderScale): number; /** Track position (0–100) → value. Inverse of valueToPosition for the same min/max/scale. */ export declare function positionToValue(position: number, min: number, max: number, scale: SliderScale): number; /** Snaps onto the step grid anchored at min, then clamps into [min, max]. step <= 0 only clamps. */ export declare function snapToStep(value: number, min: number, max: number, step: number): number; /** Fails loudly on a configuration that can't map to a position — never a silent NaN downstream. */ export declare function assertRangeBounds(min: number, max: number, scale: SliderScale): void; /** Resolves the lower thumb's next value: snapped, then capped below the upper thumb by minDistance. */ export declare function resolveMinThumbValue(desired: number, min: number, max: number, step: number, otherValue: number, minDistance: number): number; /** Resolves the upper thumb's next value: snapped, then floored above the lower thumb by minDistance. */ export declare function resolveMaxThumbValue(desired: number, min: number, max: number, step: number, otherValue: number, minDistance: number): number; export declare function stepMarks(min: number, max: number, step: number): number[]; /** Arrow/Page key → signed step delta; null for a key this slider doesn't handle. */ export declare function nudgeDelta(key: string, step: number, bigStep: number, shiftKey: boolean): number | null;