import { ExtractParamName, ExtractParamType } from './params'; import { Param } from './paramTypes'; import { Routes } from './route'; import { RouteGetByKey } from './routeWithParams'; import { MakeOptional } from '../utilities/makeOptional'; import { Identity } from './utilities'; export type ToState | undefined> = TState extends undefined ? Record : unknown extends TState ? {} : TState; export type ExtractRouteStateParamsAsOptional> = { [K in keyof TParams]: ExtractParamType | undefined; }; export type RouteStateByName = ExtractStateParams>; type ExtractStateParams = TRoute extends { state: infer TState extends Record; } ? ExtractParamTypes : Record; type ExtractParamTypes> = Identity]: ExtractParamType; }>>; export {};