/*!
 * devextreme-angular
 * Version: 24.2.6
 * Build date: Mon Mar 17 2025
 *
 * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
 *
 * This software may be modified and distributed under the terms
 * of the MIT license. See the LICENSE file in the root of the project for details.
 *
 * https://github.com/DevExpress/devextreme-angular
 */
import { TransferState, ElementRef, NgZone, QueryList, SimpleChanges, EventEmitter, OnChanges, OnInit, DoCheck, AfterContentChecked, AfterViewInit, AfterViewChecked } from '@angular/core';
import { DxTemplateDirective } from './template';
import { IDxTemplateHost, DxTemplateHost } from './template-host';
import { EmitterHelper } from './events-strategy';
import { WatcherHelper } from './watcher-helper';
import { INestedOptionContainer, ICollectionNestedOption, ICollectionNestedOptionContainer } from './nested-option';
import * as i0 from "@angular/core";
export declare const getServerStateKey: () => any;
export declare abstract class DxComponent implements OnChanges, OnInit, DoCheck, AfterContentChecked, AfterViewInit, AfterViewChecked, INestedOptionContainer, ICollectionNestedOptionContainer, IDxTemplateHost {
    protected element: ElementRef;
    private readonly ngZone;
    private readonly watcherHelper;
    private readonly transferState;
    private readonly platformId;
    private _initialOptions;
    protected _optionsToUpdate: any;
    private readonly _collectionContainerImpl;
    eventHelper: EmitterHelper;
    optionChangedHandlers: EventEmitter<any>;
    templates: DxTemplateDirective[];
    instance: any;
    isLinked: boolean;
    changedOptions: {};
    removedNestedComponents: string[];
    recreatedNestedComponents: any[];
    widgetUpdateLocked: boolean;
    templateUpdateRequired: boolean;
    private _updateTemplates;
    private _initEvents;
    private _initOptions;
    private _initPlatform;
    protected _createEventEmitters(events: any): void;
    _shouldOptionChange(name: string, value: any): boolean;
    clearChangedOptions(): void;
    protected _getOption(name: string): any;
    lockWidgetUpdate(): void;
    unlockWidgetUpdate(): void;
    protected _setOption(name: string, value: any): void;
    protected abstract _createInstance(element: any, options: any): any;
    protected _createWidget(element: any): void;
    protected _destroyWidget(): void;
    protected _setChildren(propertyName: any, value: any, className: any): void;
    constructor(element: ElementRef, ngZone: NgZone, templateHost: DxTemplateHost, watcherHelper: WatcherHelper, transferState: TransferState, platformId: any);
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    ngDoCheck(): void;
    ngAfterContentChecked(): void;
    ngAfterViewInit(): void;
    ngAfterViewChecked(): void;
    applyOptions(): void;
    resetOptions(collectionName?: string): void;
    isRecreated(name: string): boolean;
    setTemplate(template: DxTemplateDirective): void;
    contentChildren: {};
    checkContentChildren<T>(propertyName: string, items: QueryList<T>, className: string): boolean;
    setContentChildren<T>(propertyName: string, items: QueryList<T>, className: string): void;
    setChildren<T extends ICollectionNestedOption>(propertyName: string, items: QueryList<T>): any;
    static ɵfac: i0.ɵɵFactoryDeclaration<DxComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DxComponent, "ng-component", never, {}, {}, never, never, false, never>;
}
export declare abstract class DxComponentExtension extends DxComponent implements OnInit, AfterViewInit {
    createInstance(element: any): void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DxComponentExtension, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DxComponentExtension, "ng-component", never, {}, {}, never, never, false, never>;
}
