import * as React from 'react';
import type { Form } from "../../form/index.mjs";
import { BaseUIComponentProps } from "../../internals/types.mjs";
/**
* Groups all parts of the field.
* Renders a `
` element.
*
* Documentation: [Base UI Field](https://base-ui.com/react/components/field)
*/
export declare const FieldRoot: React.ForwardRefExoticComponent & React.RefAttributes>;
export interface FieldValidityData {
state: {
badInput: boolean;
customError: boolean;
patternMismatch: boolean;
rangeOverflow: boolean;
rangeUnderflow: boolean;
stepMismatch: boolean;
tooLong: boolean;
tooShort: boolean;
typeMismatch: boolean;
valueMissing: boolean;
valid: boolean | null;
};
error: string;
errors: string[];
value: unknown;
initialValue: unknown;
}
export interface FieldRootActions {
validate: () => void;
}
export interface FieldRootState {
/**
* Whether the component should ignore user interaction.
*/
disabled: boolean;
/**
* Whether the field has been touched.
*/
touched: boolean;
/**
* Whether the field value has changed from its initial value.
*/
dirty: boolean;
/**
* Whether the field is valid.
*/
valid: boolean | null;
/**
* Whether the field has a value.
*/
filled: boolean;
/**
* Whether the field is focused.
*/
focused: boolean;
}
export interface FieldRootProps extends BaseUIComponentProps<'div', FieldRootState> {
/**
* Whether the component should ignore user interaction.
* Takes precedence over the `disabled` prop on the `` component.
* @default false
*/
disabled?: boolean | undefined;
/**
* Identifies the field when a form is submitted.
* Takes precedence over the `name` prop on the `` component.
*/
name?: string | undefined;
/**
* A function for custom validation. Return a string or an array of strings with
* the error message(s) if the value is invalid. Returning nothing, `null`, an empty
* string, or an empty array means the value is valid.
* Asynchronous functions are supported, but they do not prevent form submission
* when using `validationMode="onSubmit"`.
*/
validate?: ((value: unknown, formValues: Form.Values) => string | string[] | null | void | Promise) | undefined;
/**
* Determines when the field should be validated.
* This takes precedence over the `validationMode` prop on `