import React from 'react';
import type { ComponentProps, ReactNode } from 'react';
export type TextInputVariant = 'outline' | 'ghost';
/** Where the active field message (error, success, or neutral) sits relative to the bordered control */
export type TextInputFieldMessagePlacement = 'outside' | 'inside';
export type TextInputProps = Omit<ComponentProps<'input'>, 'className'> & {
    /** Root class name */
    className?: string;
    /**
     * `outside` (default): message below the bordered wrapper.
     * `inside`: message under the value row, inside the border (error, success, or neutral).
     */
    fieldMessagePlacement?: TextInputFieldMessagePlacement;
    /** Optional label above the input */
    label?: string;
    /** Optional leading content (e.g. icon) inside the input area */
    leading?: ReactNode;
    /** Optional trailing content (e.g. clear button) inside the input area */
    trailing?: ReactNode;
    /** Optional suffix text shown after the input value, inside the field */
    trailingText?: string;
    /** Neutral/helper message below the input (no icon) */
    message?: ReactNode;
    /** Error message; shown when `error` is true, with `errorMessageIcon` */
    errorMessage?: ReactNode;
    /** Icon before error text (default: exclamation) */
    errorMessageIcon?: ReactNode;
    /** Success message below the input */
    successMessage?: ReactNode;
    /** Icon before success text (default: checkmark) */
    successMessageIcon?: ReactNode;
    /** When true, error border and error styling */
    error?: boolean;
    /** `outline` = border always; `ghost` = border on focus */
    variant?: TextInputVariant;
};
export declare const TextInput: React.ForwardRefExoticComponent<Omit<TextInputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
//# sourceMappingURL=TextInput.d.ts.map