import { KeyValue, Unboxed, SetValueAction, AbstractControlState } from 'ngrx-forms'; import { OnInit, OnDestroy, Injector } from '@angular/core'; import { Observable, Subscription, Subject } from 'rxjs'; import { Store, Action } from '@ngrx/store'; import { NGXLogger } from 'ngx-logger'; import { IDxForm, FormControlLike } from './form'; import { FormRegisterBuilder } from './form-register-builder'; import { DxFormAsyncValidatorDefinition, DxFormGroupDefinition, DxFormOnSetValueDefinition } from './decorators/interfaces'; export declare abstract class AbstractForm = Unboxed> implements IDxForm, OnInit, OnDestroy { readonly store$: Store; readonly logger: NGXLogger; readonly injector: Injector; /** * @internal */ __initialized: boolean; readonly __formId: string; readonly __localControlId: string | null; readonly __stepControl: FormControlLike; __controlId: string; __controlPath: string; __value$: Observable; __value: Value | null; __initial: FormValue | null; __controlName: string; __parent: AbstractForm | null; __root: AbstractForm | null; private _initialized; protected _subscription: Subscription; __state$: Observable | AbstractControlState>; __state: AbstractControlState | AbstractControlState; protected _groupedAsyncValidators: { [controlId: string]: DxFormAsyncValidatorDefinition[]; }; protected _groupedOnSetValue: { [controlId: string]: DxFormOnSetValueDefinition[]; }; __uuid: any; __onInit$: Subject; __onDestroy$: Subject; __onReset$: Subject; constructor(store$: Store, logger: NGXLogger, injector: Injector); ngOnDestroy(): void; abstract forEachControl(callback: (controlId: string, control: IDxForm) => any): void; setValue(value: any): void; isEqual(a: Value, b: Value): boolean; ngOnInit(): void; box(value: Value): FormValue; buildFormGroup(definition: DxFormGroupDefinition, name?: string): any; abstract processOnSetValue(action: SetValueAction): Observable; processAsyncValidatorsDecorator(builder: FormRegisterBuilder): void; processOnSetValueDecorator(builder: FormRegisterBuilder): void; abstract getControlByControlId(controlId: string): IDxForm; getControl>(controlPath: string): D; getValue(controlPath: string): V; getValue$(controlPath: string): Observable; } export declare function normelizeControlPath(controlPath: string, currentControlPath: string): string; export declare function toControlPath(controlId: string): string; export declare function toControlId(controlPath: string, parentControlPath: string): string; export declare function matchRelativeControlPath(controlPath: string, targetPath: string, basePath: string): boolean;