import { AbstractControl, UntypedFormArray, UntypedFormControl, UntypedFormGroup } from '@angular/forms'; import { DynBaseConfig } from './types/config.types'; import { DynControlId } from './types/control.types'; import { DynInstanceType } from './types/forms.types'; import { DynNode } from './types/node.types'; import { DynControlNode } from './form-control-node.service'; import { DynFormHandlers } from './form-handlers.service'; import { DynFormRegistry } from './form-registry.service'; import * as i0 from "@angular/core"; export declare class DynFormFactory { private handlers; private registry; constructor(handlers: DynFormHandlers, registry: DynFormRegistry); /** * Fetch a control from */ get(parent: AbstractControl, path: string): AbstractControl | null; /** * Adds a control (via config) to the given parent. */ register(instance: DynInstanceType.Container | DynInstanceType.Group, node: DynControlNode, config: DynBaseConfig, recursively?: boolean): FormGroup; register(instance: DynInstanceType.Array, node: DynControlNode, config: DynBaseConfig, recursively?: boolean): FormArray; register(instance: DynInstanceType.Control, node: DynControlNode, config: DynBaseConfig, recursively?: boolean): FormControl; /** * Build the corresponding form control instance for a given config. */ build(instance: DynInstanceType.Container | DynInstanceType.Group, node: DynNode, config: DynBaseConfig, placeholder?: boolean, controlName?: string): { name?: string; parentControl: AbstractControl; control: UntypedFormGroup; }; build(instance: DynInstanceType.Array, node: DynNode, config: DynBaseConfig, placeholder?: boolean, controlName?: string): { name?: string; parentControl: AbstractControl; control: UntypedFormArray; }; build(instance: DynInstanceType.Control, node: DynNode, config: DynBaseConfig, placeholder?: boolean, controlName?: string): { name?: string; parentControl: AbstractControl; control: UntypedFormControl; }; /** * Recursively build the children controls and attach them to a given parent. */ buildControls(parent: UntypedFormGroup, node: DynNode, config: DynBaseConfig): void; /** * Append a control to a given parent in the specified name. */ append(parent: AbstractControl, name: string, control: AbstractControl): void; /** * getInstanceFor facade for DynControl */ getInstanceFor(control: DynControlId): DynInstanceType; private isDeepName; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }