import type { Optional, AnyFunction } from "type-tls";
/**
 * 定义函数的代码
 *
 * @remarks
 * 可从 `fun.toString()` 得到
 */
export type FunctionCode = string;
/**
 * 函数 或 函数代码
 */
export type Fun = AnyFunction | FunctionCode;
/**
 * js 的标识符
 *
 * @remarks
 *
 * 比如变量名
 */
export type JSIdentifier = string;
/**
 * 生成定义函数变量的字符串
 * @param fun - 函数对象
 * @param name - 保存函数的变量名字，如果没有定义，则取 fun.name 作为变量名字
 * @returns
 */
export declare function generateFunctionVariableString(fun: AnyFunction, name?: Optional<JSIdentifier>): string;
/**
 * 生成立即执行函数的定义字符串
 * @param fun
 * @param args - 立即调用函数时传递的参数
 * @returns
 */
export declare function generateIIFEFunctionString(fun: Fun, args?: Optional<any[]>): string;
/**
 * 生成函数的字符串定义
 *
 * @remarks
 * 如果 `fun.name` 是有效的函数名字（即函数有名字），则会生成命名函数的字符串定义，否则会生成 立即调用函数的字符串定义
 *
 * @param fun - 函数对象
 * @param args - 在需要生成立即调用函数时，给立即调用函数传的参数；
 * @returns
 */
export declare function generateFunctionString(fun: AnyFunction, args?: Optional<any[]>): string;
/**
 * 本文件是监听 message 消息的依赖代码
 * @remarks
 * 如果要使用动态监听 message，需要先运行该依赖
 */
import listenMessages_Dep from "/temp/listenMessages_Dep.iife.js?raw";
export { listenMessages_Dep };
/**
 * 生成监听 message 事件的代码字符串
 * @param listener - 监听函数 或 函数字符串 或 函数的名字
 * @returns
 */
export declare function listenMessagesCodeStringByListener(listener: Fun): string;
/**
 * 生成监听 message 事件的代码字符串
 * @param listenerNames - 监听者的变量名字的列表
 * @returns
 */
export declare function listenMessagesCodeStringByNames(listenerNames: string[]): string;
/**
 * 生成监听 message 事件的代码字符串
 * @param funs - 监听函数数组
 * @returns
 */
export declare function listenMessagesCodeStringByFunctions(funs: AnyFunction[]): string;
/**
 * 动态 Worker 的代码内容
 *
 * @remarks
 * 动态 Worker 是即使创建之后，也可以往里添加函数的 Worker
 *
 * 该 woker 会根据 {@link ./dynamicWorkerAPI.ts#Call} 消息格式来调用对应的函数
 *
 * 该 Woker 已经内置了如下命令（函数）：
 *
 * setCMD : {@link ./dynamicWorkerAPI.ts#setCMD} ，往全局环境设置命令
 *
 * execCMD : {@link ./dynamicWorkerAPI.ts#execCMD} ，执行命令
 *
 * removeCMD : {@link ./dynamicWorkerAPI.ts#removeCMD} ，从全局环境中移除函数
 *
 * sendMessage : {@link ./dynamicWorkerAPI.ts#sendMessage} ，用于给其它线程发送信息
 *
 * messageListener : {@link ./dynamicWorkerAPI.ts#messageListener} ，用于函数调用的 message 监听器
 *
 * @param codeOptions - 往 Worker 中注入代码的配置选项
 * @param workerOptions - Worker 中的选项
 *
 */
import dynamicWorkerCodeString from "/temp/dynamicWorkerMain.iife.js?raw";
export { dynamicWorkerCodeString };
//# sourceMappingURL=index.d.ts.map