import { FormControl, ValidatorFn, AsyncValidatorFn } from "@angular/forms"; import { Observable } from "rxjs"; export interface LoaderFn { (value: A): Observable; } export declare type DYN_FIELD_APPEARANCE = 'legacy' | 'standard' | 'fill' | 'outline'; export declare abstract class DynFormControl extends FormControl { key: string; type: string; path: string; config: any; logicalErrorMessage: string; vCache: ValidatorFn | ValidatorFn[]; constructor(options?: { defaultValue?: any; key?: string; required?: boolean; dir?: string; hint?: string; placeholder?: string; messages?: any[]; useDefaultErrorMessages?: boolean; loadFn?: LoaderFn; disable?: boolean; appearance?: DYN_FIELD_APPEARANCE; compact?: boolean; }, validator?: ValidatorFn | ValidatorFn[] | null, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null); removeRequired(): void; addRequired(): void; isRequired(): boolean | ValidatorFn; isValidator(validator: ValidatorFn): boolean | ValidatorFn; setValidator(validator: ValidatorFn): number | ValidatorFn; removeValidator(validator: ValidatorFn): void; setLogicalError(message: string): void; clearLogicalError(): void; activateValidators(): void; setValue(value: any, options?: { onlySelf?: boolean; emitEvent?: boolean; emitModelToViewChange?: boolean; emitViewToModelChange?: boolean; loadFn?: LoaderFn; }): void; loadValue(param: any, loadFn: LoaderFn, options?: { onlySelf?: boolean; emitEvent?: boolean; emitModelToViewChange?: boolean; emitViewToModelChange?: boolean; }): void; }