/// <reference types="lodash" />
import { RouteData, PaneRouteData, InteractionMode, CollectionViewState, ViewType, Pane } from './route-data';
import { Observable } from 'rxjs/Observable';
import { Router } from '@angular/router';
import { Location } from '@angular/common';
import { ConfigService } from './config.service';
import { LoggerService } from './logger.service';
import { Dictionary } from 'lodash';
import * as Models from "./models";
import * as Constants from './constants';
export declare class UrlManagerService {
    private readonly router;
    private readonly location;
    private readonly configService;
    private readonly loggerService;
    constructor(router: Router, location: Location, configService: ConfigService, loggerService: LoggerService);
    private readonly shortCutMarker;
    private readonly urlShortCuts;
    private readonly keySeparator;
    private capturedPanes;
    private currentPaneId;
    private createSubMask(arr);
    private createArrays(arr, arrays?);
    private createMask(arr);
    private arrayFromSubMask(sMask);
    private arrayFromMask(sMask);
    private getSearch();
    private getPath();
    private setNewSearch(result);
    private getIds(typeOfId, paneId);
    private mapIds(ids);
    private getAndMapIds(typeOfId, paneId);
    private getMappedValues(mappedIds);
    private getInteractionMode(rawInteractionMode);
    private getPaneParams(params, paneId);
    private setPaneRouteDataFromParms(paneRouteData, paneId, routeParams);
    private setPaneRouteData(paneRouteData, paneId);
    private isSinglePane();
    private searchKeysForPane(search, paneId, raw);
    private allSearchKeysForPane(search, paneId);
    private clearPane(search, paneId);
    private clearSearchKeys(search, paneId, keys);
    private paneIsAlwaysSingle(paneType);
    private setupPaneNumberAndTypes(pane, newPaneType, newMode?);
    private capturePane(paneId);
    private getOidFromHref(href);
    private getPidFromHref(href);
    private setValue(paneId, search, p, pv, valueType);
    private setParameter(paneId, search, p, pv);
    private getId(key, search);
    private setId(key, id, search);
    private clearId(key, search);
    private validKeysForHome();
    private validKeysForObject();
    private validKeysForMultiLineDialog();
    private validKeysForList();
    private validKeysForAttachment();
    private validKeys(path);
    private clearInvalidParmsFromSearch(paneId, search, path);
    private handleTransition(paneId, search, transition);
    private executeTransition(newValues, paneId, transition, condition);
    setHome: (paneId?: Pane) => void;
    setRecent: (paneId?: Pane) => void;
    setMenu: (menuId: string, paneId?: Pane) => void;
    setDialog: (dialogId: string, paneId?: Pane) => void;
    setMultiLineDialog: (dialogId: string, paneId: Pane) => void;
    setDialogOrMultiLineDialog: (actionRep: Models.ActionRepresentation | Models.ActionMember, paneId?: Pane) => void;
    private closeOrCancelDialog(id, paneId, transition);
    closeDialogKeepHistory: (id: string, paneId?: Pane) => void;
    closeDialogReplaceHistory: (id: string, paneId?: Pane) => void;
    setObject: (resultObject: Models.DomainObjectRepresentation, paneId?: Pane) => void;
    setObjectWithMode: (resultObject: Models.DomainObjectRepresentation, newMode: InteractionMode, paneId?: Pane) => void;
    setList: (actionMember: Models.ActionRepresentation | Models.InvokableActionMember, parms: Dictionary<Models.Value>, fromPaneId?: Pane, toPaneId?: Pane) => Dictionary<string>;
    setProperty: (href: string, paneId?: Pane) => void;
    setItem: (link: Models.Link, paneId?: Pane) => void;
    setAttachment: (attachmentlink: Models.Link, paneId?: Pane) => void;
    toggleObjectMenu: (paneId?: Pane) => void;
    private checkAndSetValue(paneId, check, set);
    setParameterValue: (actionId: string, p: Models.Parameter, pv: Models.Value, paneId?: Pane) => void;
    setCollectionMemberState: (collectionMemberId: string, state: CollectionViewState, paneId?: Pane) => void;
    setListState: (state: CollectionViewState, paneId?: Pane) => void;
    setInteractionMode: (newMode: InteractionMode, paneId?: Pane) => void;
    setItemSelected: (item: number, isSelected: boolean, collectionId: string, paneId?: Pane) => void;
    setAllItemsSelected: (isSelected: boolean, collectionId: string, paneId?: Pane) => void;
    setListPaging: (newPage: number, newPageSize: number, state: CollectionViewState, paneId?: Pane) => void;
    setError: (errorCategory: Models.ErrorCategory, ec?: Models.HttpStatusCode | Models.ClientErrorCode | undefined) => void;
    getRouteData: () => RouteData;
    getViewType(view: string): ViewType;
    getPaneRouteDataObservable: (paneId: Pane) => Observable<PaneRouteData>;
    pushUrlState: (paneId?: Pane) => void;
    getUrlState: (paneId?: Pane) => {
        paneType: Constants.PathSegment;
        search: {};
    };
    getListCacheIndexFromSearch: (search: Dictionary<string>, paneId: Pane, newPage: number, newPageSize: number, format?: CollectionViewState | undefined) => string;
    getListCacheIndex: (paneId: Pane, newPage: number, newPageSize: number, format?: CollectionViewState | undefined) => string;
    popUrlState: (paneId?: Pane) => void;
    clearUrlState: (paneId: Pane) => void;
    private swapSearchIds(search);
    swapPanes: () => void;
    private setMode(newMode);
    private getMode();
    cicero: () => void;
    gemini: () => void;
    isGemini: () => boolean;
    applicationProperties: () => void;
    logoff: () => void;
    currentpane: () => Pane;
    setHomeSinglePane: () => void;
    singlePane: (paneId?: Pane) => void;
    private getLocation(paneId);
    private isLocation(paneId, location);
    isHome: (paneId?: Pane) => boolean;
    isObject: (paneId?: Pane) => boolean;
    isList: (paneId?: Pane) => boolean;
    isError: (paneId?: Pane) => boolean;
    isRecent: (paneId?: Pane) => boolean;
    isAttachment: (paneId?: Pane) => boolean;
    isApplicationProperties: (paneId?: Pane) => boolean;
    isMultiLineDialog: (paneId?: Pane) => boolean;
    private toggleReloadFlag(search, paneId);
    triggerPageReloadByFlippingReloadFlagInUrl: (paneId?: Pane) => void;
}
