import type { AstNodeBase, AstNodeLayout, BlockStatementNode, DataTypeNode, IdentifierNode, TokenUnion } from "@/types";
import type { BattleScriptToAST } from "@/services";
import type { FunctionDefinitionContext } from "@/services/grammar/ts/language/BattleScriptParser";
export interface FunctionDefinitionNode extends AstNodeBase {
    kind: "FUNCTION_DEFINITION";
    returnType: DataTypeNode;
    id: TokenUnion;
    params: IdentifierNode[];
    body: BlockStatementNode;
    isPure: boolean;
}
export declare const FunctionDefinitionNodeLayout: AstNodeLayout<FunctionDefinitionNode>[];
export declare const functionDefinitionToAstNode: (instance: BattleScriptToAST, ctx: FunctionDefinitionContext) => FunctionDefinitionNode;
//# sourceMappingURL=FunctionDefinitionNode.d.ts.map