import { InjectionToken } from '@angular/core' ; import { Observable } from 'rxjs' ; /**
 * Translation config
 */ export interface TranslationConfig < T = string > { /**
     * Selected language
     */ currentLanguage ? : T ; /**
     * Default language
     */ language : T ; /**
     * Available language
     */ languages : T [ ] ; } /**
 * Translation config token
 */ export const TRANSLATION_CONFIG = new InjectionToken < TranslationConfig > ( 'TranslationConfig' ) ; /**
 * Translation service interface
 */ export abstract class TranslationService < T = string > { /**
     * Return translation config
     */ abstract getConfig ( ) ; /**
     * Return current lang
     */ abstract getLanguage ( ) ; /**
     * Get languages
     */ abstract getLanguages ( ) ; param config abstract init ( config ? ) ; param language abstract setLanguage ( language ) ; }