import type { MessageTarget } from "./message-target.js"; export interface InvocationChannel { start(): Promise; close(): Promise; invoke(request?: unknown, ...transfers: Transferable[]): Promise; } export interface NewInvocationChannelOptions { port: MessageTarget; handler?: (request: unknown, ...ports: MessagePort[]) => unknown; onError?: (error: unknown) => void; newCallId?: () => number; } export declare function newInvokationChannel({ port, handler, onError, newCallId, }: NewInvocationChannelOptions): InvocationChannel; export declare function sendStream(communicationPort: MessageTarget, input: AsyncIterable, params?: Record): AsyncGenerator; export type StreamHandler = (input: AsyncIterable, params: Record) => AsyncIterable | Promise>; export declare function handleStreams(communicationPort: MessageTarget, handler: StreamHandler): () => void; //# sourceMappingURL=data-channels.d.ts.map