export type PortablePredicateCompareOp = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte'; export type PortablePredicateMembershipOp = 'in' | 'nin'; export type PortablePredicateStringOp = 'contains' | 'startsWith' | 'endsWith'; export type PortablePredicateExistsOp = 'exists'; export type PortablePredicateArrayOp = 'and' | 'or'; export type PortablePredicateUnaryOp = 'not'; export declare const PORTABLE_PREDICATE_COMPARE_OPS: readonly PortablePredicateCompareOp[]; export declare const PORTABLE_PREDICATE_ARRAY_OPS: readonly PortablePredicateArrayOp[]; export declare const PORTABLE_PREDICATE_UNARY_OPS: readonly PortablePredicateUnaryOp[]; export declare const PORTABLE_PREDICATE_EXISTS_OPS: readonly PortablePredicateExistsOp[]; export declare const PORTABLE_PREDICATE_MEMBERSHIP_OPS: readonly PortablePredicateMembershipOp[]; export declare const PORTABLE_PREDICATE_STRING_OPS: readonly PortablePredicateStringOp[]; export interface PortablePredicateParseResult { ok: boolean; value?: unknown; } export declare function parsePortablePredicateProp(predicateProp: unknown): PortablePredicateParseResult; export declare function validatePortablePredicateAST(pred: unknown): string[];