import React from 'react';
import { SliderPropOnChange, SliderValue, TrackPosition } from '../helper';
export declare type ActiveButton = 0 | 1 | null | undefined;
export declare type Stationing = {
    x: number;
    y: number;
    width: number;
    height: number;
};
export declare type UseSliderProps<RANGE extends boolean = false> = {
    disabled: boolean;
    range?: RANGE;
    value: SliderValue<RANGE>;
    min: number;
    max: number;
    step?: number | number[];
    onChange?: SliderPropOnChange<RANGE>;
    onAfterChange?: SliderPropOnChange<RANGE>;
    containerRef: React.RefObject<HTMLDivElement>;
    sliderRef: React.RefObject<HTMLDivElement | HTMLButtonElement>;
    buttonRefs: React.RefObject<HTMLButtonElement>[];
};
export declare type UseSliderValues = {
    onKeyPress: (e: React.KeyboardEvent, typeButton: ActiveButton) => void;
    onFocus: (e: React.FocusEvent<HTMLButtonElement> | React.MouseEvent, button: ActiveButton) => void;
    handlePress: (typeButton: ActiveButton) => void;
    onSliderClick: React.MouseEventHandler;
    activeButton: ActiveButton;
    currentValue: [number] | [number, number];
    popoverPosition: TrackPosition[];
};
export declare const isRangeParams: (params: UseSliderProps<boolean>) => params is UseSliderProps<true>;
export declare const isNotRangeParams: (params: UseSliderProps<boolean>) => params is UseSliderProps<false>;
export declare const trackPosition: (event: TouchEvent | MouseEvent) => TrackPosition;
export declare const getActiveValue: (value: number | [number, number], active: ActiveButton) => number;
export declare const detectActiveButton: (posittion: TrackPosition, buttons: React.RefObject<HTMLButtonElement>[]) => ActiveButton;
export declare const getValidValue: (value: number, min: number, max: number, step?: number | number[]) => number;
export declare const isValidValue: (value: number, min: number, max: number, step?: number | number[]) => boolean;
export declare const getValueByPosition: (position: TrackPosition, sliderRef: React.RefObject<HTMLDivElement | HTMLButtonElement>, min: number, max: number, step?: number | number[]) => number;
export declare const getNewValue: (changedValue: number, currentValue: number | [number, number], step: number | number[], min: number, max: number, activeButton: ActiveButton) => number | [number, number];
export declare const analyzeDivisionValue: (value: number, step: number | number[], min: number, max: number) => number;
