import { Http } from '@angular/http';
import * as Ro from './ro-interfaces';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';
export interface IAppConfig {
    authenticate: boolean;
    authClientId?: string;
    authDomain?: string;
    appPath: string;
    applicationName: string;
    logoffUrl: string;
    postLogoffUrl: string;
    defaultPageSize: number;
    listCacheSize: number;
    shortCutMarker: string;
    urlShortCuts: string[];
    keySeparator: string;
    objectColor: string;
    linkColor: string;
    autoLoadDirty: boolean;
    showDirtyFlag: boolean;
    defaultLocale: string;
    httpCacheDepth: number;
    transientCacheDepth: number;
    recentCacheDepth: number;
    doUrlValidation: boolean;
    leftClickHomeAlwaysGoesToSinglePane: boolean;
    logLevel: "error" | "warn" | "info" | "debug" | "none";
    dateInputFormat: string;
    colors?: {
        typeMap?: {
            [index: string]: number;
        };
        regexArray?: {
            regex: RegExp;
            color: number;
        }[];
        subtypeMap?: {
            [index: string]: number;
        };
        default?: number;
    };
    masks?: {
        currencyMasks?: {
            [index: string]: {
                format: Ro.FormatType;
                symbol?: string;
                digits?: string;
                locale?: string;
            };
        };
        dateMasks?: {
            [index: string]: {
                format: Ro.FormatType;
                mask: string;
                tz?: string;
                locale?: string;
            };
        };
        numberMasks?: {
            [index: string]: {
                format: Ro.FormatType;
                digits?: string;
                locale?: string;
            };
        };
    };
}
export declare function configFactory(config: ConfigService): () => Promise<boolean>;
export declare function localeFactory(config: ConfigService): string;
export declare class ConfigService {
    private readonly http;
    private appConfig;
    constructor(http: Http);
    config: IAppConfig;
    getAppPath(appPath: string): string;
    checkAppPath(): void;
    load(): Promise<boolean>;
}
