import type { AnyMessage, Message, MethodInfo, ServiceType } from '@bufbuild/protobuf'; import { Metadata, RequestHeaders, Response, ResponseHeaders, ResponseTrailers, Stream } from '../gen/proto/rpc/webrtc/v1/grpc_pb'; import { BaseStream } from './base-stream'; import type { ClientChannel } from './client-channel'; export interface ClientStreamConstructor, I extends Message = AnyMessage, O extends Message = AnyMessage> { new (channel: ClientChannel, stream: Stream, onDone: (id: bigint) => void, service: ServiceType, method: MethodInfo, header: HeadersInit | undefined): T; } /** * A ClientStream provides all the facilities needed to invoke and manage a gRPC * stream at a low-level. Implementors like UnaryClientStream and * StreamClientStream handle the method specific flow of unary/stream * operations. */ export declare abstract class ClientStream = AnyMessage, O extends Message = AnyMessage> extends BaseStream { protected readonly channel: ClientChannel; protected readonly service: ServiceType; protected readonly method: MethodInfo; protected readonly parseMessage: (data: Uint8Array) => O; protected readonly requestHeaders: RequestHeaders; private headersReceived; private trailersReceived; protected abstract onHeaders(headers: ResponseHeaders): void; protected abstract onTrailers(trailers: ResponseTrailers): void; protected abstract onMessage(msgBytes: Uint8Array): void; constructor(channel: ClientChannel, stream: Stream, onDone: (id: bigint) => void, service: ServiceType, method: MethodInfo, header: HeadersInit | undefined); protected startRequest(signal?: AbortSignal): void; protected sendMessage(msgBytes?: Uint8Array): void; protected resetStream(): void; protected writeMessage(eos: boolean, msgBytes?: Uint8Array): void; onResponse(resp: Response): void; private processHeaders; private processMessage; private processTrailers; } export declare const toGRPCMetadata: (metadata?: Metadata) => Headers;