import { ClientDuplexStream } from "@grpc/grpc-js"; import { TransactionClient, TransactionReq, TransactionRes, TransactionResPart, TransactionServer } from "typedb-protocol/proto/transaction"; import { TypeDBStub } from "../common/rpc/TypeDBStub"; import { Stream } from "../common/util/Stream"; import { BatchDispatcher, RequestTransmitter } from "./RequestTransmitter"; export declare class BidirectionalStream { private readonly _requestTransmitter; private _dispatcher; private readonly _responseCollector; private readonly _responsePartCollector; private _stub; private _isOpen; private _error; private readonly _onClose; constructor(stub: TypeDBStub, requestTransmitter: RequestTransmitter); open(): Promise; single(request: TransactionReq, batch: boolean): Promise; stream(request: TransactionReq): Stream; isOpen(): boolean; close(error?: Error | string): Promise; onClose(callback: (error?: Error | string) => Promise): void; registerObserver(transactionStream: ClientDuplexStream): void; private collectRes; private collectResPart; dispatcher(): BatchDispatcher; getError(): Error | string; }