import { Http } from '@angular/http';
import { Observable } from 'rxjs/Rx';
import { ApiRoot } from 'dotcms-js/dotcms-js';
import { LoggerService } from 'dotcms-js/dotcms-js';
export declare class TreeNode {
    [key: string]: TreeNode | any;
    _p: TreeNode;
    _k: string;
    _loading: Promise<TreeNode>;
    _loaded: boolean;
    _value: string;
    constructor(parent: TreeNode, key: string);
    $addAllFromJson(key: string, childJson: any): void;
    $isLeaf(): boolean;
    $isLoaded(): boolean;
    $isLoading(): boolean;
    $markAsLoaded(): void;
    $markAsLoading(promise: Promise<TreeNode>): void;
    $children(): TreeNode[];
    $child(cKey: string): TreeNode;
    $descendant(path: string[]): TreeNode;
    $isPathLoaded(path: string[]): boolean;
}
export declare class I18nService {
    private loggerService;
    root: TreeNode;
    private _apiRoot;
    private _http;
    private _baseUrl;
    constructor(apiRoot: ApiRoot, http: Http, loggerService: LoggerService);
    makeRequest(url: any): Observable<Response>;
    get(msgKey: string, defaultValue?: any): Observable<TreeNode | any>;
    getForLocale(locale: string, msgKey: string, forceText?: boolean, defaultValue?: any): Observable<TreeNode | any>;
}
