/// import { EventEmitter } from "events"; import { ClientDuplexStream } from "@grpc/grpc-js"; export declare const enum StreamCallerEvent { PushReceived = "PushReceived" } export declare enum PacketDirection { Request = 0, Response = 1 } export interface KeyGenerator { (direction: PacketDirection.Request, request: RequestType): string; (direction: PacketDirection.Response, response: ResponseType): string; } export declare class StreamCaller extends EventEmitter { private readonly streamCreator; private readonly keyGenerator; private readonly timeout; private callStream; private activeRequests; constructor(streamCreator: () => ClientDuplexStream, keyGenerator: KeyGenerator, timeout: number); init(): void; request(request: RequestType): Promise; close(e?: Error): void; private handleResponse; }