import * as _angular_core from '@angular/core';
import * as _angular_forms from '@angular/forms';
import { NgControl } from '@angular/forms';
/**
* Wraps a label + control + error message into a single field row.
*
* Toggle `hasError` to apply error styling to the projected label and
* any descendant input / textarea / checkbox.
*
* @example
* ```html
*
*
*
* Invalid email
*
* ```
*
* @see https://ngwr.dev/components/form
*/
declare class WrFormItem {
/**
* When `true`, applies error coloring to the projected label and inputs.
*
* @default false
*/
readonly hasError: _angular_core.InputSignalWithTransform;
protected readonly classes: _angular_core.Signal;
static ɵfac: _angular_core.ɵɵFactoryDeclaration;
static ɵcmp: _angular_core.ɵɵComponentDeclaration;
}
/**
* Wraps a label + control + hint + error messages into a single block —
* the layout primitive every form ends up reinventing.
*
* - Auto-binds `label[for]` to the projected control via a generated id
* (or use the form-control's `[id]` if you set one).
* - Reads the projected control's `NgControl` to surface validation
* errors only when the control has been touched / submitted.
* - Optional `[required]` / `[optional]` markers next to the label.
*
* @example
* ```html
*
*
* Email is required.
* Not a valid email.
*
* ```
*
* @see https://ngwr.dev/components/form-field
*/
declare class WrFormField {
/** Label text shown above the control. */
readonly label: _angular_core.InputSignal;
/** Hint text shown below the control. Hidden when an error is visible. */
readonly hint: _angular_core.InputSignal;
/** Show a `*` next to the label. @default false */
readonly required: _angular_core.InputSignalWithTransform;
/** Show `(optional)` next to the label. Mutually exclusive with `required`. @default false */
readonly optional: _angular_core.InputSignalWithTransform;
/** Force a specific id on the label's `for` attribute. Auto-generated otherwise. */
readonly controlId: _angular_core.InputSignal;
/** Projected `NgControl` — used to read touched / dirty / errors. */
protected readonly ngControl: _angular_core.Signal;
protected readonly errors: _angular_core.Signal<_angular_forms.ValidationErrors | null>;
protected readonly hasError: _angular_core.Signal;
protected readonly classes: _angular_core.Signal;
static ɵfac: _angular_core.ɵɵFactoryDeclaration;
static ɵcmp: _angular_core.ɵɵComponentDeclaration;
}
/**
* One error message tied to a validator key. Renders only when the
* parent form-field has a matching error in `control.errors`.
*
* @example
* ```html
* This field is required.
* That doesn't look right.
* ```
*/
declare class WrFormError {
/**
* Validator key this message corresponds to (e.g. `'required'`).
* Optional — without a key the message always renders, which is the
* plain inline-error usage inside ``.
*/
readonly key: _angular_core.InputSignal;
static ɵfac: _angular_core.ɵɵFactoryDeclaration;
static ɵcmp: _angular_core.ɵɵComponentDeclaration;
}
export { WrFormError, WrFormField, WrFormItem };