import type { AppRouteManifestEntryV3, AppRouteManifestRouteV3, AppRouteManifestV3, AppRouteManifestDevicePolicyV3 } from 'openxiangda-contracts/browser'; export type StandardRouteManifestDevice = 'desktop' | 'mobile'; export interface StandardRouteManifestLocation { pathname: string; search?: string; hash?: string; } export interface StandardRouteManifestNegotiation { entryCode: string; from: StandardRouteManifestDevice; to: StandardRouteManifestDevice; pathname: string; search: string; hash: string; } export interface StandardRouteManifestIndex { manifest: Readonly; entries: ReadonlyMap>; routes: readonly Readonly[]; } /** * Validate and index the compiler-owned standard route manifest once at the * application boundary. No component or router is allowed to provide a * second standard-route catalog. */ export declare function createStandardRouteManifestIndex(manifest: AppRouteManifestV3, appCode: string): StandardRouteManifestIndex; export declare function standardRouteManifestPath(index: StandardRouteManifestIndex, entryCode: string, device: StandardRouteManifestDevice): string | undefined; /** * Resolve the browser device family used by standard paired surfaces. * Unknown or non-finite widths conservatively use the desktop family; a * browser can still negotiate again once it reports a real viewport width. */ export declare function standardRouteManifestDeviceForViewport(policy: AppRouteManifestDevicePolicyV3, width: number): StandardRouteManifestDevice; /** * Find a standard route pair by pathname and project it to the requested * device. The manifest is the only route catalog used here: the helper does * not know any Todo, Workflow, or application-specific path. `undefined` * means that the location is not a standard pair, already targets the * requested device, or cannot safely carry the target route's parameters. */ export declare function negotiateStandardRoute(index: StandardRouteManifestIndex, location: StandardRouteManifestLocation, targetDevice: StandardRouteManifestDevice): StandardRouteManifestNegotiation | undefined; //# sourceMappingURL=route-manifest.d.ts.map