import type * as Ast from "../ast/ast"; import type { ExpressionTransformer } from "./types"; import { Rule } from "./types"; export declare class AddZero extends Rule { private additiveOperators; applyRule(ast: Ast.Expression, { util }: ExpressionTransformer): Ast.Expression; } export declare class MultiplyZero extends Rule { applyRule(ast: Ast.Expression, { util }: ExpressionTransformer): Ast.Expression; } export declare class MultiplyOne extends Rule { applyRule(ast: Ast.Expression, _optimizer: ExpressionTransformer): Ast.Expression; } export declare class SubtractSelf extends Rule { applyRule(ast: Ast.Expression, { util }: ExpressionTransformer): Ast.Expression; } export declare class AddSelf extends Rule { applyRule(ast: Ast.Expression, { applyRules, util }: ExpressionTransformer): Ast.Expression; } export declare class OrTrue extends Rule { applyRule(ast: Ast.Expression, { util }: ExpressionTransformer): Ast.Expression; } export declare class AndFalse extends Rule { applyRule(ast: Ast.Expression, { util }: ExpressionTransformer): Ast.Expression; } export declare class OrFalse extends Rule { applyRule(ast: Ast.Expression, _optimizer: ExpressionTransformer): Ast.Expression; } export declare class AndTrue extends Rule { applyRule(ast: Ast.Expression, _optimizer: ExpressionTransformer): Ast.Expression; } export declare class OrSelf extends Rule { applyRule(ast: Ast.Expression, _optimizer: ExpressionTransformer): Ast.Expression; } export declare class AndSelf extends Rule { applyRule(ast: Ast.Expression, _optimizer: ExpressionTransformer): Ast.Expression; } export declare class ExcludedMiddle extends Rule { applyRule(ast: Ast.Expression, { util }: ExpressionTransformer): Ast.Expression; } export declare class Contradiction extends Rule { applyRule(ast: Ast.Expression, { util }: ExpressionTransformer): Ast.Expression; } export declare class DoubleNegation extends Rule { applyRule(ast: Ast.Expression, _optimizer: ExpressionTransformer): Ast.Expression; } export declare class NegateTrue extends Rule { applyRule(ast: Ast.Expression, { util }: ExpressionTransformer): Ast.Expression; } export declare class NegateFalse extends Rule { applyRule(ast: Ast.Expression, { util }: ExpressionTransformer): Ast.Expression; }