import type { WorkflowExpression } from '../expression/workflow-expression.js'; /** Distinguishes a literal `"*"` key from the comprehension wildcard sentinel. */ export interface ContextPathLiteralSegment { readonly kind: 'literal'; readonly value: string; } /** A literal object key, array index, or comprehension element in a context path. */ export type ContextPathSegment = string | number | ContextPathLiteralSegment | '*'; export interface ContextPathReference { readonly root: string; readonly segments: readonly ContextPathSegment[]; readonly source: string; readonly wholeElement?: true; readonly cardinalityOnly?: true; } export interface ContextPathAccessUnknown { readonly root: string; readonly source: string; readonly reason: 'dynamic'; } export interface ContextPathAccessAnalysis { readonly references: readonly ContextPathReference[]; readonly unknown: readonly ContextPathAccessUnknown[]; } /** * Analyzes literal context paths and marks accesses that cannot be projected * safely. A comprehension result used only for cardinality by `size()` stays * projectable; consumers that inspect its elements remain dynamic. */ export declare function analyzeContextPathAccess(expression: WorkflowExpression | string, roots?: readonly string[]): ContextPathAccessAnalysis; /** Enables conservative whole-result classification for persisted historical plans. */ export declare function analyzeContextPathAccessForHistoricalPayload(expression: WorkflowExpression | string, roots?: readonly string[]): ContextPathAccessAnalysis; //# sourceMappingURL=extract-context-paths.d.ts.map