export declare const enum TEXTAREA_STATE { Default = "default", Error = "error", Warning = "warning", Success = "success" } export declare const enum TEXTAREA_SIZE { Large = "large", Medium = "medium", Small = "small" } export declare const enum TEXTAREA_VARIANT { Default = "", Outlined = "outlined", Filled = "filled", Borderless = "borderless", Underlined = "underlined" } export declare const enum TEXTAREA_RESIZE { None = "none", Vertical = "vertical", Horizontal = "horizontal", Both = "both" } export interface FocusOptions { preventScroll?: boolean; cursor?: 'start' | 'end' | 'all' | number; select?: boolean; } export interface BlurOptions { preventScroll?: boolean; restoreCursor?: boolean; } export interface FocusChangeEvent { focused: boolean; cursorPosition?: number; selectedText?: string; } /** * Validation rule interface */ export interface ValidationRule { /** Validation function that returns true if valid */ validator: (value: string) => boolean | Promise; /** Error message to display if validation fails */ message: string; /** Rule severity level */ level?: 'error' | 'warning'; /** Whether this rule should block form submission */ blocking?: boolean; } /** * Validation result interface */ export interface TextareaValidationResult { /** Whether the current value is valid */ isValid: boolean; /** Array of validation messages (errors/warnings) */ messages: string[]; /** Validation level (error or warning) */ level: 'error' | 'warning' | 'success'; /** Whether validation is blocking */ blocking: boolean; } /** * Textarea change event detail interface */ export interface TextareaChangeEvent { /** Current textarea value */ value: string; /** Character count */ length: number; /** Whether max length is exceeded */ exceedsMaxLength: boolean; /** Validation result */ validation?: TextareaValidationResult; } /** * Textarea resize event detail interface */ export interface TextareaResizeEvent { /** New width in pixels */ width: number; /** New height in pixels */ height: number; /** Resize direction */ direction: 'horizontal' | 'vertical' | 'both'; } export declare const EMPTY_STRING = ""; /** * Common textarea configuration constants */ export declare const TEXTAREA_DEFAULTS: { readonly ROWS: 3; readonly COLS: 50; readonly MAX_LENGTH: 1000; readonly RESIZE: TEXTAREA_RESIZE.Vertical; readonly SIZE: TEXTAREA_SIZE.Medium; readonly STATE: TEXTAREA_STATE.Default; readonly VARIANT: TEXTAREA_VARIANT.Underlined; }; //# sourceMappingURL=textarea.types.d.ts.map