import { ClientMessageEnvelope, ServerMessage } from '../types/socket/protocol/messages'; export declare class TransactionManager { /** * The map of representing outstanding requests. */ private readonly outstandingRequestsMap; /** * The queue of completed requests. This is a FIFO queue of the last N completed requests, * where N is {@link completedTransactionsToKeep}. */ private readonly completedTransactionsQueue; /** * Number of completed requests to keep in memory. */ private readonly completedTransactionsToKeep; constructor(completedTransactionsToKeep?: number); addOutstandingRequest(transactionId: string, request: ClientMessageEnvelope): void; addResponse(transactionId: string, response: ServerMessage): void; get outstandingRequests(): Transaction[]; get completedTransactions(): Transaction[]; clearOutstandingRequests(): void; /** * Adds a completed request to the queue. * * If the number of completed requests exceeds the maximum number of completed requests to keep, * remove the oldest completed request. */ private addCompletedTransaction; } interface Transaction { /** * The transaction ID. */ transactionId: string; /** * The request to the server. */ request: ClientMessageEnvelope; /** * The response to the request. * * The response is null until the request is completed. */ response: ServerMessage | null; /** * The start time of the transaction. */ start: Date; /** * The end time of the transaction. */ end: Date | null; } export {};