import type { SourceRequest, RawResponse, StreamRequest, StreamChannel, SourceError } from './contract.js'; export interface StreamHandlers { onFrame(frame: unknown): void; onClose(reason: string): void; onError(err: SourceError): void; } export interface Transport { send(req: SourceRequest): Promise; open(req: StreamRequest, handlers: StreamHandlers): StreamChannel; }