import type { SyntheticEvent, InputHTMLAttributes, ReactNode, HTMLAttributes } from 'react';
type SegmentationProps = {
/**
* Форма границ компонента.
*/
segmentation?: 'clear';
/**
* Фон поля ввода.
*/
inputBackgroundType?: never;
} | {
segmentation?: string;
inputBackgroundType?: string;
};
export type NumberInputProps = {
/**
* Числовое значение.
*/
value?: string | number;
/**
* Минимальное значение.
*/
min?: number;
/**
* Максимальное значение.
*/
max?: number;
/**
* Шаг изменения значения.
* @default 1
*/
step?: number;
/**
* Количество знаков после запятой.
* @default 2
*/
precision?: number;
/**
* Контрол в состоянии загрузки.
*/
isLoading?: boolean;
/**
* Слот для контента загрузки.
*/
loader?: ReactNode;
/**
* Размер контрола.
*/
size?: string;
/**
* Вид компонента.
*/
view?: string;
/**
* view применяется с clear-токенами
*/
clear?: boolean;
/**
* Форма контрола.
*/
shape?: string;
/**
* Компонент неактивен.
*/
disabled?: boolean;
/**
* Слот для вспомогательного текста слева.
*/
textBefore?: string;
/**
* Слот для вспомогательного текста справа.
*/
textAfter?: string;
/**
* Пользовательская кнопка увеличения.
*/
customIncrementButton?: ReactNode;
/**
* Иконка кнопки увеличения.
*/
incrementIcon?: ReactNode;
/**
* Пользовательская кнопка уменьшения.
*/
customDecrementButton?: ReactNode;
/**
* Иконка кнопки уменьшения.
*/
decrementIcon?: ReactNode;
/**
* Доступность ввода значения вручную.
*/
isManualInput?: boolean;
/**
* Отображение компонента при отсутствии значения.
* @default 'input'
*/
displayWithoutValue?: 'input' | 'increment' | 'decrement';
/**
* Поведение кнопок при достижении крайних значений (min/max).
* 'disabled' — кнопка становится неактивной.
* 'hidden' — deprecated
* @default 'disabled'
*/
limitBehavior?: 'disabled' | 'hidden';
/**
* Вызывается при изменении значения.
*/
onChange?: (event: SyntheticEvent | null, value: number | string | undefined) => void;
/**
* Вызывается при нажатии на кнопку увеличения значения.
*/
onIncrement?: (value: number) => void;
/**
* Вызывается при нажатии на кнопку уменьшения значения.
*/
onDecrement?: (value: number) => void;
} & SegmentationProps & Omit, 'size' | 'onChange' | 'value'>;
export type NumberInputRootProps = {
size?: string;
view?: string;
shape?: string;
segmentation?: string;
clear?: boolean;
disabled?: boolean;
isLoading?: boolean;
} & HTMLAttributes;
export {};
//# sourceMappingURL=NumberInput.types.d.ts.map