import { DynamicWorker, DynamicWorkerCodes, DynamicWorkerOptions } from "./DynamicWorker"; import { DynamicWorkerPool } from "./DynamicWorkerPool"; import type { AnyFunction, Optional, PickMethod } from "type-tls"; import type { INamedFunctionMap, IWorkerCodes } from "./createWorkerURL"; import type { WorkerClient } from "./WorkerClient"; import type { CallOptions } from "./type"; /** * 提取 ExecRes 中的 D 的类型 * @remarks * 用于提取 ExecResult 类型中的 D 的类型 */ export type GetExecResultData = ExecRes extends { data: infer D; } ? D : ExecRes; /** * 提取 函数 Fun 的返回类型 ExecRes 中的 D 的类型 */ export type GetExecFunResultData any> = GetExecResultData>>; /** * 异步函数的参数类型 */ export type AsyncFunArgs any> = Parameters | [CallOptions>]; /** * 把函数转为异步函数 */ export type AsyncFun any> = GetExecFunResultData extends ReadableStream ? (...args: AsyncFunArgs) => GetExecFunResultData : (...args: AsyncFunArgs) => Promise>; /** * 将所有方法都 转为 异步方法 * * @remarks * 所有的方法的入参不变,返回参数都变为解决值为对应类型的 Promise * * @typeParam Methods - 包含方法的对象 */ export type ToAsyncMethods = { [N in keyof Methods]: AsyncFun; }; /** * 将所有成员都 转为 异步h命令 * * @remarks * 所有的方法的入参不变,返回参数都变为解决值为对应类型的 Promise * 所有的属性都变为返回解决值为对应类型的 Promise 的方法 */ export type MembersToAsyncCMD = { [N in keyof Target]: AsyncCMD; }; /** * 转为异步的命令 * @remarks * 函数的入参不变,返回参数都变为解决值为对应类型的 Promise * 其它非函数的值都变为返回解决值为对应类型的 Promise 的函数 */ export type AsyncCMD = Value extends AnyFunction ? AsyncFun : (() => Promise>); /** * 创建Worker客户端的代理 * @param client * @returns */ export declare function createWorkerClientProxy>(client: WClient): any; /** * 创建动态 Worker * * @param worker - worker实例 * @param name - worker中运行的js文件的url * @param url - Worker 中所包含的初始代码 * @param code - Worker 中所包含的初始代码 * @param workerOptions - Worker 相关的选项 * @returns */ export declare function createDynamicWorker(noCode?: undefined | null, workerOptions?: Optional>): MembersToAsyncCMD & DynamicWorker; export declare function createDynamicWorker(worker: W, name?: string): MembersToAsyncCMD & DynamicWorker; export declare function createDynamicWorker(url: string, workerOptions?: Optional, "noDep">>): MembersToAsyncCMD & DynamicWorker; export declare function createDynamicWorker, W extends AbstractWorker = Worker>(code: DynamicWorkerCodes>, workerOptions?: Optional>): MembersToAsyncCMD & DynamicWorker; export declare function createDynamicWorker, W extends AbstractWorker = Worker>(codeOptions?: Optional | string | W>, workerOptions?: Optional | string>): MembersToAsyncCMD & DynamicWorker; /** * 创建动态 Worker 池 * * @param workerNum - Worker池 中 workder 的个数 * @param codeOptions - Worker 中所包含的初始代码 * @param workerOptions - Worker 相关的选项 * @returns */ export declare function createDynamicWorkerPool, W extends AbstractWorker = Worker>(workerNum: number, codeOptions?: Optional, workerOptions?: Optional>): MembersToAsyncCMD & DynamicWorkerPool; //# sourceMappingURL=createDynamicWorker.d.ts.map