/** * @fileoverview Predicate (Condition) Schema (SPEC Section 9) * * Conditions in v0.2 are AND-only per AD-INT-003. * OR/NOT are deferred to v0.3+. */ import { z } from "zod"; /** * Comparison operators for predicates. * * "in" (membership) operator is supported in v0.2. */ export declare const PredOpSchema: z.ZodEnum<{ in: "in"; "=": "="; "!=": "!="; "<": "<"; ">": ">"; "<=": "<="; ">=": ">="; contains: "contains"; startsWith: "startsWith"; matches: "matches"; }>; export type PredOp = z.infer; /** * LHS Grammar (NORMATIVE): * * LHS MUST be a scoped path with explicit prefix: * | Prefix | Scope | * |------------|--------------------------| * | target. | TARGET arg entity | * | theme. | THEME arg entity | * | source. | SOURCE arg entity | * | dest. | DEST arg entity | * | state. | World state path | * | env. | Environment variable | * | computed. | Computed/derived value | */ export declare const LHSSchema: z.ZodString; export type LHS = z.infer; /** * Predicate for condition expressions. * * @example * { lhs: "target.status", op: "=", rhs: { kind: "value", valueType: "enum", shape: { value: "active" } } } */ export declare const PredSchema: z.ZodObject<{ lhs: z.ZodString; op: z.ZodEnum<{ in: "in"; "=": "="; "!=": "!="; "<": "<"; ">": ">"; "<=": "<="; ">=": ">="; contains: "contains"; startsWith: "startsWith"; matches: "matches"; }>; rhs: z.ZodDiscriminatedUnion<[z.ZodObject<{ kind: z.ZodLiteral<"entity">; entityType: z.ZodString; ref: z.ZodOptional; id: z.ZodOptional; }, z.core.$strict>>; quant: z.ZodOptional; value: z.ZodNumber; comparator: z.ZodOptional>; unit: z.ZodOptional; ext: z.ZodOptional>; }, z.core.$strict>>; orderBy: z.ZodOptional; path: z.ZodString; ext: z.ZodOptional>; }, z.core.$strip>>; orderDir: z.ZodOptional>; ext: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ kind: z.ZodLiteral<"path">; path: z.ZodString; ext: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ kind: z.ZodLiteral<"artifact">; artifactType: z.ZodEnum<{ plan: "plan"; code: "code"; text: "text"; math: "math"; data: "data"; mixed: "mixed"; }>; ref: z.ZodObject<{ kind: z.ZodEnum<{ id: "id"; inline: "inline"; }>; id: z.ZodOptional; }, z.core.$strict>; content: z.ZodOptional; ext: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ kind: z.ZodLiteral<"value">; valueType: z.ZodEnum<{ string: "string"; number: "number"; boolean: "boolean"; date: "date"; enum: "enum"; id: "id"; }>; shape: z.ZodRecord; raw: z.ZodOptional; ext: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ kind: z.ZodLiteral<"expr">; exprType: z.ZodEnum<{ code: "code"; latex: "latex"; ast: "ast"; }>; expr: z.ZodUnion]>; ext: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ kind: z.ZodLiteral<"list">; items: z.ZodArray; entityType: z.ZodString; ref: z.ZodOptional; id: z.ZodOptional; }, z.core.$strict>>; quant: z.ZodOptional; value: z.ZodNumber; comparator: z.ZodOptional>; unit: z.ZodOptional; ext: z.ZodOptional>; }, z.core.$strict>>; orderBy: z.ZodOptional; path: z.ZodString; ext: z.ZodOptional>; }, z.core.$strip>>; orderDir: z.ZodOptional>; ext: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ kind: z.ZodLiteral<"path">; path: z.ZodString; ext: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ kind: z.ZodLiteral<"artifact">; artifactType: z.ZodEnum<{ plan: "plan"; code: "code"; text: "text"; math: "math"; data: "data"; mixed: "mixed"; }>; ref: z.ZodObject<{ kind: z.ZodEnum<{ id: "id"; inline: "inline"; }>; id: z.ZodOptional; }, z.core.$strict>; content: z.ZodOptional; ext: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ kind: z.ZodLiteral<"value">; valueType: z.ZodEnum<{ string: "string"; number: "number"; boolean: "boolean"; date: "date"; enum: "enum"; id: "id"; }>; shape: z.ZodRecord; raw: z.ZodOptional; ext: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ kind: z.ZodLiteral<"expr">; exprType: z.ZodEnum<{ code: "code"; latex: "latex"; ast: "ast"; }>; expr: z.ZodUnion]>; ext: z.ZodOptional>; }, z.core.$strict>], "kind">>; ordered: z.ZodOptional; ext: z.ZodOptional>; }, z.core.$strict>], "kind">; }, z.core.$strict>; export type Pred = z.infer; //# sourceMappingURL=pred.d.ts.map