import { AbstractControl, AsyncValidatorFn, ValidatorFn } from '@angular/forms'; import { Observable } from 'rxjs'; export interface EclatErrorMapping { [key: string]: string | string[] | ((control: AbstractEclatFormControl) => string | string[]); } export interface EclatFormRule { key: string; message: string | string[] | ((control: AbstractEclatFormControl) => string | string[]); validator?: ValidatorFn; asyncValidator?: AsyncValidatorFn; } export declare abstract class AbstractEclatFormControl { control: C; protected asyncValidators: AsyncValidatorFn[]; protected validators: ValidatorFn[]; private readonly rules; constructor(rules?: EclatFormRule[]); readonly errorMessages: string[]; readonly value: T; readonly valid: boolean; readonly valueChanges: Observable; disable(isDisabled?: boolean, opts?: { onlySelf?: boolean; emitEvent?: boolean; }): void; abstract patchState(data: T, emitEvent?: boolean): void; abstract resetState(data: T, emitEvent?: boolean): void; }