import { AsyncValidatorFn, UntypedFormBuilder, UntypedFormGroup, ValidatorFn } from '@angular/forms'; export interface ControlValidator { key: string; validator: ValidatorFn | string; params?: any; message: string; } export interface AsyncControlValidator { key: string; validator: AsyncValidatorFn | string; params?: any; message: string; } export interface Mask { masker: Function | string; params?: Array | any; } export interface ControlOptions { key: string; label: string; component: any; value?: any; disabled?: boolean; required?: boolean; hidden?: boolean; options?: any; validators?: ControlValidator[]; asyncValidators?: AsyncControlValidator[]; width?: string; flexWidth?: string; } export declare class ControlDefinition { key: string; label: string; component: any; value: any; disabled: boolean; required: boolean; hidden: boolean; autoComplete?: string; options: any; validators: ControlValidator[]; asyncValidators: AsyncControlValidator[]; mask: Function; width?: string; flexWidth?: string; constructor(data: ControlOptions); buildFormControl(): ((string | ValidatorFn)[] | { value: any; disabled: boolean; })[]; } export declare class FormDefinition { controls: ControlDefinition[]; formBuilder: UntypedFormBuilder; form: UntypedFormGroup; constructor(controls: ControlOptions[], formBuilder: UntypedFormBuilder); buildForm(): UntypedFormGroup; getValues(): any; getValidity(): boolean; pristine(): boolean; markAllAsTouched(): void; } export interface FormUpdateEvent { key: string; value: any; }