export type LogicalComposition = LogicalNot | LogicalAnd | LogicalOr | T; export interface LogicalOr { or: LogicalComposition[]; } export interface LogicalAnd { and: LogicalComposition[]; } export interface LogicalNot { not: LogicalComposition; } export declare function isLogicalOr(op: LogicalComposition): op is LogicalOr; export declare function isLogicalAnd(op: LogicalComposition): op is LogicalAnd; export declare function isLogicalNot(op: LogicalComposition): op is LogicalNot; export declare function forEachLeaf(op: LogicalComposition, fn: (op: T) => void): void; export declare function normalizeLogicalComposition(op: LogicalComposition, normalizer: (o: T) => T): LogicalComposition; //# sourceMappingURL=logical.d.ts.map