import { ReactElement, ReactNode, RefObject } from 'react'; import { BaseProps, BlockStyleProps, DimensionStyleProps, PositionStyleProps, Props, Styles } from '../../../tasty'; import { FormFieldProps } from '../../../shared'; import type { AriaTextFieldProps } from '@react-types/textfield'; export declare const INPUT_WRAPPER_STYLES: Styles; export declare const DEFAULT_INPUT_STYLES: Styles; export interface JengaTextInputBaseProps extends BaseProps, PositionStyleProps, DimensionStyleProps, BlockStyleProps, AriaTextFieldProps, FormFieldProps { /** Left input icon */ icon?: ReactElement; /** Input decoration before the main input */ prefix?: ReactNode; /** Input decoration after the main input */ suffix?: ReactNode; /** Suffix position goes before or after the validation and loading statuses */ suffixPosition?: 'before' | 'after'; /** Whether the input is multiline */ multiLine?: boolean; /** Whether the input should have auto focus */ autoFocus?: boolean; /** Direct input props */ inputProps?: Props; /** Direct input wrapper props */ wrapperProps?: Props; /** The input ref */ inputRef?: RefObject; /** The wrapper ref */ wrapperRef?: RefObject; /** Whether the input has the loading status */ isLoading?: boolean; /** The loading status indicator */ loadingIndicator?: ReactNode; /** Style map for the input */ inputStyles?: Styles; /** Style map for the input wrapper */ wrapperStylesProp?: Styles; /** The number of rows for the input. Only applies to textarea. */ rows?: number; /** The resize CSS property sets whether an element is resizable, and if so, in which directions. */ resize?: Styles['resize']; /** The size of the input */ size?: 'small' | 'default' | 'large' | string; /** if fullWidth === false ? width = [60%, 70%, 100%] : 100% to comply with the design system*/ fullWidth?: boolean; } declare const _TextInputBase: import("react").ForwardRefExoticComponent>; export { _TextInputBase as TextInputBase }; export { AriaTextFieldProps };