import { type GetDependencies, type CreateWorkerInEnvironment } from './createWorker.ts'; export default function createWorkerFunction_, Output, AdditionalMethods>(createWorkerInEnvironment: CreateWorkerInEnvironment, fnOrAlias: Fn | string, createMethods: (start: () => void, stop: () => void, started: boolean, stopped: boolean, sendToWorker: (inputArgs: InputArgs) => void, mustHaveStarted: () => void, mustNotHaveStarted: () => void, mustNotHaveStopped: () => void) => AdditionalMethods, createInputHandler: (fn: Fn, send: (output: Output) => void) => (args: InputArgs) => void, handleError: (error: unknown) => void, handleOutput: (output: Output) => void): WorkerFunctionBase & AdditionalMethods; export interface WorkerFunctionBase, Output> { addDependencies(getDependencies: GetDependencies): void; inputTransferList(fn: (...args: InputArgs) => Transferable[]): void; outputTransferList(fn: (output: Output) => Transferable[]): void; alias(alias: string): void; start(): void; stop(): void; inputLatency?: number; outputLatency?: number; }