import { BalLogger } from '../log';
import { BalBrand, BalConfig, BalIcons, BalLanguage, BalRegion } from './config.types';
import { BalConfigObserver } from './observable/observer';
export declare class Config {
    private _componentObservers;
    private _observers;
    private _config;
    _jmp?: (c: any) => any;
    _raf?: (c: any) => number;
    _ael?: (el: any, eventName: string, listener: any, options: any) => void;
    _rel?: (el: any, eventName: string, listener: any, options: any) => void;
    _ce?: (eventName: string, opts?: any) => any;
    get brand(): BalBrand;
    set brand(brand: BalBrand);
    get locale(): string;
    get region(): BalRegion;
    set region(region: BalRegion);
    get language(): BalLanguage;
    set language(language: BalLanguage);
    get allowedLanguages(): BalLanguage[];
    set allowedLanguages(allowedLanguages: BalLanguage[]);
    get icons(): BalIcons;
    set icons(icons: BalIcons);
    get logger(): BalLogger;
    set logger(logger: BalLogger);
    get animated(): boolean;
    set animated(animated: boolean);
    get httpFormSubmit(): boolean;
    set httpFormSubmit(httpFormSubmit: boolean);
    attach(observer: BalConfigObserver): void;
    detach(observer: BalConfigObserver): void;
    attachComponent(observer: BalConfigObserver): void;
    detachComponent(observer: BalConfigObserver): void;
    toString(): string;
    reset(config: BalConfig): void;
    private _notify;
}
export declare const config: Config;
export declare const configFromLocalStorage: (win: Window) => any;
