import * as Redux from "redux"; export declare type UriToRoute = (uri: string) => Route; export declare type RouteToUri = (route: Route) => string; export declare const load: (dispatch: Redux.Dispatch, uriToRoute: UriToRoute, baseUri?: string, isHotReloading?: boolean) => () => void; export interface State { route: Route; } export declare type Action = Goto; export declare enum ActionType { Goto = "Goto", } export declare const reactsTo: (action: Redux.Action) => action is Goto; export interface GotoOpts { viaHistory?: boolean; noBack?: boolean; } export interface Goto { type: ActionType.Goto; route: Route; opts: GotoOpts; } export declare const goto: (route: Route, opts?: GotoOpts) => Goto; export declare const update: (state: State, action: Goto, routeToUri: RouteToUri, baseUri?: string) => State;