import { TextFieldProps as AriaTextFieldProps } from 'react-aria-components/TextField';
import { ContextValue } from 'react-aria-components/slots';
import { StyleProps } from './style-utils';
import { ReactNode } from 'react';
import { FocusableRefValue, GlobalDOMAttributes, HelpTextProps, SpectrumLabelableProps } from '@react-types/shared';
import { InputProps } from 'react-aria-components/Input';
import { StyleString } from '../style/types';
export interface TextFieldRef<T extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement> extends FocusableRefValue<T, HTMLDivElement> {
    select(): void;
    getInputElement(): T | null;
}
export interface TextFieldProps extends Omit<AriaTextFieldProps, 'children' | 'className' | 'style' | 'render' | keyof GlobalDOMAttributes>, StyleProps, SpectrumLabelableProps, HelpTextProps, Pick<InputProps, 'placeholder'> {
    /**
     * The size of the text field.
     *
     * @default 'M'
     */
    size?: 'S' | 'M' | 'L' | 'XL';
}
export declare const TextFieldContext: import("react").Context<ContextValue<Partial<TextFieldProps>, TextFieldRef<HTMLInputElement>>>;
/**
 * TextFields are text inputs that allow users to input custom text entries
 * with a keyboard. Various decorations can be displayed around the field to
 * communicate the entry requirements.
 */
export declare const TextField: import("react").ForwardRefExoticComponent<TextFieldProps & import("react").RefAttributes<TextFieldRef<HTMLInputElement>>>;
export interface TextAreaProps extends Omit<TextFieldProps, 'type' | 'pattern'> {
}
export declare const TextAreaContext: import("react").Context<ContextValue<Partial<TextAreaProps>, TextFieldRef<HTMLTextAreaElement>>>;
/**
 * TextAreas are multiline text inputs, useful for cases where users have
 * a sizable amount of text to enter. They allow for all customizations that
 * are available to text fields.
 */
export declare const TextArea: import("react").ForwardRefExoticComponent<TextAreaProps & import("react").RefAttributes<TextFieldRef<HTMLTextAreaElement>>>;
export declare const TextFieldBase: import("react").ForwardRefExoticComponent<TextFieldProps & {
    children: ReactNode;
    fieldGroupCss?: StyleString | undefined;
} & import("react").RefAttributes<TextFieldRef<HTMLInputElement | HTMLTextAreaElement>>>;
