import { ActivatedRoute, Router } from '@angular/router';
import { DialogService } from '../controls/dialog/dialog.service';
import { AppContextService } from './app-context.service';
import { UserAliveService } from './user-alive.service';
import * as i0 from "@angular/core";
/**
 * Options to override the default behavior of the navigation service
 */
export interface NavigatorServiceOptions {
    /**
     * The angular 2 default route to use during initialization and
     * if the application gets deactivated but still running
     * See @angular/router - Router.navigate method for more details
     */
    idleRoute?: any[];
}
export declare class NavigationService {
    private appContextService;
    private userAliveService;
    private router;
    private activatedRoute;
    private static initialWaitTime;
    private readonly defaultNavigationOptions;
    private lastRoute;
    private subscription;
    private options;
    private idleUrl;
    private active;
    private enteringModule;
    private dialogServiceMap;
    private openContext;
    private deactivateContext;
    private moduleName;
    private RpcObservablePerformanceConfigServer;
    private rpcObservableUpdateThemeServer;
    /**
     * Creates a new instance of this service
     */
    constructor(appContextService: AppContextService, userAliveService: UserAliveService, router: Router, activatedRoute: ActivatedRoute);
    /**
     * Initialize navigation communication from/to the shell.
     *
     *  Registers the methods with the remote RPC defined in the manifest
     *  Subscribes to the router events and reports the breadcrumb items
     *  back to the rpc remote
     *
     * @param options The options to override the default behavior
     */
    initialize(options?: NavigatorServiceOptions): void;
    /**
     * Shutdown the navigation communication from/to the shell.
     */
    shutdown(): void;
    /**
     * Map dialog service and dialog id so that correct dialog service instance can be found
     * @param dialogService dialog service to be registered
     * @param dialogId associated dialog id
     */
    registerDialogService(dialogService: DialogService, dialogId: string): void;
    private configurePerformanceProfile;
    private onInit;
    /**
     * Call to dialog service to request close a dialog
     * @param data data object to close a dialog from shell
     */
    private onOverlayClose;
    /**
     * Repeated open called until navigation is established or failed.
     *
     * @param data the RpcOpenData data.
     */
    private onOpen;
    /**
     * Repeated called until Guard is continued or cancelled.
     *
     * @param data the void data.
     */
    private onDeactivate2;
    private onActivate;
    private onShutdown;
    private addDefaultNavigationOptions;
    static ɵfac: i0.ɵɵFactoryDeclaration<NavigationService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NavigationService>;
}
