import type { FormAssociatedConstructor } from '../../../Types/Constructor'; import type { IControlValidityResult } from '../Interfaces/IControlValidityResult'; import type { IControlValidator } from './Interfaces/IControlValidator'; /** * A class that computes and caches `ValidityStateFlags` for a component with a given `State` interface. * * Cached performance before computing validity is important since constraint validation must be * checked frequently and synchronously when properties change. * * @template TState The expected interface of properties relevant to constraint validation. */ export declare abstract class ControlValidatorBase & IControlValidityResult, TState> implements IControlValidator { private readonly _control; private readonly _getCurrentState; private _prevState?; private _currentValidity; /** * Constructs a new instance of the `Validator` class. * * @protected * @param control - The control that the validator is attached to. * @param stateFn - A callback that returns the current state of constraint validation-related properties. */ protected constructor(control: TControl, stateFn: () => TState); /** * Returns the control that the validator is attached to. * * @public * @readonly */ get control(): TControl; /** * @public */ getValidity(): IControlValidityResult; /** * Computes the `ValidityStateFlags` and validation message for a given set * of constraint validation properties. * * Implementations can use platform elements like `` and `