import type { CreateWorkerInEnvironment } from './createWorker.ts';
import { type WorkerFunctionBase } from './createWorkerFunction_.ts';
type InputHandler<Input> = (input: Input) => unknown;
export type Send<Output> = (output: Output) => void;
export type StreamingFn<Input, Output> = (send: Send<Output>) => InputHandler<Input>;
export default function createStreamingWorkerFunction<Input, Output>(createWorkerInEnvironment: CreateWorkerInEnvironment, fnOrAlias: StreamingFn<Input, Output> | string): StreamingWorkerFunction<Input, Output>;
type OutputListener<Output> = (output: Output) => void;
type ErrorListener = (error: unknown) => void;
export interface StreamingWorkerFunction<Input, Output> extends WorkerFunctionBase<[Input], Output> {
    onOutput(listener: OutputListener<Output>): void;
    onError(listener: ErrorListener): void;
    send(data: Input): void;
}
export {};
