import { default as React } from 'react'; import { StatusLevel } from '../../utils'; export type InputSize = "small" | "medium" | "large"; /** Label placement relative to the input field */ export type LabelPlacement = "above" | "outlined"; export interface InputProps extends Omit, "size"> { /** Label text or ReactNode (supports rich content like tooltip icons) */ label?: React.ReactNode; /** Helper text below input */ helperText?: string; /** Error message (shows error state) */ error?: string; /** Size variant */ size?: InputSize; /** Status for styling */ status?: StatusLevel; /** Icon at start of input */ icon?: React.ReactNode; /** Icon at end of input */ iconEnd?: React.ReactNode; /** Full width */ fullWidth?: boolean; /** Required indicator */ required?: boolean; /** Optional indicator (shows "optional" text) */ optional?: boolean; /** Custom className */ className?: string; /** * Label placement style. * - `'outlined'` — label sits on the input border (notched/Material-style). **Default.** * - `'above'` — label sits above the input with a gap (classic stack). */ labelPlacement?: LabelPlacement; } export declare const Input: React.MemoExoticComponent>>; export default Input;