import { ChangeDetectorRef, ComponentFactoryResolver, ComponentRef, EventEmitter, OnChanges, OnDestroy, OnInit, QueryList, SimpleChanges, Type, ViewContainerRef } from "@angular/core"; import { UntypedFormControl, UntypedFormGroup } from "@angular/forms"; import { Subscription } from "rxjs"; import { DynamicFormControlCustomEvent, DynamicFormControlEvent } from "./dynamic-form-control-event"; import { DynamicFormControlModel } from "../model/dynamic-form-control.model"; import { DynamicFormArrayGroupModel } from "../model/form-array/dynamic-form-array.model"; import { DynamicFormControlLayout, DynamicFormControlLayoutContext, DynamicFormControlLayoutPlace } from "../model/misc/dynamic-form-control-layout.model"; import { DynamicFormControl } from "./dynamic-form-control-interface"; import { DynamicTemplateDirective } from "../directive/dynamic-template.directive"; import { DynamicFormLayout, DynamicFormLayoutService } from "../service/dynamic-form-layout.service"; import { DynamicFormValidationService } from "../service/dynamic-form-validation.service"; import { DynamicFormComponentService } from "../service/dynamic-form-component.service"; import { DynamicFormRelationService } from "../service/dynamic-form-relation.service"; import * as i0 from "@angular/core"; export declare abstract class DynamicFormControlContainerComponent implements OnChanges, OnInit, OnDestroy { protected changeDetectorRef: ChangeDetectorRef; protected componentFactoryResolver: ComponentFactoryResolver; protected layoutService: DynamicFormLayoutService; protected validationService: DynamicFormValidationService; protected componentService: DynamicFormComponentService; protected relationService: DynamicFormRelationService; private _hasFocus; context: DynamicFormArrayGroupModel | null; control: UntypedFormControl; group: UntypedFormGroup; hostClass?: string[]; klass?: string; layout?: DynamicFormLayout; model: DynamicFormControlModel; contentTemplateList?: QueryList; inputTemplateList?: QueryList; blur: EventEmitter; change: EventEmitter; customEvent?: EventEmitter; focus: EventEmitter; componentViewContainerRef: ViewContainerRef; protected componentRef: ComponentRef; protected componentSubscriptions: Subscription[]; protected controlLayout?: DynamicFormControlLayout; protected subscriptions: Subscription[]; protected constructor(changeDetectorRef: ChangeDetectorRef, componentFactoryResolver: ComponentFactoryResolver, layoutService: DynamicFormLayoutService, validationService: DynamicFormValidationService, componentService: DynamicFormComponentService, relationService: DynamicFormRelationService); ngOnChanges(changes: SimpleChanges): void; ngOnInit(): void; ngOnDestroy(): void; abstract get componentType(): Type | null; get id(): string; get hasFocus(): boolean; get isInvalid(): boolean; get isValid(): boolean; get errorMessages(): string[]; get showErrorMessages(): boolean; get hasLabel(): boolean; get hasHint(): boolean; get hint(): string | null; get isCheckbox(): boolean; get templates(): QueryList | undefined; get startTemplate(): DynamicTemplateDirective | undefined; get endTemplate(): DynamicTemplateDirective | undefined; getClass(context: DynamicFormControlLayoutContext, place: DynamicFormControlLayoutPlace): string; markForCheck(): void; protected createFormControlComponent(): void; protected destroyFormControlComponent(): void; protected createDynamicFormControlEvent($event: any, type: string): DynamicFormControlEvent; unsubscribe(): void; onControlValueChanges(value: any): void; onModelValueUpdates(value: any): void; onModelDisabledUpdates(disabled: boolean): void; onLayoutOrModelChange(): void; onModelChange(): void; onGroupOrModelChange(): void; onChange($event: Event | DynamicFormControlEvent | any): void; onBlur($event: FocusEvent | DynamicFormControlEvent | any): void; onFocus($event: FocusEvent | DynamicFormControlEvent | any): void; onCustomEvent($event: DynamicFormControlEvent | DynamicFormControlCustomEvent): void; private registerFormControlComponentRef; private unregisterFormControlComponentRef; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; }