import * as React from 'react';
import type { HTMLAttributesWithRootRef } from '../../types';
import { type CustomTouchEvent } from '../Touch/Touch';
export interface SliderBaseProps extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, '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