///
import { AbstractSkeletosPromiseAction, ISkeletosCommand } from "skeletos";
import { AbstractRootRouteState } from "../extendible/state/AbstractRootRouteState";
import { Request, Response } from "../../shared-interfaces/ExpressInterfaces";
import { AbstractRouteState } from "../";
/**
* Runs all the onRoute** actions across all the RouteStates, and returns a promise that is resolved once these actions
* have been run.
*/
export declare class FireRouteUpdateAction extends AbstractSkeletosPromiseAction {
private currentRootRouteState;
private oldRootRouteState;
private originalServerRequest;
private originalServerResponse;
private loadingStatesToReset;
constructor(currentRootRouteState: AbstractRootRouteState, oldRootRouteState?: AbstractRootRouteState, originalServerRequest?: Request, originalServerResponse?: Response);
protected getCommands(): ISkeletosCommand[] | object;
/**
* Figures out if an oldRoute is any different than the newRoute.
*
* @param {AbstractRouteState} oldRoute
* @param {AbstractRouteState} newRoute
* @returns {boolean}
*/
protected areDifferent(oldRoute: AbstractRouteState, newRoute: AbstractRouteState): boolean;
/**
* This method gets called when the requested URL cannot be synchronized to the route state tree, i.e. a 404.
*
* The routeThatCannotBeFound parameter has a currentRoute string that is not null, yet the
* routeThatCannotBeFound.getCurrentRouteState() returns null.
*
* @param {AbstractRouteState} routeThatCannotBeFound
*/
protected do404(routeThatCannotBeFound: AbstractRouteState): void;
/**
* Checks if there is a 404 at the current route and if there is then returns a 404 command to use.
*
* @param {AbstractRouteState} newRoute
* @returns {ISkeletosCommand}
*/
private get404Command(newRoute);
/**
* Adds the onRoute* commands to the array of commands to be run in series and in parallel respectively.
*
* @param {AbstractRouteState} oldRoute
* @param {AbstractRouteState} newRoute
* @param {AbstractRouteAction[]} seriesCmds
* @param {AbstractRouteAction[]} parallelCmds
* @param {boolean} doAddNonTreeCommands
*/
private addCommands(oldRoute, newRoute, seriesCmds, parallelCmds, doAddNonTreeCommands);
private determineLoadingStates();
}