import React from 'react'; import { DefaultProps, FlowindSize, Selectors, Variants } from '../../styles'; import { InputDescription } from './input-description/input-description'; import { InputError } from './input-error/input-error'; import { InputLabel } from './input-label/input-label'; import { InputPlaceholder } from './input-placeholder/input-placeholder'; import { InputWrapper } from './input-wrapper/input-wrapper'; import useStyles from './Input.styles'; export type InputStylesNames = Selectors; export interface InputSharedProps { /** Left section of input */ addonBefore?: React.ReactNode; /** Right section of input */ addonAfter?: React.ReactNode; /** Prefix element of input, like icon */ prefix?: React.ReactNode; /** Suffix element of input, like icon */ suffix?: React.ReactNode; /** Width of prefix section */ prefixWidth?: React.CSSProperties['width']; /** Width of suffixWidth section */ suffixWidth?: React.CSSProperties['width']; /** Right section of input, similar to icon but on the right */ rightSection?: React.ReactNode; /** Width of right section, is used to calculate input padding-right */ rightSectionWidth?: React.CSSProperties['width']; /** Props spread to rightSection div element */ rightSectionProps?: Record; /** Properties spread to root element */ wrapperProps?: Record; /** Sets required on input element */ required?: boolean; /** Key of theme.radius or any valid CSS value to set border-radius, theme.defaultRadius by default */ radius?: FlowindSize; /** Defines input appearance, defaults to default in light color scheme and filled in dark */ variant?: Variants<'default' | 'filled' | 'unstyled'>; /** Disabled input state */ disabled?: boolean; /** Input size */ size?: FlowindSize; } export interface InputProps extends InputSharedProps, DefaultProps { /** Static css selector base */ __staticSelector?: string; /** Determines whether input has error styles */ error?: React.ReactNode; /** Will input have multiple lines? */ multiline?: boolean; /** Determines whether cursor on input should be pointer */ pointer?: boolean; } export declare const _Input: any; export declare const Input: ((props: import("../../utils/create-polymorphic-component").PolymorphicComponentProps) => React.ReactElement>) & Omit, "component" | keyof InputProps> & { ref?: any; }) | (InputProps & { component?: React.ElementType; })>, never> & { Wrapper: typeof InputWrapper; Label: typeof InputLabel; Description: typeof InputDescription; Error: typeof InputError; Placeholder: typeof InputPlaceholder; };