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