/**
 * @packageDocumentation
 * @module translate
 */
import { HttpClient } from '@angular/common/http';
import { OnDestroy } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { TranslateKey, TranslateOptions, Translation, Translations } from './types';
import * as i0 from "@angular/core";
export declare class TranslateService implements OnDestroy {
    private readonly http;
    private readonly baseHref;
    readonly translationsAdded$: Subject<void>;
    private readonly destroy$$;
    readonly translationsList: Array<Readonly<Translations>>;
    readonly remoteTranslationsList: Array<Readonly<Translations>>;
    readonly options: TranslateOptions;
    locale: string;
    readonly locale$: Observable<string>;
    get locales(): string[];
    get fallbackLocale(): string;
    constructor(http: HttpClient, baseHref: string, options: TranslateOptions, translationList: Translations[]);
    ngOnDestroy(): void;
    /**
     * @param key - 翻译key
     * @param data - 根据翻译上下文数据获取翻译内容，翻译项不存在直接返回 key 文本
     * @param ignoreNonExist - 开发环境是否忽视不存在的翻译项
     */
    get(key: TranslateKey, data?: unknown): string;
    /**
     * 直接返回翻译文本模板
     * @param key - 翻译key
     * @param ignoreNonExist - 开发环境是否忽视不存在的翻译项
     */
    getRaw(key: TranslateKey): string;
    /**
     * 根据 `locales` 循环切换当前区域设置
     */
    toggleLocale(): void;
    setLocale(locale: string): void;
    /**
     * 手动添加语言包
     */
    addTranslations(translations: Translations): void;
    /**
     * 手动添加语言包
     */
    addRemoteTranslations(remoteUrl: string): void;
    /**
     * 从远程 url 模板和区域获取翻译包
     */
    fetchTranslation(remoteUrl: string): Observable<Translations>;
    fetchTranslation(remoteUrl: string, locale: string): Observable<Translation>;
    private _getLooseLocale;
    private _getValue;
    private _getWithFallback;
    private _getBase;
    protected _get(key: string, locale?: string): string;
    private _compareKeys;
    static ɵfac: i0.ɵɵFactoryDeclaration<TranslateService, [null, null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TranslateService>;
}
