import { StateContext, Store } from '@ngxs/store';
import { JsTable } from '../../helpers/jstable.helper';
import { IResourceTypeRoutesRegExp, IRouteDetail } from '../../interfaces/routing.interface';
import * as Routing from './routing.actions';
import * as i0 from "@angular/core";
export interface RoutingStateModel {
    routingHistory: IRouteDetail[];
    currentRouteIndex: number;
    isRedirectAllowed: boolean;
    availableRoutes: JsTable<IResourceTypeRoutesRegExp>;
}
export declare class RoutingState {
    private _store$;
    constructor(_store$: Store);
    static getCurrentRouteUrl(state: RoutingStateModel): string;
    static geCurrentRouteIndex(state: RoutingStateModel): number;
    static getRoutingHistory(state: RoutingStateModel): IRouteDetail[];
    static getIsRedirectAllowed(state: RoutingStateModel): boolean;
    static getAvailableRoutes(state: RoutingStateModel): JsTable<IResourceTypeRoutesRegExp>;
    static getAvailableRoutesAllIds(state: RoutingStateModel): string[];
    static getAvailableRoutesById(state: RoutingStateModel): {
        [resourceTypeId: string]: IResourceTypeRoutesRegExp;
    };
    addCurrentRoute(ctx: StateContext<RoutingStateModel>, action: Routing.AddCurrentRoute): void;
    restoreRoute(ctx: StateContext<RoutingStateModel>, action: Routing.RestoreRoute): void;
    removeLastRoute(ctx: StateContext<RoutingStateModel>): void;
    setIsRedirectAllowed(ctx: StateContext<RoutingStateModel>, action: Routing.SetIsRedirectAllowed): void;
    setAvailableRoutes(ctx: StateContext<RoutingStateModel>, action: Routing.SetAvailableRoutes): void;
    updateSelectedEntryRoute(ctx: StateContext<RoutingStateModel>, action: Routing.UpdateSelectedEntryRoute): void;
    updateSelectedEntryChildrenRoutes(ctx: StateContext<RoutingStateModel>, action: Routing.UpdateSelectedEntryChildrenRoutes): void;
    updateCurrentUrl(ctx: StateContext<RoutingStateModel>, action: Routing.UpdateCurrentUrl): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RoutingState, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<RoutingState>;
}
