/**
 * @hidden
 * @packageDocumentation
 */
import { SympyFunction, SympyToken } from "./sympy-parser";
import { util, MathNodeVisitor, MathNode, MathVariable, MathAbs, MathAnd, MathAreaIntegral, MathBrackets, MathComma, MathUndefined, MathConstant, MathDefiniteIntegral, MathDerivative, MathDeterminant, MathFunctionDifference, MathDifferential, MathDivision, MathEmptySet, MathEquality, MathExpressionSet, MathFunction, MathImplicitMultiply, MathIncludeSet, MathIndefiniteIntegral, MathInfimum, MathIntersection, MathInterval, MathLeibnizDerivative, MathLimit, MathLogarithm, MathMax, MathMin, MathMinus, MathMultiply, MathNaturalLogarithm, MathNumber, MathNumericSet, MathOr, MathParentheses, MathPiecewiseFunction, MathPlaceholder, MathPlus, MathPoint, MathPower, MathPredicate, MathProduct, MathRawText, MathReversedFunction, MathRoot, MathSquareRoot, MathSubIndex, MathSum, MathSupremum, MathSymbol, MathVerticalBar, MathTransformation, MathSet, MathSystemOfEquations, MathTrigonometricFunction, MathUnaryMinus, MathUnion, SemanticErrorDescription } from "semantic-math-editor";
export declare class InvalidNodeError extends Error {
    readonly error: SemanticErrorDescription;
    constructor(node: MathNode, message: string);
}
export declare function integer(n: number): SympyFunction;
export declare abstract class BaseSymPyVisitor implements MathNodeVisitor<SympyToken>, util.utils.AcceptableVisitor<SympyToken> {
    accept(node: MathNode): SympyToken;
    join(nodes: MathNode[]): SympyToken[];
    visitAbs(mathNode: MathAbs): SympyToken;
    visitAnd(mathNode: MathAnd): SympyToken;
    visitAreaIntegral(mathNode: MathAreaIntegral): SympyToken;
    visitBrackets(mathNode: MathBrackets): SympyToken;
    visitComma(mathNode: MathComma): SympyToken;
    visitUndefined(mathNode: MathUndefined): SympyToken;
    visitConstant(mathNode: MathConstant): SympyToken;
    visitDefiniteIntegral(mathNode: MathDefiniteIntegral): SympyToken;
    visitDerivative(mathNode: MathDerivative): SympyToken;
    visitDeterminant(mathNode: MathDeterminant): SympyToken;
    visitFunctionDifference(mathNode: MathFunctionDifference): SympyToken;
    abstract visitDifferential(mathNode: MathDifferential): SympyToken;
    visitDivision(mathNode: MathDivision): SympyToken;
    visitEmptySet(mathNode: MathEmptySet): SympyToken;
    visitEquality(mathNode: MathEquality): SympyToken;
    visitExpressionSet(mathNode: MathExpressionSet): SympyToken;
    visitFunction(mathNode: MathFunction): SympyFunction;
    visitImplicitMultiply(mathNode: MathImplicitMultiply): SympyToken;
    visitIncludeSet(mathNode: MathIncludeSet): SympyToken;
    visitIndefiniteIntegral(mathNode: MathIndefiniteIntegral): SympyToken;
    visitInfimum(mathNode: MathInfimum): SympyToken;
    visitIntersection(mathNode: MathIntersection): SympyToken;
    visitInterval(mathNode: MathInterval): SympyToken;
    visitLeibnizDerivative(mathNode: MathLeibnizDerivative): SympyToken;
    visitLimit(mathNode: MathLimit): SympyFunction;
    visitLogarithm(mathNode: MathLogarithm): SympyToken;
    visitMax(mathNode: MathMax): SympyToken;
    visitMin(mathNode: MathMin): SympyToken;
    visitMinus(mathNode: MathMinus): SympyToken;
    visitMultiply(mathNode: MathMultiply): SympyToken;
    visitNaturalLogarithm(mathNode: MathNaturalLogarithm): SympyToken;
    visitNumber(mathNode: MathNumber): SympyToken;
    visitNumericSet(mathNode: MathNumericSet): SympyToken;
    visitOr(mathNode: MathOr): SympyToken;
    visitParentheses(mathNode: MathParentheses): SympyToken;
    visitPiecewiseFunction(mathNode: MathPiecewiseFunction): SympyToken;
    visitPlaceholder(mathNode: MathPlaceholder): SympyToken;
    visitPlus(mathNode: MathPlus): SympyToken;
    visitPoint(mathNode: MathPoint): SympyToken;
    visitPower(mathNode: MathPower): SympyToken;
    visitPredicate(mathNode: MathPredicate): SympyToken;
    visitProduct(mathNode: MathProduct): SympyToken;
    visitRawText(mathNode: MathRawText): SympyToken;
    visitReversedFunction(mathNode: MathReversedFunction): SympyToken;
    visitRoot(mathNode: MathRoot): SympyToken;
    visitSquareRoot(mathNode: MathSquareRoot): SympyToken;
    visitSubIndex(mathNode: MathSubIndex): SympyToken;
    visitSum(mathNode: MathSum): SympyToken;
    visitSupremum(mathNode: MathSupremum): SympyToken;
    visitSymbol(mathNode: MathSymbol): SympyToken;
    visitVerticalBar(mathNode: MathVerticalBar): SympyToken;
    visitTransformation(mathNode: MathTransformation): SympyToken;
    abstract visitSet(mathNode: MathSet): SympyToken;
    abstract visitSystemOfEquations(mathNode: MathSystemOfEquations): SympyToken;
    visitTrigonometricFunction(mathNode: MathTrigonometricFunction): SympyToken;
    visitUnaryMinus(mathNode: MathUnaryMinus): SympyToken;
    visitUnion(mathNode: MathUnion): SympyToken;
    visitVariable(mathNode: MathVariable): SympyToken;
}
