import { KeyboardEvent, MouseEvent as ReactMouseEvent, TouchEvent } from "react";
import { ISliderProps, SimpleValue, RangeValue } from "./types";
export declare function isEventFromHandle(e: MouseEvent | TouchEvent | ReactMouseEvent<HTMLDivElement>, handles: HTMLDivElement[]): boolean;
export declare function getMousePosition(e: MouseEvent | ReactMouseEvent<HTMLDivElement>, vertical?: boolean): number;
export declare function getTouchPosition(e: TouchEvent | TouchEvent<HTMLDivElement>, vertical?: boolean): number;
export declare function getPosition(e: MouseEvent | TouchEvent | ReactMouseEvent<HTMLDivElement>, vertical?: boolean): number;
export declare function ensureValueInRange(value: number, { max, min }: {
    max: number;
    min: number;
}): number;
export declare function ensureValuePrecision(value: number, { step, min }: {
    step: number;
    min: number;
}): number;
export declare const getSliderWidth: (vertical: boolean, sliderWidth?: string | number | undefined, defaultHeight?: number | string) => import("styled-components").FlattenSimpleInterpolation;
export declare const getIntervals: (min: number, max: number, step: number) => number[];
export declare function pauseEvent(e: MouseEvent | TouchEvent | KeyboardEvent<HTMLDivElement> | ReactMouseEvent<HTMLDivElement>): void;
export declare function isOutOfRange(value: SimpleValue, { min, max }: Pick<ISliderProps, "min" | "max">): boolean;
export declare function isValueOutOfRange(value: ISliderProps["value"], minMax: Pick<ISliderProps, "min" | "max">): boolean;
declare type ValueMutatorProps = {
    step?: number;
    max?: number;
    min?: number;
};
export declare function getKeyboardValueMutator(e: KeyboardEvent<HTMLDivElement>): (value: number, props: ValueMutatorProps) => number;
export declare function isNotTouchEvent(e: TouchEvent<HTMLDivElement> | TouchEvent): e is TouchEvent<HTMLDivElement>;
export declare function getSliderLength(vertical: boolean, node: HTMLDivElement): number;
export declare function getSliderStart(vertical: boolean, node: HTMLDivElement): number;
export declare function calcValue(offset: number, { min, max, vertical, node }: {
    min: number;
    max: number;
    vertical: boolean;
    node: HTMLDivElement;
}): number;
export declare function calcOffset(value: number, { min, max }: {
    min: number;
    max: number;
}): number;
export declare function compareRangeValues(prevValues: RangeValue, currValues: RangeValue): boolean;
export declare function trimAlignValue<V extends [number, number] | number>(value: V, options: Pick<ISliderProps, "step" | "min" | "max">): V;
export declare function calcValueByPos(position: number, options: ISliderProps, slider: HTMLDivElement | null): number;
export {};
