import { Observable } from 'rxjs/Rx';
import { ApiRoot } from 'dotcms-js/dotcms-js';
import { CoreWebService } from 'dotcms-js/dotcms-js';
export interface IUser {
    givenName?: string;
    surname?: string;
    roleId?: string;
    userId?: string;
}
export interface IBundle {
    name?: string;
    id?: string;
}
export interface IPublishEnvironment {
    name?: string;
    id?: string;
}
export declare class BundleService {
    _apiRoot: ApiRoot;
    private coreWebService;
    private _bundleStoreUrl;
    private _loggedUserUrl;
    private _addToBundleUrl;
    private _pushEnvironementsUrl;
    private _pushRuleUrl;
    private bundles$;
    private _bundlesAry;
    private _environmentsAry;
    static fromServerBundleTransformFn(data: any): IBundle[];
    static fromServerEnvironmentTransformFn(data: any): IPublishEnvironment[];
    constructor(_apiRoot: ApiRoot, coreWebService: CoreWebService);
    getLoggedUser(): Observable<IUser>;
    loadBundleStores(): void;
    _doLoadBundleStores(): Observable<IBundle[]>;
    loadPublishEnvironments(): Observable<any>;
    _doLoadPublishEnvironments(): Observable<IPublishEnvironment[]>;
    addRuleToBundle(ruleId: string, bundle: IBundle): Observable<{
        errorMessages: string[];
        total: number;
        errors: number;
    }>;
    pushPublishRule(ruleId: string, environmentId: string): Observable<{
        errorMessages: string[];
        total: number;
        bundleId: string;
        errors: number;
    }>;
    private getFormattedDate(date);
    private getPublishRuleData(ruleId, environmentId);
}
