import { z } from 'zod'; export type PathOrLiteral = { path: string; } | { literal: string | number | boolean | null; }; export type Predicate = { op: 'eq' | 'ne' | 'lt' | 'lte' | 'gt' | 'gte'; left: PathOrLiteral; right: PathOrLiteral; } | { op: 'in' | 'notIn'; value: PathOrLiteral; set: Array; } | { op: 'exists' | 'notExists'; path: string; } | { op: 'truthy' | 'falsy'; value: PathOrLiteral; } | { op: 'and' | 'or'; args: Predicate[]; } | { op: 'not'; arg: Predicate; }; export interface PredicateContext { input?: unknown; state?: unknown; results?: Record; requestContext?: unknown; } export declare const predicateSchema: z.ZodType; export declare function readPredicatePath(path: string, ctx: PredicateContext): unknown | undefined; /** Build a nested object containing only the listed run-record paths. */ export declare function pickAllowListedPaths(ctx: PredicateContext, paths: readonly string[]): Record; export declare function evaluatePredicate(pred: Predicate, ctx: PredicateContext): boolean; export declare function derivePredicateLabel(pred: Predicate, maxLength?: number): string;