import { OnDestroy } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import { Observable, Subject, Subscription } from 'rxjs';
import { UserPreferenceService } from '../user/services/user-preference.service';
import { LoggerService } from '../logger/services/logger.service';
import * as i0 from "@angular/core";
export interface Translation {
    key: string;
    translation: any;
}
export declare class LanguageService implements OnDestroy {
    protected _translate: TranslateService;
    protected _preferenceService: UserPreferenceService;
    protected _logger: LoggerService;
    protected _translations: Array<Translation>;
    protected _langChange$: Subject<string>;
    protected subPreference: Subscription;
    protected subTranslate: Subscription;
    protected _defaultLanguage: string;
    constructor(_translate: TranslateService, _preferenceService: UserPreferenceService, _logger: LoggerService);
    ngOnDestroy(): void;
    protected checkLocalStorage(): void;
    setDefaultLang(lang: string): void;
    setLanguage(lang: string, saveToPreferences?: boolean): void;
    addLanguage(lang: string, translation: Object): void;
    removeLanguage(lang: string): void;
    getTranslations(): Array<Translation>;
    getLanguage(): string;
    getLangChange$(): Observable<string>;
    protected checkIfLangExists(lang: string): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<LanguageService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<LanguageService>;
}
