import { type Dispatch, type ReactNode } from 'react'; import { FormFieldMessagesReducerAction } from '../state/formfield-messages-state-reducer.js'; /** * @public */ export interface FormFieldCustomMessage { /** Whether the message is a hint or an error. */ variant: 'error' | 'hint'; /** Unique identifier for the message to remove and update the messages. */ id: string; /** Origin of the message, formcontrol means it is a browser or strato error and custom is an error set from outside. */ messageType?: 'custom' | 'formcontrol'; /** Unique identifier for the native input element connected to the error message. */ controlId?: string; } /** * @public */ export interface FormFieldControlMessage extends FormFieldCustomMessage { message: ReactNode; validityStateKey: string; } /** * @internal */ export type FormFieldMessage = FormFieldCustomMessage | FormFieldControlMessage; /** * @internal */ export interface FormFieldMessageContextState { formControlMessages: FormFieldControlMessage[]; customMessages: FormFieldCustomMessage[]; isTouched?: boolean; controlId?: string; isDisabled?: boolean; showError: boolean; isValid?: boolean; } /** * @internal */ export interface FormFieldMessageContextProps { controlId?: string; /** * @defaultValue false */ disabled?: boolean; dispatch?: Dispatch; state: FormFieldMessageContextState; } /** * Context provider for `FormFieldMessageContextProps` to connect form controls to the applied errors and error messages. * @internal */ export declare const FormFieldMessageContext: import("react").Context;