import React, { type ChangeEvent, type HTMLInputTypeAttribute, type ReactNode } from 'react';
import { type BoxProps } from '../Box/Box';
export interface FunInputProps<T = HTMLInputElement | HTMLTextAreaElement> {
    prefix?: ReactNode;
    suffix?: ReactNode;
    prefixIcon?: 'SearchIcon' | '$';
    placeholder?: string;
    value: string | number | readonly string[] | undefined;
    label?: string;
    onChange: (value: React.ChangeEvent<T>) => void;
    onKeyDown?: (e: React.KeyboardEvent<T>) => void;
    onKeySubmit?: () => void;
    onPaste?: (e: React.ClipboardEvent<T>) => void;
    onMouseDown?: (e: React.MouseEvent<T>) => void;
    onFocus?: () => void;
    onBlur?: () => void;
    inputStyle?: React.CSSProperties;
    inputProps?: React.HTMLProps<T> & {
        type?: HTMLInputTypeAttribute;
    };
    error?: string | boolean;
    alwaysFocused?: boolean;
    /** Color meant for prefix & suffix elements. Defaults to secondaryText. */
    adornmentColor?: BoxProps['color'];
    fontFamily?: BoxProps['fontFamily'];
    textWeight?: BoxProps['fontWeight'];
    ignoreFontSize?: boolean;
    overrideBorderWidth?: BoxProps['borderWidth'];
    overrideBackground?: BoxProps['background'];
    borderRadius?: BoxProps['borderRadius'];
    isLoading?: boolean;
    /** Allow multiline input. Defaults to false. This option replaces the internal `input` element with a `textarea` element. */
    allowMultiline?: T extends HTMLInputElement ? false : true;
    /** Remove default transitions from the input wrapper and base styles. Defaults to false. */
    ignoreBaseTransitions?: boolean;
    /** Color for decimal digits. When specified, decimal portion will be rendered in this color. */
    decimalsColor?: BoxProps['color'];
    /** Decimal separator character based on locale (e.g., '.' for en-US, ',' for de-DE). Required for decimalsColor to work. */
    decimalSeparator?: string;
    testId?: string;
}
export type FunInputChangeEvent = ChangeEvent<HTMLInputElement | HTMLTextAreaElement>;
export declare const FunInput: React.ForwardRefExoticComponent<FunInputProps<HTMLTextAreaElement | HTMLInputElement> & React.RefAttributes<HTMLTextAreaElement | HTMLInputElement>>;
