import { type GetDependencies, type CreateWorkerInEnvironment } from './createWorker.ts';
export default function createWorkerFunction_<Fn, InputArgs extends Array<unknown>, 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<InputArgs, Output> & AdditionalMethods;
export interface WorkerFunctionBase<InputArgs extends Array<unknown>, 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;
}
