import { type IStream } from '../stream/index.js'; import type { PathEvent } from './types.js'; /** * Stream of location changes. Replays the current `document.location` once * on subscribe (so the router synchronizes immediately), then re-emits on * browser back/forward (popstate) and after `pushUrl` / `replaceUrl`. */ export declare const locationChange: IStream; /** * Programmatically navigate to a path-relative URL like `/p/guide?x=1#sec`. * Pushes a history entry and notifies the router. No-op when the target * equals the current URL (avoids a redundant entry). */ export declare const pushUrl: (url: string) => void; /** * Like `pushUrl` but replaces the current history entry instead of pushing * a new one. */ export declare const replaceUrl: (url: string) => void; /** * Build a `PathEvent` stream rooted at `baseRoute` (the synthetic name for * the path under `document.baseURI`). Pass the result as `fragmentsChange` * to `router.create`. Strips query and hash; route fragments only see the * pathname. */ export declare const fragmentsFromLocation: (baseRoute: string) => IStream; /** * Stream op that writes `document.title = title` whenever the wrapped * stream emits. Compose inside a `match()` / `contains()` gate so the title * commits when the matched subtree mounts: * * match(guideRoute)(commitTitle('Guide')($Guide())) */ export declare const commitTitle: (title: string) => (node: IStream) => IStream;