import { ChangeDetectorRef, EventEmitter } from '@angular/core';
import { GlobalConfig, I18nService } from '@eui/core';
import { Subject } from 'rxjs';
import { EclBaseEvent, EclLanguage } from '../../model';
import { EclLanguageService } from '../../services/ecl-language.service';
import { ECLBaseDirective } from '../ecl-base.directive';
import { EclLanguageListComponent } from '../ecl-language-list';
import { EclSiteHeaderComponent } from '../ecl-site-header';
import * as i0 from "@angular/core";
export declare class EclAppLanguageDismissEvent extends EclBaseEvent {
    language?: EclLanguage;
    constructor(language?: EclLanguage);
}
export declare class EclAppComponent extends ECLBaseDirective {
    protected config: GlobalConfig;
    protected eclLanguageService: EclLanguageService;
    protected i18nService: I18nService;
    protected cd: ChangeDetectorRef;
    eclSiteHeader: EclSiteHeaderComponent;
    eclLanguageList: EclLanguageListComponent;
    languageDismiss: EventEmitter<EclAppLanguageDismissEvent>;
    languages: Array<EclLanguage>;
    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, "ecl-app", never, {}, { "languageDismiss": "languageDismiss"; }, ["eclSiteHeader"], ["*"], false>;
}
//# sourceMappingURL=ecl-app.component.d.ts.map