import { EventEmitter, QueryList, ElementRef, SimpleChange, ChangeDetectorRef, IterableDiffers, KeyValueDiffers, OnInit, DoCheck, AfterContentInit, AfterViewInit, OnChanges, AfterContentChecked, OnDestroy } from '@angular/core'; import * as i0 from "@angular/core"; export { ContentChild, Type, forwardRef } from '@angular/core'; export declare let currentTemplateElement: any; export interface IParentTag { tags: Array; } export interface IChildChange { index: number; change: any; } export interface IChangeSet { [key: string]: Array; } export declare class Utils { static IterateAndGetChanges(obj: IParentTag): IChangeSet; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } export declare class BoldReportComponents implements IParentTag, OnInit, AfterContentInit, DoCheck, AfterViewInit, OnChanges, AfterContentChecked, OnDestroy { protected controlName: string; protected el: ElementRef; protected cdRef: ChangeDetectorRef; tags: Array; private ejIterableDiffers; private _ejKeyValueDiffers; model: T; widget: W; protected outputs: Array; protected inputs: Array; protected twoways: Array; protected complexProperties: Array; protected isEditor: boolean; private firstCheck; ejIterable: any; ejKeyValueDif: any; private static bindAndRaiseEvent; constructor(controlName: string, el: ElementRef, cdRef: ChangeDetectorRef, tags: Array, ejIterableDiffers: IterableDiffers, _ejKeyValueDiffers: KeyValueDiffers); protected createTwoways(twoways: Array): void; protected addTwoways(prop: string): Function; ngOnInit(): void; ngAfterContentInit(): void; ngDoCheck(): void; ngAfterViewInit(): void; lowerCaseFirstLetter(string: string): string; ngOnChanges(changes: { [key: string]: SimpleChange; }): void; getTwowayChanges(value: any, ngChanges: any, prop: string): any; ngAfterContentChecked(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵprov: i0.ɵɵInjectableDeclaration>; } export declare class ComplexTagElement implements OnInit, OnChanges, AfterContentChecked { tags: Array; recentChanges: any; hasChanges: boolean; firstChange: boolean; index: number; valueChange: EventEmitter; protected complexProperties: Array; property: string; parent: BoldReportComponents; complexes: Array; constructor(tags: Array); ngOnInit(): void; ensureCleanObject(): void; ngOnChanges(changes: { [key: string]: SimpleChange; }): void; getChangesAndReset(): any; ngAfterContentChecked(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } export declare class ArrayTagElement implements AfterContentInit, AfterContentChecked { propertyName: string; list: Array; children: QueryList; recentChanges: Array; hasChanges: boolean; constructor(propertyName: string); ngAfterContentInit(): void; getList(): T[]; getChangesAndReset(): Array; ngAfterContentChecked(): void; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵprov: i0.ɵɵInjectableDeclaration>; }