import { HTMLChakraProps, SlotRecipeProps, UnstyledProp } from '@chakra-ui/react/styled-system';
import { InputProps as RaInputProps } from 'react-aria-components';
import { AriaButtonProps as RaButtonProps, AriaNumberFieldProps as RaNumberFieldProps } from 'react-aria';
import { OmitInternalProps } from '../../type-utils/omit-props';
export type NumberInputRecipeProps = {
/**
* Size variant of the number input
* @default "md"
*/
size?: SlotRecipeProps<"nimbusNumberInput">["size"];
/**
* Visual style variant of the number input
* @default "solid"
*/
variant?: SlotRecipeProps<"nimbusNumberInput">["variant"];
} & UnstyledProp;
export type NumberInputRootSlotProps = HTMLChakraProps<"div", NumberInputRecipeProps> & {
name?: string;
};
export type NumberInputLeadingElementSlotProps = HTMLChakraProps<"div", NumberInputRecipeProps>;
export type NumberInputTrailingElementSlotProps = HTMLChakraProps<"div", NumberInputRecipeProps>;
export type NumberInputInputSlotProps = HTMLChakraProps<"input", NumberInputRecipeProps> & RaInputProps;
export type NumberInputIncrementButtonSlotProps = HTMLChakraProps<"button", NumberInputRecipeProps> & RaButtonProps;
export type NumberInputDecrementButtonSlotProps = HTMLChakraProps<"button", NumberInputRecipeProps> & RaButtonProps;
export type ExcludedNumberInputProps = "onChange";
export type NumberInputProps = OmitInternalProps & RaNumberFieldProps & {
/**
* Ref forwarding to the input element
*/
ref?: React.Ref;
/**
* Optional element to display at the start of the input
* Respects text direction (left in LTR, right in RTL)
*/
leadingElement?: React.ReactNode;
/**
* Optional element to display at the end of the input
* Respects text direction (right in LTR, left in RTL)
*/
trailingElement?: React.ReactNode;
};