import type { MessageSink, MessageSource } from "./message-target.js"; export type ChannelCallHandler = (event: MessageEvent, params: unknown, ...transfers: MessagePort[]) => unknown; /** * A channel call's result that carries transferables, a `MessagePort` say: * return `withTransfer({ port }, [port])` from a `handleChannelCalls` handler * and `callChannel` resolves with `{ port }`. */ export declare function withTransfer(value: T, transfer: Transferable[]): T; /** Splits a handler's result into the value to post and its transfer list. */ export declare function unwrapTransfer(result: unknown): { value: unknown; transfer: Transferable[]; }; export declare function callChannel(target: MessageSink, callType: string, params: unknown, ...transfers: Transferable[]): Promise; export declare function handleChannelCalls(target: MessageSource, callType: string, handler: ChannelCallHandler): () => void; /** * `callChannel`, failing after `ms` instead of waiting for ever: a peer that * died (a ServiceWorker stopped mid-call) or that does not know `callType` (an * older version) never answers. */ export declare function callChannelWithin(ms: number, target: MessageSink, callType: string, params: unknown, ...transfers: Transferable[]): Promise; //# sourceMappingURL=data-calls.d.ts.map