import type { AstNodeBase, AstNodeLayout, DataTypeNode, FunctionParameterUnion, IdentifierNode } from "@/types";
import type { BattleScriptToAST } from "@/services";
import type { FunctionDeclarationContext } from "@/services/grammar/ts/language/BattleScriptParser";
import type { BattleScriptFromAST } from "@/services/fullAst/BattleScriptFromAST";
import type { VisitOptions } from "@/types/VisitOptions";
export interface FunctionDeclarationNode extends AstNodeBase {
    kind: "FUNCTION_DECLARATION";
    returnType: DataTypeNode;
    id: IdentifierNode;
    params: FunctionParameterUnion[];
    isNative: boolean;
    isPure: boolean;
    isExported?: boolean;
}
export declare const FunctionDeclarationNodeLayout: AstNodeLayout<FunctionDeclarationNode>[];
export declare const functionDeclarationToAstNode: (instance: BattleScriptToAST, ctx: FunctionDeclarationContext) => FunctionDeclarationNode;
export declare const functionDeclarationFromAstNode: (instance: BattleScriptFromAST, node: FunctionDeclarationNode, _options?: VisitOptions) => string;
//# sourceMappingURL=FunctionDeclarationNode.d.ts.map