import type * as React from 'react'; /** * Shared field props that every form control accepts. * When any of these are set, the control wraps itself in Field internally. * When none are set, the control renders bare with zero overhead. */ export interface FieldProps { /** Label text above the control */ label?: string; /** Whether to show required indicator (*) */ required?: boolean; /** Icon after the label text */ labelIcon?: React.ReactNode; /** Tooltip content — renders an Info icon next to the label wrapped in Tooltip */ tooltip?: React.ReactNode; /** Content at top-right (e.g., "Optional", char count) */ topRight?: React.ReactNode; /** Description/hint text at bottom-left */ description?: React.ReactNode; /** Content at bottom-right (e.g., char count, help link) */ bottomRight?: React.ReactNode; /** Error message — sets state to 'destructive' and shows error text */ error?: string; /** Additional className for the field wrapper (not the control) */ fieldClassName?: string; } /** * List of field prop keys to destructure out of combined props. */ export declare const FIELD_PROP_KEYS: readonly ['label', 'required', 'labelIcon', 'tooltip', 'topRight', 'description', 'bottomRight', 'error', 'fieldClassName']; /** Check whether any field prop is set, meaning the control should wrap in Field. */ export declare function hasFieldProps(props: FieldProps): boolean; /** * Separate field props from control props. * Returns [fieldProps, controlProps]. */ export declare function splitFieldProps(props: T): [FieldProps, Omit];