import { AppPageParams } from "./app-page-boundary.js";
//#region src/server/app-page-segment-state.d.ts
declare const APP_PAGE_SEGMENT_KEY = "__PAGE__";
declare function isAppPageRouteGroupSegment(segment: string): boolean;
declare function resolveAppPageChildSegments(routeSegments: readonly string[], treePosition: number, params: AppPageParams): string[];
declare function resolveAppPageSegmentStateKey(routeSegments: readonly string[], treePosition: number, params: AppPageParams): string;
/**
 * A branch segment already resolved by route matching: the interception marker
 * is split off and the param map that binds the segment is chosen. Downstream
 * layers serialise these; they never reparse filesystem interception syntax.
 */
type AppPageSemanticSegment = Readonly<{
  /** Interception marker this segment carries, or null when it is a plain segment. */
  marker: string | null;
  /** Whether the route's matched params or the slot's own params bind the segment. */
  paramSource: "route" | "slot";
  /** Segment name with any interception marker removed. */
  segment: string;
}>;
declare function resolveAppPageSemanticSegmentStateKey(semanticSegment: AppPageSemanticSegment, params: AppPageParams): string;
declare function resolveAppPageRouteStateKey(routeSegments: readonly string[], params: AppPageParams): string;
declare function resolveAppPagePatternStateKey(patternParts: readonly string[], params: AppPageParams): string;
declare function resolveAppPageLeafSegmentStateKey(routeSegments: readonly string[], params: AppPageParams): string;
declare function resolveAppPageTemplateStateKey(routeSegments: readonly string[], treePosition: number, params: AppPageParams): string;
//#endregion
export { APP_PAGE_SEGMENT_KEY, AppPageSemanticSegment, isAppPageRouteGroupSegment, resolveAppPageChildSegments, resolveAppPageLeafSegmentStateKey, resolveAppPagePatternStateKey, resolveAppPageRouteStateKey, resolveAppPageSegmentStateKey, resolveAppPageSemanticSegmentStateKey, resolveAppPageTemplateStateKey };