import { ValidatorFn, ValidationErrors } from '@angular/forms'; export type RevalidateFn = () => ValidationErrors | null; export interface ValidationGroup { /** * Triggers validation when value was changed and return validation errors. */ validate: ValidatorFn; /** * Just get current validation errors without trigger validation. */ validationErrors: ValidatorFn; /** * Triggers validation when value was changed but returns null always. */ link: ValidatorFn; /** * Can be used to full revalidation of validation group. F.e. when external data which was used for validation was changed. */ revalidate: RevalidateFn; } export type ValidationGroupValidatorFn = (formValue: T) => ValidationErrors | null; export type Validator = ValidationGroupValidatorFn> | ValidationGroupValidatorFn>[]; export type IsEqualComparer = (previousFormValue: Partial, formValue: Partial) => boolean; export interface ValidationGroupRevalidationOptions { onlySelf?: boolean; emitEvent?: boolean; } export interface ValidationGroupOptions { validator: Validator; revalidationOptions?: ValidationGroupRevalidationOptions; isEqualComparer?: IsEqualComparer; } export type ValidationGroupInput = Validator | ValidationGroupOptions; export declare function createValidationGroup(validatorOrOpts: ValidationGroupInput): ValidationGroup;