import type { AstNodeBase, AstNodeLayout, DataTypeNode, IdentifierNode, OptimisedMemberExpressionNode } from "@/types";
import type { BattleScriptToAST } from "@/services";
import type { ComputedMemberExpressionContext, NamespacedMemberExpressionContext, NonComputedMemberExpressionContext } from "@/services/grammar/ts/language/BattleScriptParser";
export interface MemberExpressionNode extends AstNodeBase {
    kind: "MEMBER_EXPRESSION";
    left: IdentifierNode;
    right: IdentifierNode | MemberExpressionNode;
    computed: boolean;
    operator: "." | "::";
    type?: DataTypeNode;
}
export declare const MemberExpressionNodeLayout: AstNodeLayout<MemberExpressionNode>[];
export declare const nonComputedMemberExpressionToAstNode: (instance: BattleScriptToAST, ctx: NonComputedMemberExpressionContext) => MemberExpressionNode | OptimisedMemberExpressionNode;
export declare const namespacedMemberExpressionToAstNode: (instance: BattleScriptToAST, ctx: NamespacedMemberExpressionContext) => MemberExpressionNode | OptimisedMemberExpressionNode;
export declare const computedMemberExpressionToAstNode: (instance: BattleScriptToAST, ctx: ComputedMemberExpressionContext) => MemberExpressionNode;
//# sourceMappingURL=MemberExpressionNode.d.ts.map