import { OnInit } from '@angular/core';
import { Http } from '@angular/http';
import { Subject } from 'rxjs/Subject';
/**
 * <p>Internationalization service to format dates and messages using dictionary files.</p>
 */
export declare class I18NService implements OnInit {
    private http;
    private locale;
    private dateFormat;
    private currencyFormat;
    private dictionary;
    onLangChange: Subject<string>;
    constructor(http: Http);
    ngOnInit(): void;
    /**
     * <p> Sets new locale and returns Promise when new dictionary is uploaded to memory.</p>
     * <p> Locale format examples: en-US, fr-FR, fr-CA, de-DE etc.</p>
     */
    setLocale(locale: string): Promise<any>;
    /**
     * <p> Gets current locale.</p>
     */
    getLocale(): string;
    /**
     * <p> Gets current language.</p>
     */
    getLanguageId(): string;
    /**
     * <p> Gets current country.</p>
     */
    getCountryId(): string;
    /**
     * <p> Format date according to the current locale.</p>
     * <p> Date format is taken from dictionary.</p>
     */
    formatDate(value: any, componentName?: string): string;
    /**
     * <p> Format date according to the current locale.</p>
     * <p> Date format corresponds to the moment.js tokens:</p>
     * <p> LT - Time</p>
     * <p> LTS - Time with seconds</p>
     * <p> L - Month numeral, day of month, year</p>
     * <p> l - Month numeral, day of month, year - shortcut</p>
     * <p> LL - Month name, day of month, year</p>
     * <p> ll - Month name, day of month, year - shortcut</p>
     * <p> LLL - Month name, day of month, year, time</p>
     * <p> lll - Month name, day of month, year, time - shortcut</p>
     * <p> LLLL - Month name, day of month, day of week, year, time</p>
     * <p> llll - Month name, day of month, day of week, year, time - shortcut</p>
     */
    formatDateWithTokens(value: any, format: string): string;
    /**
     * <p> Format currency according to the current locale.</p>
     */
    formatCurrency(value: number, componentName?: string): string;
    /**
     * <p> Looks for the translated value from the current dictionary.</p>
     * <p> Can also return an object.</p>
     */
    lookup(path: string, componentName?: string): any;
    /**
     * <p> Sets new dictionary URL.</p>
     * <p> Dictionary files must be named according to the locales, ex: en.json, fr.json etc.</p>
     * <p> Therefore, if the URL is "http://my_site/my_dictionary", the system will try to find
     * new dictionaries under "http://my_site/my_dictionary/en.json", "http://my_site/my_dictionary/fr.json" etc.</p>
     */
    setDictionaryURL(path: string): Promise<any>;
    /**
     * <p> Sets new dictionary URL for the particular component.</p>
     * <p> Dictionary files must be named according to the locales, ex: en.json, fr.json etc.</p>
     * <p> Therefore, if the URL is "http://my_site/my_dictionary", the system will try to find
     * new dictionaries under "http://my_site/my_dictionary/en.json", "http://my_site/my_dictionary/fr.json" etc.</p>
     * <p> NOTE: If dictionary for this path and locale is already in memory, then it will NOT be reset.</p>
     */
    setComponentDictionaryURL(path: string, componentName: string): Promise<any>;
    /**
     * Sets default locale based on language, if locale was not yet set by user.
     */
    private setDefaultLocaleByLanguage();
}
