import * as Vue from "vue";
import { ErrorCallback, NSVueRouterHistory, NSVueRouterOptions, Route, RouteBackCallback, RouteOptions, RouterServiceOptions, RouteToCallback } from "./typings/router-service";
import { RouterGuardsService } from "./router-guards-service";
import { AfterEachHookCallback, BeforeEachGuardCallback, BeforeResolveGuardCallback } from "./typings/router-guards-service";
export declare class RouterService {
    readonly routes: Route[];
    history: NSVueRouterHistory;
    currentRoute: Route;
    isNavigating: boolean;
    newRoute: Route | null;
    routerGuardsService: RouterGuardsService;
    routeToCallback: RouteToCallback;
    routeBackCallback: RouteBackCallback;
    routeBackFallbackPath: string;
    protected logger: any;
    protected defaultOptions: RouteOptions;
    private vm;
    private frame;
    private errorCallbacks;
    constructor({ routes }: NSVueRouterOptions, { routeToCallback, routeBackCallback, routeBackFallbackPath, logger, frame, vm, }: RouterServiceOptions);
    install(app: any): void;
    push(route: Route | string, options?: RouteOptions): void;
    back(options?: RouteOptions, emptyRouteFallbackPath?: any): void;
    onError(callback: ErrorCallback): void;
    beforeEach(callback: BeforeEachGuardCallback): void;
    beforeResolve(callback: BeforeResolveGuardCallback): void;
    invokeBeforeResolve(): boolean;
    afterEach(callback: AfterEachHookCallback): void;
    invokeAfterEach(): void;
    updateVm(vm: typeof Vue): void;
    getRoute(route: Route | string): Route | null;
    getCurrentRoute(): Route | null;
    setCurrentRoute(route: Route): void;
    getNewRoute(): Route | null;
    getPreviousRoute(): Route | null;
    setNavigationState(toggle: boolean): void;
    appendRouteHistory(routePath: string): void;
    clearRouteHistory(): void;
    private isRouteAvailable;
    private setNewRoute;
    private isValidRoute;
    private navigateTo;
    private navigateBack;
    private performContextAction;
}
