import type Vue from "nativescript-vue";
import { NSVueRouterOptions, RouterServiceOptions, RouteOptions, ErrorCallback, Route, RouteBackCallback, RouteToCallback, NSVueRouterHistory } 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);
    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: 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;
}