diff --git a/packages/types/src/serde.ts b/packages/types/src/serde.ts index a6b435d5a932..7a16150fc0b4 100644 --- a/packages/types/src/serde.ts +++ b/packages/types/src/serde.ts @@ -52,3 +52,20 @@ export interface ResponseDeserializer; } + +/** + * The interface contains mix-in utility functions to transfer the runtime-specific + * stream implementation to specified format. Each stream can ONLY be transformed + * once. + */ +export interface SdkStreamMixin { + transformToByteArray: () => Promise; + transformToString: (encoding?: string) => Promise; + transformToWebStream: () => ReadableStream; +} + +/** + * The type describing a runtime-specific stream implementation with mix-in + * utility functions. + */ +export type SdkStream = BaseStream & SdkStreamMixin;