import { Observable } from "../../../infrastructure/observer/Observable";
import { ISO639_1 } from "../types/Country";
/**
 * Interface representing a language service that manages supported languages.
 * @template LSupported The type of supported languages, constrained to ISO639_1 codes.
 */
export interface ILanguageService<LSupported extends ISO639_1> {
    /**
     * Collection of languages supported by the application.
     */
    readonly supportedLanguages: LSupported[];
    /**
     * Observable that emits updates when the country code changes.
     */
    readonly countryCode: Observable<LSupported>;
    /**
     * @returns {LSupported} The default language code.
     */
    get defaultLanguage(): LSupported;
}
