import { SliderOffsetBoundaries } from '../types/slider';
import { SliderType } from '../types/type';
export declare const calculateChange: ({ event, container, offsetBoundaries, }: {
    event: MouseEvent | React.TouchEvent<Element> | React.MouseEvent<Element, MouseEvent>;
    container: HTMLDivElement;
    offsetBoundaries: SliderOffsetBoundaries;
}) => number;
/**
 * Given the offset of the slider, calculate the value
 * @param max
 * @param min
 * @param step
 * @param offset
 * @returns
 */
export declare const calcValueByOffset: ({ max, min, step, offset, offsetBoundaries, }: {
    max: number;
    min: number;
    step: number;
    offset: number;
    offsetBoundaries: SliderOffsetBoundaries;
}) => number;
/**
 * Calculates the closest valid value based on the given parameters.
 * @param max - The maximum value allowed.
 * @param min - The minimum value allowed.
 * @param step - The step size between values.
 * @param initialStepOffset - The initial offset for the step.
 * @param value - The value to calculate the closest valid value for.
 * @returns The closest valid value based on the given parameters.
 */
export declare const calcScaleValueWithStepOffset: ({ max, min, step, initialStepOffset, value, }: {
    max: number;
    min: number;
    step: number;
    initialStepOffset: number;
    value: number;
}) => number;
/**
 * Calculates the scale value without considering the step offset.
 * @param {object} options - The options object.
 * @param {number} options.max - The maximum value of the scale.
 * @param {number} options.min - The minimum value of the scale.
 * @param {number} options.step - The step value of the scale.
 * @param {number} options.value - The current value of the scale.
 * @returns {number} - The calculated scale value without step offset.
 */
export declare const calcScaleValueWithoutStepOffset: ({ max, min, step, value, }: {
    max: number;
    min: number;
    step: number;
    value: number;
}) => number;
/**
 * Calculates the scaled value based on the given parameters.
 * If `initialStepOffset` is provided, it uses `calcScaleValueWithStepOffset` function,
 * otherwise it uses `calcScaleValueWithoutStepOffset` function.
 * Setting initialStepOffset will change the available steps to be from initialStepOffset to max.
 * Without initialStepOffset, min=1, step=5 -> [1, 6, 11, 16, ...]
 * With initialStepOffset=0, min=1, step=5 -> [1, 5, 10, 15, ...]
 * @param max - The maximum value of the scale.
 * @param min - The minimum value of the scale.
 * @param step - The step size of the scale.
 * @param initialStepOffset - The initial step offset (optional).
 * @param value - The value to be scaled.
 * @returns The scaled value.
 */
export declare const calcScaleValue: ({ max, min, step, initialStepOffset, value, }: {
    max: number;
    min: number;
    step: number;
    initialStepOffset?: number;
    value: number;
}) => number;
export declare const calcNewRangeValue: ({ prevValue, newValue, activePointer, }: {
    prevValue: number[];
    newValue: number;
    activePointer: React.MutableRefObject<string>;
}) => number[];
export declare const getScale: ({ type, max, min, step, initialStepOffset, }: {
    type: SliderType;
    max: number;
    min: number;
    step: number;
    initialStepOffset?: number;
}) => {
    showScale: boolean;
    scaleOffsets: number[];
};
export declare const getOffset: ({ range, max, min, value, offsetBoundaries, }: {
    range: boolean;
    max: number;
    min: number;
    value: number | number[];
    offsetBoundaries: SliderOffsetBoundaries;
}) => {
    offset: number;
    offsetLeft: number;
    offsetRight: number;
};
export declare const shouldUpdateLeftThumb: ({ activePointer, newValue, prevValue, }: {
    activePointer: string;
    newValue: number;
    prevValue: number[];
}) => boolean;
export declare const shouldUpdateRightThumb: ({ activePointer, newValue, prevValue, }: {
    activePointer: string;
    newValue: number;
    prevValue: number[];
}) => boolean;
export declare const equalsRangeValues: ({ values1, values2, }: {
    values1: number[];
    values2: number[];
}) => boolean;
export declare const calcDefaultValue: ({ range, max, min, step, initialStepOffset, value, }: {
    range: boolean;
    max: number;
    min: number;
    step: number;
    initialStepOffset?: number;
    value: number | number[];
}) => number | number[];
