import type { NavigationHost, NavigationLocation, NavigationSearch } from "../lib/navigation.js"; export type MemoryNavigationOptions = Readonly<{ /** The first location, such as `/workspaces//sessions`. */ initialPath: string; /** The web app origin that app paths open against when they leave the embed. */ consoleOrigin: string; /** Whether a path renders inside the embed; anything else leaves through `openUrl`. */ handles: (pathname: string) => boolean; /** Opens a URL outside the embed. Defaults to a new browser tab. */ openUrl?: ((url: string) => void) | undefined; /** An empty tab opened inside a click, or null to leave through `openUrl`. */ openTab?: (() => Window | null) | undefined; /** Called after every in-embed location change. */ onLocationChange?: ((location: NavigationLocation) => void) | undefined; }>; /** TanStack's search encoding: strings stay bare unless they would parse as JSON. */ export declare function stringifyMemorySearch(search: NavigationSearch): string; /** * A navigation host whose location lives in memory. Created once per mount; * later option changes keep the first location. */ export declare function useMemoryNavigation(options: MemoryNavigationOptions): NavigationHost;