import * as Vue from 'vue';
import { isServer } from '@tanstack/router-core/isServer';
import { useStore } from '@tanstack/vue-store';
import { useRouter } from './useRouter';
export function useRouterState(opts) {
    const contextRouter = useRouter({
        warn: opts?.router === undefined,
    });
    const router = opts?.router || contextRouter;
    // Return a safe default if router is undefined
    if (!router || !router.stores.__store) {
        return Vue.ref(undefined);
    }
    // During SSR we render exactly once and do not need reactivity.
    // Avoid subscribing to the store on the server since the server store
    // implementation does not provide subscribe() semantics.
    const _isServer = isServer ?? router.isServer;
    if (_isServer) {
        const state = router.stores.__store.get();
        return Vue.ref(opts?.select ? opts.select(state) : state);
    }
    return useStore(router.stores.__store, (state) => {
        if (opts?.select)
            return opts.select(state);
        return state;
    });
}
//# sourceMappingURL=useRouterState.jsx.map