import { PddlSyntaxNode } from "./PddlSyntaxNode";
import { Variable } from "../language";
export declare abstract class Effect {
    readonly node: PddlSyntaxNode;
    constructor(node: PddlSyntaxNode);
    toPddlString(): string;
}
export declare class VariableEffect extends Effect {
    private variableModified;
    constructor(node: PddlSyntaxNode, variableModified: Variable);
    getVariableModified(): Variable;
    modifies(variable: Variable): boolean;
}
export declare class UnrecognizedEffect extends Effect {
    constructor(node: PddlSyntaxNode);
}
export declare abstract class ExpressionEffect extends VariableEffect {
    readonly expressionNode: PddlSyntaxNode;
    constructor(node: PddlSyntaxNode, variableModified: Variable, expressionNode: PddlSyntaxNode);
    static parseBase(node: PddlSyntaxNode, expectedToken: string, creator: (node: PddlSyntaxNode, variable: Variable, expressionNode: PddlSyntaxNode) => ExpressionEffect): ExpressionEffect;
}
export declare class MakeFalseEffect extends VariableEffect {
    constructor(node: PddlSyntaxNode, variableModified: Variable);
    static readonly TOKEN = "(not";
    static parse(node: PddlSyntaxNode): Effect;
}
export declare class IncreaseEffect extends ExpressionEffect {
    static readonly TOKEN = "(increase";
    constructor(node: PddlSyntaxNode, variableModified: Variable, expressionNode: PddlSyntaxNode);
    static parse(node: PddlSyntaxNode): IncreaseEffect;
}
export declare class DecreaseEffect extends ExpressionEffect {
    static readonly TOKEN = "(decrease";
    constructor(node: PddlSyntaxNode, variableModified: Variable, expressionNode: PddlSyntaxNode);
    static parse(node: PddlSyntaxNode): DecreaseEffect;
}
export declare class ScaleUpEffect extends ExpressionEffect {
    static readonly TOKEN = "(scale-up";
    constructor(node: PddlSyntaxNode, variableModified: Variable, expressionNode: PddlSyntaxNode);
    static parse(node: PddlSyntaxNode): ScaleUpEffect;
}
export declare class ScaleDownEffect extends ExpressionEffect {
    static readonly TOKEN = "(scale-down";
    constructor(node: PddlSyntaxNode, variableModified: Variable, expressionNode: PddlSyntaxNode);
    static parse(node: PddlSyntaxNode): ScaleDownEffect;
}
export declare class AssignEffect extends ExpressionEffect {
    static readonly TOKEN = "(assign";
    constructor(node: PddlSyntaxNode, variableModified: Variable, expressionNode: PddlSyntaxNode);
    static parse(node: PddlSyntaxNode): AssignEffect;
}
export declare class MakeTrueEffect extends VariableEffect {
    constructor(node: PddlSyntaxNode, variableModified: Variable);
    static readonly TOKENS: string[];
    static parse(node: PddlSyntaxNode): Effect;
}
export declare class ActionEffectParser {
    static parseEffect(node: PddlSyntaxNode): Effect;
}
