import * as React from 'react';
import type { HTMLAttributesWithRootRef } from '../../types';
import { type CustomTouchEvent } from '../Touch/Touch';
export interface SliderBaseProps extends Omit, 'value' | 'defaultValue' | 'onChange'> {
/**
* Минимальное значение слайдера.
*/
min?: number;
/**
* Максимальное значение слайдера.
*/
max?: number;
/**
* Шаг изменения значения слайдера.
*/
step?: number;
/**
* Блокировка взаимодействия с компонентом.
*/
disabled?: boolean;
/**
* Тоже самое, что и `aria-label`, но на вход можно получать индекс текущего ползунка и в зависимости от этого выдавать разный текст.
*
* > Перебивает `aria-label`.
*/
getAriaLabel?: (index: number) => string;
/**
* В отличие от `aria-valuetext`, позволяет более гибко форматировать текст в зависимости от значения ползунка.
*
* Полезно при использовании компонента как неконтролируемого.
*
* > Перебивает `aria-valuetext`.
*/
getAriaValueText?: (value: number, index: number) => string;
/**
* Включает отображение всплывающей подсказки при взаимодействии с ползунком.
*/
withTooltip?: boolean;
/**
* Размер ползунка.
*/
size?: 's' | 'm' | 'l';
/**
* Передает атрибут `data-testid` для первого ползунка.
*/
startThumbTestId?: string;
/**
* Передает атрибут `data-testid` для второго ползунка когда `multiple=true`.
*/
endThumbTestId?: string;
}
export interface SliderProps extends SliderBaseProps {
/**
* Флаг множественного выбора (должен быть false или не указан).
*/
multiple?: false;
/**
* Текущее значение слайдера.
*/
value?: number;
/**
* Значение слайдера по умолчанию.
*/
defaultValue?: number;
/**
* Обработчик изменения значения слайдера.
*/
onChange?: (value: number, event: CustomTouchEvent | React.ChangeEvent) => void;
}
export interface SliderMultipleProps extends SliderBaseProps {
/**
* Флаг множественного выбора (должен быть true).
*/
multiple: true;
/**
* Текущие значения слайдера в виде массива [начальное, конечное].
*/
value?: [number, number];
/**
* Значения слайдера по умолчанию в виде массива [начальное, конечное].
*/
defaultValue?: [number, number];
/**
* Обработчик изменения значений слайдера.
*/
onChange?: (value: [number, number], event: CustomTouchEvent | React.ChangeEvent) => void;
}
/**
* @see https://vkui.io/components/slider
*/
export declare const Slider: ({ step, min, max, value: valueProp, multiple: multipleProp, defaultValue, disabled, className, getRootRef, getAriaLabel, getAriaValueText, startThumbTestId, endThumbTestId, onChange, withTooltip, size, style: styleProp, ...restProps }: SliderProps | SliderMultipleProps) => React.ReactNode;
//# sourceMappingURL=Slider.d.ts.map