import { AfterViewInit, EventEmitter, ChangeDetectorRef, OnDestroy } from '@angular/core';
import { GlobalConfig, I18nService } from '@eui/core';
import { Subject } from 'rxjs';
import { EclLanguage, EclBaseEvent } from '../../../model';
import { EclLanguageService } from '../../../services/ecl-language.service';
import { EclLanguageListComponent } from '../../ecl-language-list';
import { EclSiteHeaderComponent } from '../../ecl-site-header/common/ecl-site-header.component';
import * as i0 from "@angular/core";
export declare class EclAppLanguageDismissEvent extends EclBaseEvent {
    language?: EclLanguage;
    constructor(language?: EclLanguage);
}
export declare abstract class EclAppComponent implements AfterViewInit, OnDestroy {
    protected config: GlobalConfig;
    protected eclLanguageService: EclLanguageService;
    protected i18nService: I18nService;
    protected cd: ChangeDetectorRef;
    languageDismiss: EventEmitter<EclAppLanguageDismissEvent>;
    languages: Array<EclLanguage>;
    protected eclSiteHeader: EclSiteHeaderComponent;
    protected eclLanguageList: EclLanguageListComponent;
    protected destroy$: Subject<boolean>;
    private readonly FALLBACK_LANGUAGE;
    constructor(config: GlobalConfig, eclLanguageService: EclLanguageService, i18nService: I18nService, cd: ChangeDetectorRef);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    private handleAppLanguagesState;
    private handleActiveLanguageChangeState;
    private handleSiteHeaderUIEvents;
    private handleLanguageListUIEvents;
    private hideLanguageListUI;
    private showLanguageListUI;
    private syncLanguageDataWithUI;
    static ɵfac: i0.ɵɵFactoryDeclaration<EclAppComponent, [{ optional: true; }, null, null, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EclAppComponent, "ng-component", never, {}, { "languageDismiss": "languageDismiss"; }, never, never>;
}
//# sourceMappingURL=ecl-app.component.d.ts.map