import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { TldTranslateSystemManagementService, TldTranslateConfigService } from '../../tld-common/services';
import { ISwitcherTranslationOptions } from '../models/switcher-options.model';
import * as i0 from "@angular/core";
export declare class TldTranslateSwitcherComponent implements OnInit, AfterViewInit, OnDestroy {
    private readonly config;
    private readonly tldSystem;
    private elRef;
    wrapper: ElementRef;
    fromLabel: ElementRef;
    sourceAside: ElementRef;
    toLabel: ElementRef;
    domainWrapper: ElementRef;
    vendorWrapper: ElementRef;
    collectionWrapper: ElementRef;
    onResize(): void;
    buttonDisabled: boolean;
    showTranslateButton: boolean;
    hideOnSmallScreens: boolean;
    disabled: boolean;
    hideLangMenuLabels: boolean;
    maxDisplayedLanguages: number;
    collections: any[];
    showDomainsWithLanguageName: boolean;
    isCollectionsActivated: boolean;
    /** If this is set to true, component parent is checked for displayed language count. */
    useParentWidth: boolean;
    /** Show loader instead of translate button */
    loader: boolean;
    settings: ISwitcherTranslationOptions;
    onDomainChange: EventEmitter<string>;
    onActionClick: EventEmitter<any>;
    onSourceLanguageChange: EventEmitter<any>;
    onTargetLanguageChange: EventEmitter<any>;
    onLanguageSwap: EventEmitter<string>;
    onVendorChange: EventEmitter<string>;
    languageCountByScreenSize: number;
    system: {
        systemId: string;
        sourceLanguageCode: string;
        targetLanguageCode: string;
    };
    get visibleLanguageCount(): number;
    get collectionsVisible(): boolean;
    get showVendors(): boolean;
    get showDomains(): boolean | import("@tilde-nlp/ngx-translate").ISelectedLanguage;
    get isSwapLanguagesDisabled(): boolean;
    get domainSide(): "src" | "trg";
    get swapIconPosition(): "src" | "center";
    private readonly destroy$;
    readonly srcLangTestId = "src-lang-menu";
    readonly trgLangTestId = "trg-lang-menu";
    private isTerminologySupported;
    constructor(config: TldTranslateConfigService, tldSystem: TldTranslateSystemManagementService, elRef: ElementRef);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    actionClick(): void;
    domainChange(systemId: string): void;
    sourceLangChange(language: string): void;
    swapSourceAndTarget(): void;
    targetLangChange(language: string): void;
    vendorChange(systemId: string): void;
    private getElementRefWidth;
    private subscribeToActiveData;
    static ɵfac: i0.ɵɵFactoryDeclaration<TldTranslateSwitcherComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TldTranslateSwitcherComponent, "tld-translate-switcher", never, { "buttonDisabled": { "alias": "buttonDisabled"; "required": false; }; "showTranslateButton": { "alias": "showTranslateButton"; "required": false; }; "hideOnSmallScreens": { "alias": "hideOnSmallScreens"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "hideLangMenuLabels": { "alias": "hideLangMenuLabels"; "required": false; }; "maxDisplayedLanguages": { "alias": "maxDisplayedLanguages"; "required": false; }; "collections": { "alias": "collections"; "required": false; }; "showDomainsWithLanguageName": { "alias": "showDomainsWithLanguageName"; "required": false; }; "isCollectionsActivated": { "alias": "isCollectionsActivated"; "required": false; }; "useParentWidth": { "alias": "useParentWidth"; "required": false; }; "loader": { "alias": "loader"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; }, { "onDomainChange": "onDomainChange"; "onActionClick": "onActionClick"; "onSourceLanguageChange": "onSourceLanguageChange"; "onTargetLanguageChange": "onTargetLanguageChange"; "onLanguageSwap": "onLanguageSwap"; "onVendorChange": "onVendorChange"; }, never, never, false, never>;
}
