import { FocusEventHandler } from "react";
import { FormControlOptions } from "./form-control";
export interface UseFormControlProps<T extends HTMLElement> extends FormControlOptions {
    id?: string;
    onFocus?: FocusEventHandler<T>;
    onBlur?: FocusEventHandler<T>;
    disabled?: boolean;
    readOnly?: boolean;
    required?: boolean;
}
/**
 * React hook that provides the props that should be spread on to
 * input fields (`input`, `select`, `textarea`, etc.).
 *
 * It provides a convenient way to control a form fields, validation
 * and helper text.
 */
export declare function useFormControl<T extends HTMLElement>(props: UseFormControlProps<T>): {
    id: string;
    disabled: boolean;
    readOnly: boolean;
    required: boolean;
    "aria-invalid": true | undefined;
    "aria-required": true | undefined;
    "aria-readonly": true | undefined;
    "aria-describedby": string | undefined;
    onFocus: (event: import("react").FocusEvent<T>) => void;
    onBlur: (event: import("react").FocusEvent<T>) => void;
};
