declare type BaseType = string | number | boolean; declare type Field = { key: string; }; declare type EQ = { value: BaseType; }; declare type Not = { not: BaseType; }; declare type GT = { gt: number; }; declare type LT = { lt: number; }; declare type GTE = { gte: number; }; declare type LTE = { lte: number; }; export declare type ComparisonOperator = Field & (EQ | Not | GT | LT | GTE | LTE); declare type And = { and: (Logic | ComparisonOperator)[]; }; declare type Or = { or: (Logic | ComparisonOperator)[]; }; export declare type Logic = And | Or; export declare type Condition = (ComparisonOperator | Logic); export {};