import { AfterViewInit, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
import { MatMenu } from '@angular/material/menu';
import { TranslateService } from '@ngx-translate/core';
import { ILangListItem, ILanguageWithTranslation, ISelectedLanguage } from '../../models';
import { OpenCloseButtonComponent } from '@tilde-nlp/ngx-common';
import * as i0 from "@angular/core";
export declare class TldLangListComponent implements AfterViewInit, OnDestroy {
    private readonly translate;
    wrapper: ElementRef;
    menu: MatMenu;
    openCloseButton: OpenCloseButtonComponent;
    disabled: boolean;
    pxPerLanguage: number;
    set languages(languageList: ILangListItem[]);
    /** Id for panel class. For testing purposes. */
    testId: string;
    private _selected;
    set selected(val: ISelectedLanguage);
    get selected(): ISelectedLanguage;
    private _maxDisplayedLanguages;
    set maxDisplayedLanguages(val: number);
    get maxDisplayedLanguages(): number;
    get firstVisible(): ILanguageWithTranslation;
    showDomainsWithLanguageName: boolean;
    onLanguageChange: EventEmitter<string>;
    onDomainChange: EventEmitter<string>;
    currentLanguage: string;
    menuLanguageList: ILanguageWithTranslation[];
    visibleLanguageList: ILanguageWithTranslation[];
    readonly menuTriggerAriaCode = "ARIA_LABELS.OTHER_LANGUAGES_TRIGGER";
    readonly languageLocalizationKey = "LANGUAGES";
    readonly languageCodePropertyName = "code";
    private duplicateCodes;
    private languageList;
    private readonly destroy$;
    constructor(translate: TranslateService);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onMenuOpen(): void;
    isActive(language: any | ILanguageWithTranslation): boolean;
    selectLanguage(language: ILanguageWithTranslation): void;
    /**
     * Creates visible language list and menu language list that is used in template.
     * Uses component variable "languageList" which gets passed as input param.
     */
    private recreateLanguageLists;
    private ensureSelectedIsVisible;
    private isEqualWithSelected;
    private toogleDomainVisibility;
    static ɵfac: i0.ɵɵFactoryDeclaration<TldLangListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TldLangListComponent, "tld-lang-list", never, { "disabled": { "alias": "disabled"; "required": false; }; "pxPerLanguage": { "alias": "pxPerLanguage"; "required": false; }; "languages": { "alias": "languages"; "required": false; }; "testId": { "alias": "testId"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "maxDisplayedLanguages": { "alias": "maxDisplayedLanguages"; "required": false; }; "showDomainsWithLanguageName": { "alias": "showDomainsWithLanguageName"; "required": false; }; }, { "onLanguageChange": "onLanguageChange"; "onDomainChange": "onDomainChange"; }, never, ["*"], false, never>;
}
