import { Observable } from 'rxjs';
import { L10nProvider } from '../models/types';
import { L10nConfig } from '../models/l10n-config';
import { L10nCache } from './l10n-cache';
import { L10nTranslationLoader } from './l10n-translation-loader';
import * as i0 from "@angular/core";
/**
 * Implement this class-interface to create a translation fallback.
 */
export declare abstract class L10nTranslationFallback {
    /**
     * This method must contain the logic to get the ordered loaders.
     * @param language The current language
     * @param provider The provider of the translations data
     * @return An array of loaders
     */
    abstract get(language: string, provider: L10nProvider): Observable<any>[];
    static ɵfac: i0.ɵɵFactoryDeclaration<L10nTranslationFallback, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<L10nTranslationFallback>;
}
export declare class L10nDefaultTranslationFallback implements L10nTranslationFallback {
    private config;
    private cache;
    private translationLoader;
    constructor(config: L10nConfig, cache: L10nCache, translationLoader: L10nTranslationLoader);
    /**
     * Translation data will be merged in the following order:
     * 'language'
     * 'language[-script]'
     * 'language[-script][-region]'
     */
    get(language: string, provider: L10nProvider): Observable<any>[];
    static ɵfac: i0.ɵɵFactoryDeclaration<L10nDefaultTranslationFallback, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<L10nDefaultTranslationFallback>;
}
