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
19 lines
727 B
TypeScript
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>;
|