import type { AstNodeBase, FunctionDeclarationNode, FunctionDefinitionNode } from "@/types";
import { type BattleScriptToAST } from "@/services/fullAst";
import type { ExpressionContext } from "@/services/grammar/ts/language/BattleScriptParser";
export declare const setDefaults: (obj: object, defaults: object) => {};
export declare const throwIfUndefined: <ValType>(value: ValType | undefined, message: string) => ValType;
export declare const applyMetaDataToFunctionDeclarationNode: (node: FunctionDeclarationNode, meta: AstNodeBase["meta"]) => FunctionDeclarationNode;
export declare const formatCompilerError: (filePath: string, sourceCode: string, level: "error" | "warning" | "info", meta: AstNodeBase["meta"], error: string) => string;
export declare const prettyPrintFunctionDeclaration: (node: FunctionDeclarationNode | FunctionDefinitionNode) => string;
export declare function extractLibraryNameFromFunctionName(call: string): string | null;
export declare function clone<T = any>(obj: T): T;
export declare function range(start: number, count: number): number[];
export declare const isOptimisable: (instance: BattleScriptToAST, ctx: ExpressionContext) => boolean;
//# sourceMappingURL=utils.d.ts.map