import { Expression } from "./expressions"; import { Maybe } from "./isConsequent"; export declare const transitiveOperators: { readonly "==": { readonly positive: readonly ["=="]; readonly negative: readonly ["<", ">"]; readonly reverse: "=="; readonly unequal: false; readonly compare: (a: any, b: any) => boolean; }; readonly "<": { readonly positive: readonly ["<=", "<", "=="]; readonly negative: readonly ["==", ">", ">="]; readonly reverse: ">="; readonly unequal: true; readonly compare: (a: any, b: any) => boolean; }; readonly ">": { readonly positive: readonly [">=", ">", "=="]; readonly negative: readonly ["==", "<", "<="]; readonly reverse: "<="; readonly unequal: true; readonly compare: (a: any, b: any) => boolean; }; readonly "<=": { readonly positive: readonly ["<=", "<", "=="]; readonly negative: readonly [">"]; readonly reverse: ">"; readonly unequal: false; readonly compare: (a: any, b: any) => boolean; }; readonly ">=": { readonly positive: readonly [">=", ">", "=="]; readonly negative: readonly ["<"]; readonly reverse: "<"; readonly unequal: false; readonly compare: (a: any, b: any) => boolean; }; }; type TransitiveOperator = keyof typeof transitiveOperators; export declare function isTransitiveOperator(op: string): op is TransitiveOperator; export declare class ComparisonGraph { readonly expression: Expression; readonly stringValue: string; readonly "==": Set; readonly "<": Set; readonly ">": Set; readonly "<=": Set; readonly ">=": Set; constructor(expression: Expression); /** * @returns -1 if no right expression, * >= 0 if right expression and value is how many of the intermediate operators were unequal operators, */ private getRightExpressionUnequalCount; private hasRightExpression; getEquivalentValues(): Expression[]; private getEquivalentValuesInternal; isConsequent(op: TransitiveOperator, right: Expression): Maybe; } export declare const getComparisonGraphMap: (a: Expression) => Map; export {};