import type { JsonObject, JsonValue } from '../contracts/common'; import { type PageExpression, type PagePropertyBinding } from '../contracts/page-expression'; export type PageExpressionContext = Partial>; export declare const readPageValue: (value: JsonValue | undefined, path: readonly string[]) => JsonValue | undefined; export declare const compilePageExpression: (input: unknown) => PageExpression; export declare const writePageDraftPath: (source: JsonValue, path: readonly string[], value: JsonValue) => JsonValue; export declare const evaluatePageExpression: (expression: unknown, context: PageExpressionContext) => JsonValue; /** Snapshot and validate an immutable expression once, then evaluate fresh inputs. * Dynamic value limits and the operation budget apply independently to every call. * Mutable literal outputs are isolated from the private compiled declaration. */ export declare const preparePageExpression: (input: unknown) => ((context: PageExpressionContext) => JsonValue); /** Validate and snapshot declarations once; each call evaluates fresh dynamic inputs. * Keeps one operation budget across all bindings and all dynamic value/type guards. * The returned closure owns its snapshot and can be shared by repeated row instances. */ export declare const preparePagePropertyProjection: (bindings: readonly PagePropertyBinding[]) => ((base: JsonObject, context: PageExpressionContext) => JsonObject); export declare const projectPageProperties: (base: JsonObject, bindings: readonly PagePropertyBinding[], context: PageExpressionContext) => JsonObject; //# sourceMappingURL=page-expression.d.ts.map