Files
dev/third_party/pi/packages/client/src/transport.ts
alexion 4def357d09 chore(vendor): import pi 0.85.1
Imported as a linear vendor commit so forge rebases do not replay the upstream root tree.

git-subtree-dir: third_party/pi

git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
2026-09-14 10:48:47 -04:00

19 lines
727 B
TypeScript

export interface ByteTransport {
/** Sends one byte chunk. Calls must be delivered in invocation order. */
send(chunk: Uint8Array): Promise<void>;
/** Closes the transport. Implementations must make repeated calls harmless. */
close(): void;
}
export interface ByteTransportHandlers {
/** Delivers an arbitrary inbound byte chunk. */
onData(chunk: Uint8Array): void;
/** Reports an orderly terminal close. */
onClose(): void;
/** Reports a terminal transport failure. */
onError(error: Error): void;
}
/** Creates a fresh connected, authenticated transport. Exactly one terminal handler is expected. */
export type ByteTransportFactory = (handlers: ByteTransportHandlers) => ByteTransport | Promise<ByteTransport>;