import { AfterViewInit, ComponentRef, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
import { IValidationSummarizerItemTemplateBuilder } from '../../../../services/interfaces/validation-summarizers/validation-summarizer-item-template-builder.interface';
import { ValidationMessage } from '../../../../models/implementations/validation-summarizers/validation-message';
import { AbstractControl, NgControl } from '@angular/forms';
import { ValidationItemBuildContext } from '../../../../models/implementations/validation-summarizers/validation-item-build-context';
import * as i0 from "@angular/core";
export declare class ValidationSummarizerItemDirective implements OnInit, AfterViewInit, OnDestroy {
    protected viewContainerRef: ViewContainerRef;
    protected readonly validationItemTemplateBuilders: IValidationSummarizerItemTemplateBuilder[];
    private _containerId;
    private _validationMessages;
    private _control;
    private _label;
    private readonly _validationTriggerSubject;
    private readonly _subscription;
    get containerId(): string;
    set containerId(value: string);
    get validationMessages(): ValidationMessage[] | undefined;
    set validationMessages(value: ValidationMessage[] | undefined);
    get ngControl(): AbstractControl | NgControl | undefined | null;
    set ngControl(value: AbstractControl | NgControl | undefined | null);
    get controlLabel(): string | undefined;
    set controlLabel(value: string | undefined);
    constructor(viewContainerRef: ViewContainerRef, validationItemTemplateBuilders: IValidationSummarizerItemTemplateBuilder[]);
    ngOnInit(): void;
    ngAfterViewInit(): Promise<void>;
    ngOnDestroy(): void;
    protected loadSuitableItemTemplateBuilderAsync(validationMessage: ValidationMessage): Promise<IValidationSummarizerItemTemplateBuilder>;
    protected loadValidationItemBuildContext(validationMessage: ValidationMessage): ValidationItemBuildContext;
    protected loadValidationItemComponentRef(validationMessage: ValidationMessage): Promise<ComponentRef<any>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ValidationSummarizerItemDirective, [null, { optional: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ValidationSummarizerItemDirective, "[validationSummarizerItem]", never, { "containerId": "containerId"; "validationMessages": "validationMessages"; "ngControl": "ngControl"; "controlLabel": "controlLabel"; }, {}, never>;
}
//# sourceMappingURL=validation-summarizer-item.directive.d.ts.map