Source: router/utils/routing-pipeline/types/routing_pipeline_types.js

/**
 * @template T
 * @typedef {{ skipScrollStateRestore?: boolean } & T} routeBuildPipelineDataArgs
 * 
 */

/**
 * @typedef { { stateInfo: { newHistoryState: AppHistoryState, skipPushState: boolean, rootUrl: string } } } HistoryStateInfo
 * 
 * 
 * @typedef BaseRouteBuildPipelineArgs
 * @property {RoutingInfo} targetRouteEntry
 * @property {string} fullURL Complete URL for the route (params and queries included)
 * @property {routeBuildPipelineDataArgs<{}>} routeBuildPipelineDataArgs
 * @property {{ hasPopped: boolean, isBack: boolean }} popEvent
 * @property {boolean} skipConsentFromCancel
 * 
 * @typedef { BaseRouteBuildPipelineArgs & HistoryStateInfo } RouteBuildPipelineArgs
 * 
 * @typedef DiffTargetEntryInfo Use this in actual inflation
 * @property {boolean} inflationOverhaul Whether the whole targetRouteEntry is to be inflated
 * @property {number} childDiffIndex
 * 
 * @typedef { RoutingInfo & { fullURL: string, savedFragmentState: SavedFragmentState } } ExtendedRoutingInfo
 * 
 * @typedef InflatedRoutingInfo Inflated type of routing info with frags created
 * @property {AppMainFragmentInstance} inflatedTarget
 * @property {AppChildFragmentInstance[]} inflatedNestedChildFragments
 * @property {string} fullURL
 * 
 * @typedef RouteBuildInfo
 * @property {InflatedRoutingInfo} inflatedRoutingInfo
 * @property {SavedFragmentState} savedState
 * 
 * 
 */

/**
 * @template T
 * @typedef { RouteBuildPipelineArgs & { extendedData: T } } ExtGenericRouteBuildPipelineArgs
 * 
 */