export declare abstract class SympyBaseToken {
}
export declare abstract class SympyToken extends SympyBaseToken {
    readonly type: string;
    constructor(func: string);
    abstract accept<T>(visitor: SympyTokenVisitor<T>): T;
}
export declare abstract class SympyContainer extends SympyToken {
    readonly args: SympyToken[];
    constructor(name: string, args: SympyToken[]);
}
export declare class SympyFunction extends SympyContainer {
    constructor(name: string, args: SympyToken[]);
    accept<T>(visitor: SympyTokenVisitor<T>): T;
}
export declare class SympyMethod extends SympyContainer {
    readonly method: string;
    readonly object: SympyToken;
    constructor(obj: SympyToken, name: string, args: SympyToken[]);
    accept<T>(visitor: SympyTokenVisitor<T>): T;
}
export declare class SympyUserFunction extends SympyContainer {
    readonly name: string;
    constructor(name: string, args: SympyToken[]);
    accept<T>(visitor: SympyTokenVisitor<T>): T;
}
export declare class SympyArray extends SympyContainer {
    readonly square: boolean;
    constructor(args: SympyToken[], square: boolean);
    accept<T>(visitor: SympyTokenVisitor<T>): T;
}
export declare class SympyString extends SympyToken {
    private v;
    constructor(s?: string);
    append(s: string): void;
    get value(): string;
    accept<T>(visitor: SympyTokenVisitor<T>): T;
}
export interface SympyTokenVisitor<T> {
    visitMethod(m: SympyMethod): T;
    visitUserFunction(uf: SympyUserFunction): T;
    visitFunction(f: SympyFunction): T;
    visitString(s: SympyString): T;
    visitArray(a: SympyArray): T;
}
export declare class SympyStringify implements SympyTokenVisitor<string> {
    static readonly instance: SympyStringify;
    visitFunction(f: SympyFunction): string;
    visitString(s: SympyString): string;
    visitArray(a: SympyArray): string;
    visitUserFunction(uf: SympyUserFunction): string;
    visitMethod(m: SympyMethod): string;
}
export declare function rawParseSympyExpression(expression: string): SympyToken[];
export declare function parseSympyExpression(expression: string): SympyToken;
