type Router = {
back: () => void
canGoBack: () => boolean
push: (href: Href, options?: LinkToOptions) => void
navigate: (href: Href, options?: LinkToOptions) => void
replace: (href: Href, options?: LinkToOptions) => void
dismiss: (count?: number) => void
dismissAll: () => void
canDismiss: () => boolean
setParams: <T = ''>(
params?: T extends '' ? Record<string, string | undefined | null> : InputRouteParams<T>
) => void
subscribe: (listener: RootStateListener) => () => void
onLoadState: (listener: LoadingStateListener) => () => void
}