import { ExpressionKind } from "../types/ast";
import { ArgumentsExpressionProps, BooleanExpressionProps, Expression, IdentifierProps, ParenthesizedExpressionProps, StringExpressionProps, SubPropertyDeclarationProps } from "../types/expressions";
import Token from "./Token";
export declare class StringExpression implements StringExpressionProps {
    value: string;
    kind: ExpressionKind.StringExpression;
    constructor(value: string);
}
export declare class BooleanExpression implements BooleanExpressionProps {
    value: boolean;
    kind: ExpressionKind.BooleanExpression;
    constructor(value: boolean);
}
export declare class ParenthesizedExpression implements ParenthesizedExpressionProps {
    parens: [open: Token, close: Token];
    expression: Expression;
    kind: ExpressionKind.ParenthesizedExpression;
    constructor(parens: [open: Token, close: Token], expression: Expression);
}
export declare class Identifier implements IdentifierProps {
    name: string;
    token: Token;
    kind: ExpressionKind.Identifier;
    constructor(name: string, token: Token);
}
export declare class ArgumentsExpression implements ArgumentsExpressionProps {
    brackets: [open: Token, close: Token];
    args: SubPropertyDeclaration[];
    kind: ExpressionKind.ArgumentsExpression;
    constructor(brackets: [open: Token, close: Token], args: SubPropertyDeclaration[]);
}
export declare class SubPropertyDeclaration implements SubPropertyDeclarationProps {
    identifier: Identifier;
    expression: Expression;
    colon: Token;
    kind: ExpressionKind.SubPropertyDeclaration;
    constructor(identifier: Identifier, expression: Expression, colon: Token);
}
