import type * as React from 'react'; import type { Properties } from 'csstype'; import type { Override } from '../helpers/overrides'; import type { BaseInputProps, StateReducer, State, ADJOINED, SIZE } from '../input'; type SyntheticTextareaEvent = React.SyntheticEvent; export type Size = keyof typeof SIZE; export type SharedStyleProps = { $adjoined: keyof typeof ADJOINED; $disabled?: boolean; $error?: boolean; $isFocused?: boolean; $isReadOnly?: boolean; $positive?: boolean; $required?: boolean; $resize?: Properties['resize']; $size: Size; }; type BaseTextAreaProps = BaseInputProps; export type TextareaOverrides = { Root?: Override; } & BaseTextAreaProps['overrides']; export type TextareaProps = { overrides?: TextareaOverrides; resize?: Properties['resize']; /** Sets the size and number of visible text lines of the textarea element. */ rows?: number; maxLength?: number; } & BaseTextAreaProps; export type StatefulContainerProps = { children: (props: any) => React.ReactNode; initialState?: State; stateReducer?: StateReducer; onChange?: (e: SyntheticTextareaEvent) => unknown; onKeyDown?: (e: SyntheticTextareaEvent) => unknown; onKeyPress?: (e: SyntheticTextareaEvent) => unknown; onKeyUp?: (e: SyntheticTextareaEvent) => unknown; }; type OmitProps = { children: (props: any) => React.ReactNode; }; type FullStProps = TextareaProps & StatefulContainerProps; export type StatefulTextareaProps = Partial>; export {};