import { FieldName } from '@conform-to/dom';
import { StandardSchemaV1 } from './standard-schema';
import { FormRef, FormsConfig, FormContext, FormMetadata, FormOptions, FieldMetadata, InferOutput, IntentDispatcher, InferFormShape, RequireKey, FormHandle } from './types';
export declare function configureForms<BaseErrorShape = any, BaseSchema = StandardSchemaV1, SchemaErrorShape = string[], CustomFormMetadata extends Record<string, unknown> = {}, CustomFieldMetadata extends Record<string, unknown> = {}>(config?: Partial<FormsConfig<BaseErrorShape, BaseSchema, SchemaErrorShape, CustomFormMetadata, CustomFieldMetadata>>): {
    FormProvider: (props: {
        context: FormContext<BaseErrorShape>;
        children: React.ReactNode;
    }) => React.ReactElement;
    useForm: {
        <Schema extends BaseSchema, ErrorShape extends BaseErrorShape, Value = InferOutput<Schema>>(schema: Schema, options: RequireKey<FormOptions<InferFormShape<Schema>, ErrorShape, Value, Schema, SchemaErrorShape>, "onValidate">): FormHandle<InferFormShape<Schema>, ErrorShape, CustomFormMetadata, CustomFieldMetadata>;
        <Schema extends BaseSchema, ErrorShape extends BaseErrorShape = SchemaErrorShape extends BaseErrorShape ? SchemaErrorShape : BaseErrorShape, Value = InferOutput<Schema>>(schema: Schema, options: RequireKey<FormOptions<InferFormShape<Schema>, ErrorShape, Value, Schema, SchemaErrorShape>, SchemaErrorShape extends BaseErrorShape ? never : "onValidate">): FormHandle<InferFormShape<Schema>, ErrorShape, CustomFormMetadata, CustomFieldMetadata>;
        <FormShape extends Record<string, any> = Record<string, any>, ErrorShape extends BaseErrorShape = BaseErrorShape, Value = undefined>(options: RequireKey<FormOptions<FormShape, ErrorShape, Value, undefined, SchemaErrorShape>, "onValidate">): FormHandle<FormShape, ErrorShape, CustomFormMetadata, CustomFieldMetadata>;
    };
    useFormMetadata: (options?: {
        formId?: string;
    }) => FormMetadata<BaseErrorShape, CustomFormMetadata, CustomFieldMetadata>;
    useField: <FieldShape = any>(name: FieldName<FieldShape>, options?: {
        formId?: string;
    }) => FieldMetadata<FieldShape, BaseErrorShape, CustomFieldMetadata>;
    useIntent: <FormShape extends Record<string, any>>(formRef: FormRef) => IntentDispatcher<FormShape>;
    config: FormsConfig<BaseErrorShape, BaseSchema, SchemaErrorShape, CustomFormMetadata, CustomFieldMetadata>;
};
/**
 * Provides form context to child components.
 * Stacks contexts to support nested forms, with latest context taking priority.
 */
export declare const FormProvider: (props: {
    context: FormContext<any>;
    children: React.ReactNode;
}) => React.ReactElement;
/**
 * The main React hook for form management. Handles form state, validation, and submission
 * while providing access to form metadata, field objects, and form actions.
 *
 * It can be called in two ways:
 * - **Schema first**: Pass a schema as the first argument for automatic validation with type inference
 * - **Manual configuration**: Pass options with custom `onValidate` handler for manual validation
 *
 * See https://conform.guide/api/react/future/useForm
 *
 * **Schema first setup with zod:**
 *
 * ```tsx
 * const { form, fields } = useForm(zodSchema, {
 *   lastResult,
 *   shouldValidate: 'onBlur',
 * });
 *
 * return (
 *   <form {...form.props}>
 *     <input name={fields.email.name} defaultValue={fields.email.defaultValue} />
 *     <div>{fields.email.errors}</div>
 *   </form>
 * );
 * ```
 *
 * **Manual configuration setup with custom validation:**
 *
 * ```tsx
 * const { form, fields } = useForm({
 *   onValidate({ payload, error }) {
 *     if (!payload.email) {
 *       error.fieldErrors.email = ['Required'];
 *     }
 *     return error;
 *   }
 * });
 *
 * return (
 *   <form {...form.props}>
 *     <input name={fields.email.name} defaultValue={fields.email.defaultValue} />
 *     <div>{fields.email.errors}</div>
 *   </form>
 * );
 * ```
 */
export declare const useForm: {
    <Schema extends StandardSchemaV1<unknown, unknown>, ErrorShape extends any, Value = InferOutput<Schema>>(schema: Schema, options: {
        id?: string | undefined | undefined;
        key?: string | undefined | undefined;
        defaultValue?: import("./types").DefaultValue<InferFormShape<Schema>> | undefined;
        onInput?: import("./types").InputHandler | undefined;
        onBlur?: import("./types").BlurHandler | undefined;
        constraint?: Record<string, import("@conform-to/dom/future").ValidationAttributes> | undefined;
        lastResult?: import("@conform-to/dom/future").SubmissionResult<ErrorShape> | null | undefined;
        shouldValidate?: "onSubmit" | "onBlur" | "onInput" | undefined | undefined;
        shouldRevalidate?: "onSubmit" | "onBlur" | "onInput" | undefined | undefined;
        onSubmit?: import("./types").SubmitHandler<InferFormShape<Schema>, NoInfer<ErrorShape>, NoInfer<Value>> | undefined;
        onError?: import("./types").ErrorHandler<NoInfer<ErrorShape>> | undefined;
        serialize?: import("@conform-to/dom/future").CustomSerialize | undefined;
        schemaOptions?: import("./types").InferOptions<Schema> | undefined;
        onValidate: import("./types").ValidateHandler<ErrorShape, Value, InferOutput<Schema>, string[]>;
    }): FormHandle<InferFormShape<Schema>, ErrorShape, {}, {}>;
    <Schema extends StandardSchemaV1<unknown, unknown>, ErrorShape extends any = string[], Value = InferOutput<Schema>>(schema: Schema, options: {
        id?: string | undefined | undefined;
        key?: string | undefined | undefined;
        defaultValue?: import("./types").DefaultValue<InferFormShape<Schema>> | undefined;
        onInput?: import("./types").InputHandler | undefined;
        onBlur?: import("./types").BlurHandler | undefined;
        constraint?: Record<string, import("@conform-to/dom/future").ValidationAttributes> | undefined;
        lastResult?: import("@conform-to/dom/future").SubmissionResult<ErrorShape> | null | undefined;
        shouldValidate?: "onSubmit" | "onBlur" | "onInput" | undefined | undefined;
        shouldRevalidate?: "onSubmit" | "onBlur" | "onInput" | undefined | undefined;
        onValidate?: import("./types").ValidateHandler<ErrorShape, Value, InferOutput<Schema>, string[]> | undefined;
        onSubmit?: import("./types").SubmitHandler<InferFormShape<Schema>, NoInfer<ErrorShape>, NoInfer<Value>> | undefined;
        onError?: import("./types").ErrorHandler<NoInfer<ErrorShape>> | undefined;
        serialize?: import("@conform-to/dom/future").CustomSerialize | undefined;
        schemaOptions?: import("./types").InferOptions<Schema> | undefined;
    }): FormHandle<InferFormShape<Schema>, ErrorShape, {}, {}>;
    <FormShape extends Record<string, any> = Record<string, any>, ErrorShape extends any = any, Value = undefined>(options: {
        id?: string | undefined | undefined;
        key?: string | undefined | undefined;
        defaultValue?: import("./types").DefaultValue<FormShape> | undefined;
        onInput?: import("./types").InputHandler | undefined;
        onBlur?: import("./types").BlurHandler | undefined;
        constraint?: Record<string, import("@conform-to/dom/future").ValidationAttributes> | undefined;
        lastResult?: import("@conform-to/dom/future").SubmissionResult<ErrorShape> | null | undefined;
        shouldValidate?: "onSubmit" | "onBlur" | "onInput" | undefined | undefined;
        shouldRevalidate?: "onSubmit" | "onBlur" | "onInput" | undefined | undefined;
        onSubmit?: import("./types").SubmitHandler<FormShape, NoInfer<ErrorShape>, NoInfer<Value>> | undefined;
        onError?: import("./types").ErrorHandler<NoInfer<ErrorShape>> | undefined;
        serialize?: import("@conform-to/dom/future").CustomSerialize | undefined;
        schemaOptions?: undefined;
        onValidate: import("./types").ValidateHandler<ErrorShape, Value, undefined, string[]>;
    }): FormHandle<FormShape, ErrorShape, {}, {}>;
};
/**
 * A React hook that provides access to form-level metadata and state.
 * Requires `FormProvider` context when used in child components.
 *
 * See https://conform.guide/api/react/future/useFormMetadata
 *
 * **Example:**
 * ```tsx
 * function ErrorSummary() {
 *   const form = useFormMetadata();
 *
 *   if (form.valid) return null;
 *
 *   return (
 *     <div>Please fix {Object.keys(form.fieldErrors).length} errors</div>
 *   );
 * }
 * ```
 */
export declare const useFormMetadata: (options?: {
    formId?: string;
}) => Readonly<{
    key: string;
    id: string;
    descriptionId: string;
    errorId: string;
    touched: boolean;
    valid: boolean;
    invalid: boolean;
    errors: any;
    fieldErrors: Record<string, any>;
    defaultValue: Record<string, unknown>;
    props: Readonly<{
        id: string;
        onSubmit: React.FormEventHandler<HTMLFormElement>;
        onBlur: React.FocusEventHandler<HTMLFormElement>;
        onInput: React.FormEventHandler<HTMLFormElement>;
        noValidate: boolean;
    }>;
    context: FormContext<any>;
    getField<FieldShape>(name: import("@conform-to/dom/future").FieldName<FieldShape>): Readonly<{
        required?: boolean | undefined | undefined;
        minLength?: number | undefined | undefined;
        maxLength?: number | undefined | undefined;
        min?: string | number | undefined | undefined;
        max?: string | number | undefined | undefined;
        step?: string | number | undefined | undefined;
        multiple?: boolean | undefined | undefined;
        pattern?: string | undefined | undefined;
        accept?: string | undefined | undefined;
        key: string | undefined;
        name: import("@conform-to/dom/future").FieldName<FieldShape>;
        id: string;
        descriptionId: string;
        errorId: string;
        formId: string;
        defaultValue: string;
        defaultOptions: string[];
        defaultChecked: boolean;
        defaultPayload: unknown;
        touched: boolean;
        valid: boolean;
        invalid: boolean;
        errors: any;
        fieldErrors: Record<string, any>;
        ariaInvalid: boolean | undefined;
        ariaDescribedBy: string | undefined;
        getFieldset: <FieldsetShape = keyof NonNullable<FieldShape> extends never ? unknown : FieldShape>() => import("./types").Fieldset<FieldsetShape, any, {}>;
        getFieldList: <FieldItemShape = [FieldShape] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
            required?: boolean | undefined | undefined;
            minLength?: number | undefined | undefined;
            maxLength?: number | undefined | undefined;
            min?: string | number | undefined | undefined;
            max?: string | number | undefined | undefined;
            step?: string | number | undefined | undefined;
            multiple?: boolean | undefined | undefined;
            pattern?: string | undefined | undefined;
            accept?: string | undefined | undefined;
            key: string | undefined;
            name: import("@conform-to/dom/future").FieldName<FieldItemShape>;
            id: string;
            descriptionId: string;
            errorId: string;
            formId: string;
            defaultValue: string;
            defaultOptions: string[];
            defaultChecked: boolean;
            defaultPayload: unknown;
            touched: boolean;
            valid: boolean;
            invalid: boolean;
            errors: any;
            fieldErrors: Record<string, any>;
            ariaInvalid: boolean | undefined;
            ariaDescribedBy: string | undefined;
            getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape> extends never ? unknown : FieldItemShape>() => import("./types").Fieldset<FieldsetShape, any, {}>;
            getFieldList: <FieldItemShape_1 = [FieldItemShape] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                required?: boolean | undefined | undefined;
                minLength?: number | undefined | undefined;
                maxLength?: number | undefined | undefined;
                min?: string | number | undefined | undefined;
                max?: string | number | undefined | undefined;
                step?: string | number | undefined | undefined;
                multiple?: boolean | undefined | undefined;
                pattern?: string | undefined | undefined;
                accept?: string | undefined | undefined;
                key: string | undefined;
                name: import("@conform-to/dom/future").FieldName<FieldItemShape_1>;
                id: string;
                descriptionId: string;
                errorId: string;
                formId: string;
                defaultValue: string;
                defaultOptions: string[];
                defaultChecked: boolean;
                defaultPayload: unknown;
                touched: boolean;
                valid: boolean;
                invalid: boolean;
                errors: any;
                fieldErrors: Record<string, any>;
                ariaInvalid: boolean | undefined;
                ariaDescribedBy: string | undefined;
                getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_1> extends never ? unknown : FieldItemShape_1>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                getFieldList: <FieldItemShape_2 = [FieldItemShape_1] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                    required?: boolean | undefined | undefined;
                    minLength?: number | undefined | undefined;
                    maxLength?: number | undefined | undefined;
                    min?: string | number | undefined | undefined;
                    max?: string | number | undefined | undefined;
                    step?: string | number | undefined | undefined;
                    multiple?: boolean | undefined | undefined;
                    pattern?: string | undefined | undefined;
                    accept?: string | undefined | undefined;
                    key: string | undefined;
                    name: import("@conform-to/dom/future").FieldName<FieldItemShape_2>;
                    id: string;
                    descriptionId: string;
                    errorId: string;
                    formId: string;
                    defaultValue: string;
                    defaultOptions: string[];
                    defaultChecked: boolean;
                    defaultPayload: unknown;
                    touched: boolean;
                    valid: boolean;
                    invalid: boolean;
                    errors: any;
                    fieldErrors: Record<string, any>;
                    ariaInvalid: boolean | undefined;
                    ariaDescribedBy: string | undefined;
                    getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_2> extends never ? unknown : FieldItemShape_2>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                    getFieldList: <FieldItemShape_3 = [FieldItemShape_2] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                        required?: boolean | undefined | undefined;
                        minLength?: number | undefined | undefined;
                        maxLength?: number | undefined | undefined;
                        min?: string | number | undefined | undefined;
                        max?: string | number | undefined | undefined;
                        step?: string | number | undefined | undefined;
                        multiple?: boolean | undefined | undefined;
                        pattern?: string | undefined | undefined;
                        accept?: string | undefined | undefined;
                        key: string | undefined;
                        name: import("@conform-to/dom/future").FieldName<FieldItemShape_3>;
                        id: string;
                        descriptionId: string;
                        errorId: string;
                        formId: string;
                        defaultValue: string;
                        defaultOptions: string[];
                        defaultChecked: boolean;
                        defaultPayload: unknown;
                        touched: boolean;
                        valid: boolean;
                        invalid: boolean;
                        errors: any;
                        fieldErrors: Record<string, any>;
                        ariaInvalid: boolean | undefined;
                        ariaDescribedBy: string | undefined;
                        getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_3> extends never ? unknown : FieldItemShape_3>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                        getFieldList: <FieldItemShape_4 = [FieldItemShape_3] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                            required?: boolean | undefined | undefined;
                            minLength?: number | undefined | undefined;
                            maxLength?: number | undefined | undefined;
                            min?: string | number | undefined | undefined;
                            max?: string | number | undefined | undefined;
                            step?: string | number | undefined | undefined;
                            multiple?: boolean | undefined | undefined;
                            pattern?: string | undefined | undefined;
                            accept?: string | undefined | undefined;
                            key: string | undefined;
                            name: import("@conform-to/dom/future").FieldName<FieldItemShape_4>;
                            id: string;
                            descriptionId: string;
                            errorId: string;
                            formId: string;
                            defaultValue: string;
                            defaultOptions: string[];
                            defaultChecked: boolean;
                            defaultPayload: unknown;
                            touched: boolean;
                            valid: boolean;
                            invalid: boolean;
                            errors: any;
                            fieldErrors: Record<string, any>;
                            ariaInvalid: boolean | undefined;
                            ariaDescribedBy: string | undefined;
                            getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_4> extends never ? unknown : FieldItemShape_4>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                            getFieldList: <FieldItemShape_5 = [FieldItemShape_4] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                                required?: boolean | undefined | undefined;
                                minLength?: number | undefined | undefined;
                                maxLength?: number | undefined | undefined;
                                min?: string | number | undefined | undefined;
                                max?: string | number | undefined | undefined;
                                step?: string | number | undefined | undefined;
                                multiple?: boolean | undefined | undefined;
                                pattern?: string | undefined | undefined;
                                accept?: string | undefined | undefined;
                                key: string | undefined;
                                name: import("@conform-to/dom/future").FieldName<FieldItemShape_5>;
                                id: string;
                                descriptionId: string;
                                errorId: string;
                                formId: string;
                                defaultValue: string;
                                defaultOptions: string[];
                                defaultChecked: boolean;
                                defaultPayload: unknown;
                                touched: boolean;
                                valid: boolean;
                                invalid: boolean;
                                errors: any;
                                fieldErrors: Record<string, any>;
                                ariaInvalid: boolean | undefined;
                                ariaDescribedBy: string | undefined;
                                getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_5> extends never ? unknown : FieldItemShape_5>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                                getFieldList: <FieldItemShape_6 = [FieldItemShape_5] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                                    required?: boolean | undefined | undefined;
                                    minLength?: number | undefined | undefined;
                                    maxLength?: number | undefined | undefined;
                                    min?: string | number | undefined | undefined;
                                    max?: string | number | undefined | undefined;
                                    step?: string | number | undefined | undefined;
                                    multiple?: boolean | undefined | undefined;
                                    pattern?: string | undefined | undefined;
                                    accept?: string | undefined | undefined;
                                    key: string | undefined;
                                    name: import("@conform-to/dom/future").FieldName<FieldItemShape_6>;
                                    id: string;
                                    descriptionId: string;
                                    errorId: string;
                                    formId: string;
                                    defaultValue: string;
                                    defaultOptions: string[];
                                    defaultChecked: boolean;
                                    defaultPayload: unknown;
                                    touched: boolean;
                                    valid: boolean;
                                    invalid: boolean;
                                    errors: any;
                                    fieldErrors: Record<string, any>;
                                    ariaInvalid: boolean | undefined;
                                    ariaDescribedBy: string | undefined;
                                    getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_6> extends never ? unknown : FieldItemShape_6>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                                    getFieldList: <FieldItemShape_7 = [FieldItemShape_6] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                                        required?: boolean | undefined | undefined;
                                        minLength?: number | undefined | undefined;
                                        maxLength?: number | undefined | undefined;
                                        min?: string | number | undefined | undefined;
                                        max?: string | number | undefined | undefined;
                                        step?: string | number | undefined | undefined;
                                        multiple?: boolean | undefined | undefined;
                                        pattern?: string | undefined | undefined;
                                        accept?: string | undefined | undefined;
                                        key: string | undefined;
                                        name: import("@conform-to/dom/future").FieldName<FieldItemShape_7>;
                                        id: string;
                                        descriptionId: string;
                                        errorId: string;
                                        formId: string;
                                        defaultValue: string;
                                        defaultOptions: string[];
                                        defaultChecked: boolean;
                                        defaultPayload: unknown;
                                        touched: boolean;
                                        valid: boolean;
                                        invalid: boolean;
                                        errors: any;
                                        fieldErrors: Record<string, any>;
                                        ariaInvalid: boolean | undefined;
                                        ariaDescribedBy: string | undefined;
                                        getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_7> extends never ? unknown : FieldItemShape_7>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                                        getFieldList: <FieldItemShape_8 = [FieldItemShape_7] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                                            required?: boolean | undefined | undefined;
                                            minLength?: number | undefined | undefined;
                                            maxLength?: number | undefined | undefined;
                                            min?: string | number | undefined | undefined;
                                            max?: string | number | undefined | undefined;
                                            step?: string | number | undefined | undefined;
                                            multiple?: boolean | undefined | undefined;
                                            pattern?: string | undefined | undefined;
                                            accept?: string | undefined | undefined;
                                            key: string | undefined;
                                            name: import("@conform-to/dom/future").FieldName<FieldItemShape_8>;
                                            id: string;
                                            descriptionId: string;
                                            errorId: string;
                                            formId: string;
                                            defaultValue: string;
                                            defaultOptions: string[];
                                            defaultChecked: boolean;
                                            defaultPayload: unknown;
                                            touched: boolean;
                                            valid: boolean;
                                            invalid: boolean;
                                            errors: any;
                                            fieldErrors: Record<string, any>;
                                            ariaInvalid: boolean | undefined;
                                            ariaDescribedBy: string | undefined;
                                            getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_8> extends never ? unknown : FieldItemShape_8>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                                            getFieldList: <FieldItemShape_9 = [FieldItemShape_8] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                                                required?: boolean | undefined | undefined;
                                                minLength?: number | undefined | undefined;
                                                maxLength?: number | undefined | undefined;
                                                min?: string | number | undefined | undefined;
                                                max?: string | number | undefined | undefined;
                                                step?: string | number | undefined | undefined;
                                                multiple?: boolean | undefined | undefined;
                                                pattern?: string | undefined | undefined;
                                                accept?: string | undefined | undefined;
                                                key: string | undefined;
                                                name: import("@conform-to/dom/future").FieldName<FieldItemShape_9>;
                                                id: string;
                                                descriptionId: string;
                                                errorId: string;
                                                formId: string;
                                                defaultValue: string;
                                                defaultOptions: string[];
                                                defaultChecked: boolean;
                                                defaultPayload: unknown;
                                                touched: boolean;
                                                valid: boolean;
                                                invalid: boolean;
                                                errors: any;
                                                fieldErrors: Record<string, any>;
                                                ariaInvalid: boolean | undefined;
                                                ariaDescribedBy: string | undefined;
                                                getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_9> extends never ? unknown : FieldItemShape_9>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                                                getFieldList: <FieldItemShape_10 = [FieldItemShape_9] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly</*elided*/ any>[];
                                            }>[];
                                        }>[];
                                    }>[];
                                }>[];
                            }>[];
                        }>[];
                    }>[];
                }>[];
            }>[];
        }>[];
    }>;
    getFieldset<FieldShape>(name?: import("@conform-to/dom/future").FieldName<FieldShape> | undefined): import("./types").Fieldset<keyof NonNullable<FieldShape> extends never ? unknown : FieldShape, any, {}>;
    getFieldList<FieldShape>(name: import("@conform-to/dom/future").FieldName<FieldShape>): Readonly<{
        required?: boolean | undefined | undefined;
        minLength?: number | undefined | undefined;
        maxLength?: number | undefined | undefined;
        min?: string | number | undefined | undefined;
        max?: string | number | undefined | undefined;
        step?: string | number | undefined | undefined;
        multiple?: boolean | undefined | undefined;
        pattern?: string | undefined | undefined;
        accept?: string | undefined | undefined;
        key: string | undefined;
        name: import("@conform-to/dom/future").FieldName<[FieldShape] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>;
        id: string;
        descriptionId: string;
        errorId: string;
        formId: string;
        defaultValue: string;
        defaultOptions: string[];
        defaultChecked: boolean;
        defaultPayload: unknown;
        touched: boolean;
        valid: boolean;
        invalid: boolean;
        errors: any;
        fieldErrors: Record<string, any>;
        ariaInvalid: boolean | undefined;
        ariaDescribedBy: string | undefined;
        getFieldset: <FieldsetShape = keyof NonNullable<[FieldShape] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown> extends never ? unknown : [FieldShape] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => import("./types").Fieldset<FieldsetShape, any, {}>;
        getFieldList: <FieldItemShape = [[FieldShape] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown] extends [(infer ItemShape_1)[] | null | undefined] ? ItemShape_1 : unknown>() => Readonly<{
            required?: boolean | undefined | undefined;
            minLength?: number | undefined | undefined;
            maxLength?: number | undefined | undefined;
            min?: string | number | undefined | undefined;
            max?: string | number | undefined | undefined;
            step?: string | number | undefined | undefined;
            multiple?: boolean | undefined | undefined;
            pattern?: string | undefined | undefined;
            accept?: string | undefined | undefined;
            key: string | undefined;
            name: import("@conform-to/dom/future").FieldName<FieldItemShape>;
            id: string;
            descriptionId: string;
            errorId: string;
            formId: string;
            defaultValue: string;
            defaultOptions: string[];
            defaultChecked: boolean;
            defaultPayload: unknown;
            touched: boolean;
            valid: boolean;
            invalid: boolean;
            errors: any;
            fieldErrors: Record<string, any>;
            ariaInvalid: boolean | undefined;
            ariaDescribedBy: string | undefined;
            getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape> extends never ? unknown : FieldItemShape>() => import("./types").Fieldset<FieldsetShape, any, {}>;
            getFieldList: <FieldItemShape_1 = [FieldItemShape] extends [(infer ItemShape_1)[] | null | undefined] ? ItemShape_1 : unknown>() => Readonly<{
                required?: boolean | undefined | undefined;
                minLength?: number | undefined | undefined;
                maxLength?: number | undefined | undefined;
                min?: string | number | undefined | undefined;
                max?: string | number | undefined | undefined;
                step?: string | number | undefined | undefined;
                multiple?: boolean | undefined | undefined;
                pattern?: string | undefined | undefined;
                accept?: string | undefined | undefined;
                key: string | undefined;
                name: import("@conform-to/dom/future").FieldName<FieldItemShape_1>;
                id: string;
                descriptionId: string;
                errorId: string;
                formId: string;
                defaultValue: string;
                defaultOptions: string[];
                defaultChecked: boolean;
                defaultPayload: unknown;
                touched: boolean;
                valid: boolean;
                invalid: boolean;
                errors: any;
                fieldErrors: Record<string, any>;
                ariaInvalid: boolean | undefined;
                ariaDescribedBy: string | undefined;
                getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_1> extends never ? unknown : FieldItemShape_1>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                getFieldList: <FieldItemShape_2 = [FieldItemShape_1] extends [(infer ItemShape_1)[] | null | undefined] ? ItemShape_1 : unknown>() => Readonly<{
                    required?: boolean | undefined | undefined;
                    minLength?: number | undefined | undefined;
                    maxLength?: number | undefined | undefined;
                    min?: string | number | undefined | undefined;
                    max?: string | number | undefined | undefined;
                    step?: string | number | undefined | undefined;
                    multiple?: boolean | undefined | undefined;
                    pattern?: string | undefined | undefined;
                    accept?: string | undefined | undefined;
                    key: string | undefined;
                    name: import("@conform-to/dom/future").FieldName<FieldItemShape_2>;
                    id: string;
                    descriptionId: string;
                    errorId: string;
                    formId: string;
                    defaultValue: string;
                    defaultOptions: string[];
                    defaultChecked: boolean;
                    defaultPayload: unknown;
                    touched: boolean;
                    valid: boolean;
                    invalid: boolean;
                    errors: any;
                    fieldErrors: Record<string, any>;
                    ariaInvalid: boolean | undefined;
                    ariaDescribedBy: string | undefined;
                    getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_2> extends never ? unknown : FieldItemShape_2>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                    getFieldList: <FieldItemShape_3 = [FieldItemShape_2] extends [(infer ItemShape_1)[] | null | undefined] ? ItemShape_1 : unknown>() => Readonly<{
                        required?: boolean | undefined | undefined;
                        minLength?: number | undefined | undefined;
                        maxLength?: number | undefined | undefined;
                        min?: string | number | undefined | undefined;
                        max?: string | number | undefined | undefined;
                        step?: string | number | undefined | undefined;
                        multiple?: boolean | undefined | undefined;
                        pattern?: string | undefined | undefined;
                        accept?: string | undefined | undefined;
                        key: string | undefined;
                        name: import("@conform-to/dom/future").FieldName<FieldItemShape_3>;
                        id: string;
                        descriptionId: string;
                        errorId: string;
                        formId: string;
                        defaultValue: string;
                        defaultOptions: string[];
                        defaultChecked: boolean;
                        defaultPayload: unknown;
                        touched: boolean;
                        valid: boolean;
                        invalid: boolean;
                        errors: any;
                        fieldErrors: Record<string, any>;
                        ariaInvalid: boolean | undefined;
                        ariaDescribedBy: string | undefined;
                        getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_3> extends never ? unknown : FieldItemShape_3>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                        getFieldList: <FieldItemShape_4 = [FieldItemShape_3] extends [(infer ItemShape_1)[] | null | undefined] ? ItemShape_1 : unknown>() => Readonly<{
                            required?: boolean | undefined | undefined;
                            minLength?: number | undefined | undefined;
                            maxLength?: number | undefined | undefined;
                            min?: string | number | undefined | undefined;
                            max?: string | number | undefined | undefined;
                            step?: string | number | undefined | undefined;
                            multiple?: boolean | undefined | undefined;
                            pattern?: string | undefined | undefined;
                            accept?: string | undefined | undefined;
                            key: string | undefined;
                            name: import("@conform-to/dom/future").FieldName<FieldItemShape_4>;
                            id: string;
                            descriptionId: string;
                            errorId: string;
                            formId: string;
                            defaultValue: string;
                            defaultOptions: string[];
                            defaultChecked: boolean;
                            defaultPayload: unknown;
                            touched: boolean;
                            valid: boolean;
                            invalid: boolean;
                            errors: any;
                            fieldErrors: Record<string, any>;
                            ariaInvalid: boolean | undefined;
                            ariaDescribedBy: string | undefined;
                            getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_4> extends never ? unknown : FieldItemShape_4>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                            getFieldList: <FieldItemShape_5 = [FieldItemShape_4] extends [(infer ItemShape_1)[] | null | undefined] ? ItemShape_1 : unknown>() => Readonly<{
                                required?: boolean | undefined | undefined;
                                minLength?: number | undefined | undefined;
                                maxLength?: number | undefined | undefined;
                                min?: string | number | undefined | undefined;
                                max?: string | number | undefined | undefined;
                                step?: string | number | undefined | undefined;
                                multiple?: boolean | undefined | undefined;
                                pattern?: string | undefined | undefined;
                                accept?: string | undefined | undefined;
                                key: string | undefined;
                                name: import("@conform-to/dom/future").FieldName<FieldItemShape_5>;
                                id: string;
                                descriptionId: string;
                                errorId: string;
                                formId: string;
                                defaultValue: string;
                                defaultOptions: string[];
                                defaultChecked: boolean;
                                defaultPayload: unknown;
                                touched: boolean;
                                valid: boolean;
                                invalid: boolean;
                                errors: any;
                                fieldErrors: Record<string, any>;
                                ariaInvalid: boolean | undefined;
                                ariaDescribedBy: string | undefined;
                                getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_5> extends never ? unknown : FieldItemShape_5>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                                getFieldList: <FieldItemShape_6 = [FieldItemShape_5] extends [(infer ItemShape_1)[] | null | undefined] ? ItemShape_1 : unknown>() => Readonly<{
                                    required?: boolean | undefined | undefined;
                                    minLength?: number | undefined | undefined;
                                    maxLength?: number | undefined | undefined;
                                    min?: string | number | undefined | undefined;
                                    max?: string | number | undefined | undefined;
                                    step?: string | number | undefined | undefined;
                                    multiple?: boolean | undefined | undefined;
                                    pattern?: string | undefined | undefined;
                                    accept?: string | undefined | undefined;
                                    key: string | undefined;
                                    name: import("@conform-to/dom/future").FieldName<FieldItemShape_6>;
                                    id: string;
                                    descriptionId: string;
                                    errorId: string;
                                    formId: string;
                                    defaultValue: string;
                                    defaultOptions: string[];
                                    defaultChecked: boolean;
                                    defaultPayload: unknown;
                                    touched: boolean;
                                    valid: boolean;
                                    invalid: boolean;
                                    errors: any;
                                    fieldErrors: Record<string, any>;
                                    ariaInvalid: boolean | undefined;
                                    ariaDescribedBy: string | undefined;
                                    getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_6> extends never ? unknown : FieldItemShape_6>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                                    getFieldList: <FieldItemShape_7 = [FieldItemShape_6] extends [(infer ItemShape_1)[] | null | undefined] ? ItemShape_1 : unknown>() => Readonly<{
                                        required?: boolean | undefined | undefined;
                                        minLength?: number | undefined | undefined;
                                        maxLength?: number | undefined | undefined;
                                        min?: string | number | undefined | undefined;
                                        max?: string | number | undefined | undefined;
                                        step?: string | number | undefined | undefined;
                                        multiple?: boolean | undefined | undefined;
                                        pattern?: string | undefined | undefined;
                                        accept?: string | undefined | undefined;
                                        key: string | undefined;
                                        name: import("@conform-to/dom/future").FieldName<FieldItemShape_7>;
                                        id: string;
                                        descriptionId: string;
                                        errorId: string;
                                        formId: string;
                                        defaultValue: string;
                                        defaultOptions: string[];
                                        defaultChecked: boolean;
                                        defaultPayload: unknown;
                                        touched: boolean;
                                        valid: boolean;
                                        invalid: boolean;
                                        errors: any;
                                        fieldErrors: Record<string, any>;
                                        ariaInvalid: boolean | undefined;
                                        ariaDescribedBy: string | undefined;
                                        getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_7> extends never ? unknown : FieldItemShape_7>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                                        getFieldList: <FieldItemShape_8 = [FieldItemShape_7] extends [(infer ItemShape_1)[] | null | undefined] ? ItemShape_1 : unknown>() => Readonly<{
                                            required?: boolean | undefined | undefined;
                                            minLength?: number | undefined | undefined;
                                            maxLength?: number | undefined | undefined;
                                            min?: string | number | undefined | undefined;
                                            max?: string | number | undefined | undefined;
                                            step?: string | number | undefined | undefined;
                                            multiple?: boolean | undefined | undefined;
                                            pattern?: string | undefined | undefined;
                                            accept?: string | undefined | undefined;
                                            key: string | undefined;
                                            name: import("@conform-to/dom/future").FieldName<FieldItemShape_8>;
                                            id: string;
                                            descriptionId: string;
                                            errorId: string;
                                            formId: string;
                                            defaultValue: string;
                                            defaultOptions: string[];
                                            defaultChecked: boolean;
                                            defaultPayload: unknown;
                                            touched: boolean;
                                            valid: boolean;
                                            invalid: boolean;
                                            errors: any;
                                            fieldErrors: Record<string, any>;
                                            ariaInvalid: boolean | undefined;
                                            ariaDescribedBy: string | undefined;
                                            getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_8> extends never ? unknown : FieldItemShape_8>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                                            getFieldList: <FieldItemShape_9 = [FieldItemShape_8] extends [(infer ItemShape_1)[] | null | undefined] ? ItemShape_1 : unknown>() => Readonly<{
                                                required?: boolean | undefined | undefined;
                                                minLength?: number | undefined | undefined;
                                                maxLength?: number | undefined | undefined;
                                                min?: string | number | undefined | undefined;
                                                max?: string | number | undefined | undefined;
                                                step?: string | number | undefined | undefined;
                                                multiple?: boolean | undefined | undefined;
                                                pattern?: string | undefined | undefined;
                                                accept?: string | undefined | undefined;
                                                key: string | undefined;
                                                name: import("@conform-to/dom/future").FieldName<FieldItemShape_9>;
                                                id: string;
                                                descriptionId: string;
                                                errorId: string;
                                                formId: string;
                                                defaultValue: string;
                                                defaultOptions: string[];
                                                defaultChecked: boolean;
                                                defaultPayload: unknown;
                                                touched: boolean;
                                                valid: boolean;
                                                invalid: boolean;
                                                errors: any;
                                                fieldErrors: Record<string, any>;
                                                ariaInvalid: boolean | undefined;
                                                ariaDescribedBy: string | undefined;
                                                getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_9> extends never ? unknown : FieldItemShape_9>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                                                getFieldList: <FieldItemShape_10 = [FieldItemShape_9] extends [(infer ItemShape_1)[] | null | undefined] ? ItemShape_1 : unknown>() => Readonly</*elided*/ any>[];
                                            }>[];
                                        }>[];
                                    }>[];
                                }>[];
                            }>[];
                        }>[];
                    }>[];
                }>[];
            }>[];
        }>[];
    }>[];
}>;
/**
 * A React hook that provides access to a specific field's metadata and state.
 * Requires `FormProvider` context when used in child components.
 *
 * See https://conform.guide/api/react/future/useField
 *
 * **Example:**
 * ```tsx
 * function FormField({ name, label }) {
 *   const field = useField(name);
 *
 *   return (
 *     <div>
 *       <label htmlFor={field.id}>{label}</label>
 *       <input id={field.id} name={field.name} defaultValue={field.defaultValue} />
 *       {field.errors && <div>{field.errors.join(', ')}</div>}
 *     </div>
 *   );
 * }
 * ```
 */
export declare const useField: <FieldShape = any>(name: FieldName<FieldShape>, options?: {
    formId?: string;
}) => Readonly<{
    required?: boolean | undefined | undefined;
    minLength?: number | undefined | undefined;
    maxLength?: number | undefined | undefined;
    min?: string | number | undefined | undefined;
    max?: string | number | undefined | undefined;
    step?: string | number | undefined | undefined;
    multiple?: boolean | undefined | undefined;
    pattern?: string | undefined | undefined;
    accept?: string | undefined | undefined;
    key: string | undefined;
    name: import("@conform-to/dom/future").FieldName<FieldShape>;
    id: string;
    descriptionId: string;
    errorId: string;
    formId: string;
    defaultValue: string;
    defaultOptions: string[];
    defaultChecked: boolean;
    defaultPayload: unknown;
    touched: boolean;
    valid: boolean;
    invalid: boolean;
    errors: any;
    fieldErrors: Record<string, any>;
    ariaInvalid: boolean | undefined;
    ariaDescribedBy: string | undefined;
    getFieldset: <FieldsetShape = keyof NonNullable<FieldShape> extends never ? unknown : FieldShape>() => import("./types").Fieldset<FieldsetShape, any, {}>;
    getFieldList: <FieldItemShape = [FieldShape] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
        required?: boolean | undefined | undefined;
        minLength?: number | undefined | undefined;
        maxLength?: number | undefined | undefined;
        min?: string | number | undefined | undefined;
        max?: string | number | undefined | undefined;
        step?: string | number | undefined | undefined;
        multiple?: boolean | undefined | undefined;
        pattern?: string | undefined | undefined;
        accept?: string | undefined | undefined;
        key: string | undefined;
        name: import("@conform-to/dom/future").FieldName<FieldItemShape>;
        id: string;
        descriptionId: string;
        errorId: string;
        formId: string;
        defaultValue: string;
        defaultOptions: string[];
        defaultChecked: boolean;
        defaultPayload: unknown;
        touched: boolean;
        valid: boolean;
        invalid: boolean;
        errors: any;
        fieldErrors: Record<string, any>;
        ariaInvalid: boolean | undefined;
        ariaDescribedBy: string | undefined;
        getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape> extends never ? unknown : FieldItemShape>() => import("./types").Fieldset<FieldsetShape, any, {}>;
        getFieldList: <FieldItemShape_1 = [FieldItemShape] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
            required?: boolean | undefined | undefined;
            minLength?: number | undefined | undefined;
            maxLength?: number | undefined | undefined;
            min?: string | number | undefined | undefined;
            max?: string | number | undefined | undefined;
            step?: string | number | undefined | undefined;
            multiple?: boolean | undefined | undefined;
            pattern?: string | undefined | undefined;
            accept?: string | undefined | undefined;
            key: string | undefined;
            name: import("@conform-to/dom/future").FieldName<FieldItemShape_1>;
            id: string;
            descriptionId: string;
            errorId: string;
            formId: string;
            defaultValue: string;
            defaultOptions: string[];
            defaultChecked: boolean;
            defaultPayload: unknown;
            touched: boolean;
            valid: boolean;
            invalid: boolean;
            errors: any;
            fieldErrors: Record<string, any>;
            ariaInvalid: boolean | undefined;
            ariaDescribedBy: string | undefined;
            getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_1> extends never ? unknown : FieldItemShape_1>() => import("./types").Fieldset<FieldsetShape, any, {}>;
            getFieldList: <FieldItemShape_2 = [FieldItemShape_1] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                required?: boolean | undefined | undefined;
                minLength?: number | undefined | undefined;
                maxLength?: number | undefined | undefined;
                min?: string | number | undefined | undefined;
                max?: string | number | undefined | undefined;
                step?: string | number | undefined | undefined;
                multiple?: boolean | undefined | undefined;
                pattern?: string | undefined | undefined;
                accept?: string | undefined | undefined;
                key: string | undefined;
                name: import("@conform-to/dom/future").FieldName<FieldItemShape_2>;
                id: string;
                descriptionId: string;
                errorId: string;
                formId: string;
                defaultValue: string;
                defaultOptions: string[];
                defaultChecked: boolean;
                defaultPayload: unknown;
                touched: boolean;
                valid: boolean;
                invalid: boolean;
                errors: any;
                fieldErrors: Record<string, any>;
                ariaInvalid: boolean | undefined;
                ariaDescribedBy: string | undefined;
                getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_2> extends never ? unknown : FieldItemShape_2>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                getFieldList: <FieldItemShape_3 = [FieldItemShape_2] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                    required?: boolean | undefined | undefined;
                    minLength?: number | undefined | undefined;
                    maxLength?: number | undefined | undefined;
                    min?: string | number | undefined | undefined;
                    max?: string | number | undefined | undefined;
                    step?: string | number | undefined | undefined;
                    multiple?: boolean | undefined | undefined;
                    pattern?: string | undefined | undefined;
                    accept?: string | undefined | undefined;
                    key: string | undefined;
                    name: import("@conform-to/dom/future").FieldName<FieldItemShape_3>;
                    id: string;
                    descriptionId: string;
                    errorId: string;
                    formId: string;
                    defaultValue: string;
                    defaultOptions: string[];
                    defaultChecked: boolean;
                    defaultPayload: unknown;
                    touched: boolean;
                    valid: boolean;
                    invalid: boolean;
                    errors: any;
                    fieldErrors: Record<string, any>;
                    ariaInvalid: boolean | undefined;
                    ariaDescribedBy: string | undefined;
                    getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_3> extends never ? unknown : FieldItemShape_3>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                    getFieldList: <FieldItemShape_4 = [FieldItemShape_3] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                        required?: boolean | undefined | undefined;
                        minLength?: number | undefined | undefined;
                        maxLength?: number | undefined | undefined;
                        min?: string | number | undefined | undefined;
                        max?: string | number | undefined | undefined;
                        step?: string | number | undefined | undefined;
                        multiple?: boolean | undefined | undefined;
                        pattern?: string | undefined | undefined;
                        accept?: string | undefined | undefined;
                        key: string | undefined;
                        name: import("@conform-to/dom/future").FieldName<FieldItemShape_4>;
                        id: string;
                        descriptionId: string;
                        errorId: string;
                        formId: string;
                        defaultValue: string;
                        defaultOptions: string[];
                        defaultChecked: boolean;
                        defaultPayload: unknown;
                        touched: boolean;
                        valid: boolean;
                        invalid: boolean;
                        errors: any;
                        fieldErrors: Record<string, any>;
                        ariaInvalid: boolean | undefined;
                        ariaDescribedBy: string | undefined;
                        getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_4> extends never ? unknown : FieldItemShape_4>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                        getFieldList: <FieldItemShape_5 = [FieldItemShape_4] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                            required?: boolean | undefined | undefined;
                            minLength?: number | undefined | undefined;
                            maxLength?: number | undefined | undefined;
                            min?: string | number | undefined | undefined;
                            max?: string | number | undefined | undefined;
                            step?: string | number | undefined | undefined;
                            multiple?: boolean | undefined | undefined;
                            pattern?: string | undefined | undefined;
                            accept?: string | undefined | undefined;
                            key: string | undefined;
                            name: import("@conform-to/dom/future").FieldName<FieldItemShape_5>;
                            id: string;
                            descriptionId: string;
                            errorId: string;
                            formId: string;
                            defaultValue: string;
                            defaultOptions: string[];
                            defaultChecked: boolean;
                            defaultPayload: unknown;
                            touched: boolean;
                            valid: boolean;
                            invalid: boolean;
                            errors: any;
                            fieldErrors: Record<string, any>;
                            ariaInvalid: boolean | undefined;
                            ariaDescribedBy: string | undefined;
                            getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_5> extends never ? unknown : FieldItemShape_5>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                            getFieldList: <FieldItemShape_6 = [FieldItemShape_5] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                                required?: boolean | undefined | undefined;
                                minLength?: number | undefined | undefined;
                                maxLength?: number | undefined | undefined;
                                min?: string | number | undefined | undefined;
                                max?: string | number | undefined | undefined;
                                step?: string | number | undefined | undefined;
                                multiple?: boolean | undefined | undefined;
                                pattern?: string | undefined | undefined;
                                accept?: string | undefined | undefined;
                                key: string | undefined;
                                name: import("@conform-to/dom/future").FieldName<FieldItemShape_6>;
                                id: string;
                                descriptionId: string;
                                errorId: string;
                                formId: string;
                                defaultValue: string;
                                defaultOptions: string[];
                                defaultChecked: boolean;
                                defaultPayload: unknown;
                                touched: boolean;
                                valid: boolean;
                                invalid: boolean;
                                errors: any;
                                fieldErrors: Record<string, any>;
                                ariaInvalid: boolean | undefined;
                                ariaDescribedBy: string | undefined;
                                getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_6> extends never ? unknown : FieldItemShape_6>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                                getFieldList: <FieldItemShape_7 = [FieldItemShape_6] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                                    required?: boolean | undefined | undefined;
                                    minLength?: number | undefined | undefined;
                                    maxLength?: number | undefined | undefined;
                                    min?: string | number | undefined | undefined;
                                    max?: string | number | undefined | undefined;
                                    step?: string | number | undefined | undefined;
                                    multiple?: boolean | undefined | undefined;
                                    pattern?: string | undefined | undefined;
                                    accept?: string | undefined | undefined;
                                    key: string | undefined;
                                    name: import("@conform-to/dom/future").FieldName<FieldItemShape_7>;
                                    id: string;
                                    descriptionId: string;
                                    errorId: string;
                                    formId: string;
                                    defaultValue: string;
                                    defaultOptions: string[];
                                    defaultChecked: boolean;
                                    defaultPayload: unknown;
                                    touched: boolean;
                                    valid: boolean;
                                    invalid: boolean;
                                    errors: any;
                                    fieldErrors: Record<string, any>;
                                    ariaInvalid: boolean | undefined;
                                    ariaDescribedBy: string | undefined;
                                    getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_7> extends never ? unknown : FieldItemShape_7>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                                    getFieldList: <FieldItemShape_8 = [FieldItemShape_7] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                                        required?: boolean | undefined | undefined;
                                        minLength?: number | undefined | undefined;
                                        maxLength?: number | undefined | undefined;
                                        min?: string | number | undefined | undefined;
                                        max?: string | number | undefined | undefined;
                                        step?: string | number | undefined | undefined;
                                        multiple?: boolean | undefined | undefined;
                                        pattern?: string | undefined | undefined;
                                        accept?: string | undefined | undefined;
                                        key: string | undefined;
                                        name: import("@conform-to/dom/future").FieldName<FieldItemShape_8>;
                                        id: string;
                                        descriptionId: string;
                                        errorId: string;
                                        formId: string;
                                        defaultValue: string;
                                        defaultOptions: string[];
                                        defaultChecked: boolean;
                                        defaultPayload: unknown;
                                        touched: boolean;
                                        valid: boolean;
                                        invalid: boolean;
                                        errors: any;
                                        fieldErrors: Record<string, any>;
                                        ariaInvalid: boolean | undefined;
                                        ariaDescribedBy: string | undefined;
                                        getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_8> extends never ? unknown : FieldItemShape_8>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                                        getFieldList: <FieldItemShape_9 = [FieldItemShape_8] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly<{
                                            required?: boolean | undefined | undefined;
                                            minLength?: number | undefined | undefined;
                                            maxLength?: number | undefined | undefined;
                                            min?: string | number | undefined | undefined;
                                            max?: string | number | undefined | undefined;
                                            step?: string | number | undefined | undefined;
                                            multiple?: boolean | undefined | undefined;
                                            pattern?: string | undefined | undefined;
                                            accept?: string | undefined | undefined;
                                            key: string | undefined;
                                            name: import("@conform-to/dom/future").FieldName<FieldItemShape_9>;
                                            id: string;
                                            descriptionId: string;
                                            errorId: string;
                                            formId: string;
                                            defaultValue: string;
                                            defaultOptions: string[];
                                            defaultChecked: boolean;
                                            defaultPayload: unknown;
                                            touched: boolean;
                                            valid: boolean;
                                            invalid: boolean;
                                            errors: any;
                                            fieldErrors: Record<string, any>;
                                            ariaInvalid: boolean | undefined;
                                            ariaDescribedBy: string | undefined;
                                            getFieldset: <FieldsetShape = keyof NonNullable<FieldItemShape_9> extends never ? unknown : FieldItemShape_9>() => import("./types").Fieldset<FieldsetShape, any, {}>;
                                            getFieldList: <FieldItemShape_10 = [FieldItemShape_9] extends [(infer ItemShape)[] | null | undefined] ? ItemShape : unknown>() => Readonly</*elided*/ any>[];
                                        }>[];
                                    }>[];
                                }>[];
                            }>[];
                        }>[];
                    }>[];
                }>[];
            }>[];
        }>[];
    }>[];
}>;
/**
 * A React hook that provides an intent dispatcher for programmatic form actions.
 * Intent dispatchers allow you to trigger form operations like validation, field updates,
 * and array manipulations without manual form submission.
 *
 * See https://conform.guide/api/react/future/useIntent
 *
 * **Example:**
 * ```tsx
 * function ResetButton() {
 *   const buttonRef = useRef<HTMLButtonElement>(null);
 *   const intent = useIntent(buttonRef);
 *
 *   return (
 *     <button type="button" ref={buttonRef} onClick={() => intent.reset()}>
 *       Reset Form
 *     </button>
 *   );
 * }
 * ```
 */
export declare const useIntent: <FormShape extends Record<string, any>>(formRef: FormRef) => IntentDispatcher<FormShape>;
//# sourceMappingURL=forms.d.ts.map