
import { Styles } from "../../../tasty/styles/types.js";
import { BaseProps, BlockStyleProps, OuterStyleProps, Props } from "../../../tasty/types.js";
import "../../../tasty/index.js";
import { FieldBaseProps } from "../../../shared/form.js";
import "../../../shared/index.js";
import * as react from "react";
import { ReactElement, ReactNode, RefObject } from "react";
import { AriaNumberFieldProps, AriaTextFieldProps as AriaTextFieldProps$1 } from "react-aria";

//#region src/components/fields/TextInput/TextInputBase.d.ts
declare const INPUT_WRAPPER_STYLES: Styles;
declare const DEFAULT_INPUT_STYLES: Styles;
interface CubeTextInputBaseProps extends BaseProps, OuterStyleProps, BlockStyleProps, Omit<AriaTextFieldProps$1, 'validate'>, FieldBaseProps {
  validate?: AriaTextFieldProps$1['validate'] | AriaNumberFieldProps['validate'];
  /** Left input icon */
  icon?: ReactElement | null;
  /** Input decoration before the main input */
  prefix?: ReactNode;
  /** Input decoration after the main input */
  suffix?: ReactNode;
  /** Suffix position goes before or after the validation and loading statuses */
  suffixPosition?: 'before' | 'after';
  /** Whether the input is multiline */
  multiLine?: boolean;
  /** Whether the input should have autofocus */
  autoFocus?: boolean;
  /** Direct input props */
  inputProps?: Props;
  /** Direct input wrapper props */
  wrapperProps?: Props;
  /** The input ref */
  inputRef?: RefObject<HTMLInputElement | HTMLTextAreaElement>;
  /** The wrapper ref */
  wrapperRef?: RefObject<HTMLDivElement>;
  /** Whether the input has the loading status */
  isLoading?: boolean;
  /** The loading status indicator */
  loadingIndicator?: ReactNode;
  /** Style map for the input */
  inputStyles?: Styles;
  /** The number of rows for the input. Only applies to textarea. */
  rows?: number;
  /** The resize CSS property sets whether an element is resizable, and if so, in which directions. */
  resize?: Styles['resize'];
  /** The size of the input */
  size?: 'small' | 'medium' | 'large' | (string & {});
  autocomplete?: string;
}
declare const TextInputBase: react.ForwardRefExoticComponent<Omit<CubeTextInputBaseProps, "ref"> & react.RefAttributes<unknown>>;
//#endregion
export { type AriaTextFieldProps$1 as AriaTextFieldProps, CubeTextInputBaseProps, DEFAULT_INPUT_STYLES, INPUT_WRAPPER_STYLES, TextInputBase };
//# sourceMappingURL=TextInputBase.d.ts.map