fleeta-api-lib
Version:
A comprehensive library for fleet management applications - API, Auth, Device management
54 lines • 1.54 kB
TypeScript
/**
* GPS WebSocket Request Manager
* Handles request/response matching and Promise-based API
*/
import type { ActionKey, ActionRequestMap, ActionResponseMap, WsMessage } from './types';
/**
* Request Manager class
* Separated request/response logic for better organization and testability
*/
export declare class RequestManager {
private pendingRequests;
private defaultTimeout;
private sendFunction;
constructor(defaultTimeout?: number);
/**
* Set send function for WebSocket communication
*/
setSendFunction(sendFn: (data: string) => void): void;
/**
* Send request and return Promise
*/
send<K extends ActionKey>(action: K, payload: Omit<ActionRequestMap[K], "action" | "sequenceId"> & {
sequenceId?: number;
}, timeoutMs?: number): Promise<ActionResponseMap[K]>;
/**
* Handle incoming WebSocket message
*/
handleMessage(message: WsMessage<any>): boolean;
/**
* Cancel specific request
*/
cancelRequest(sequenceId: number): boolean;
/**
* Cancel all pending requests
*/
cancelAllRequests(): void;
/**
* Get number of pending requests
*/
getPendingCount(): number;
/**
* Get pending request IDs
*/
getPendingRequestIds(): number[];
/**
* Clean up expired requests (for maintenance)
*/
cleanupExpiredRequests(maxAge?: number): number;
/**
* Destroy request manager and cleanup
*/
destroy(): void;
}
//# sourceMappingURL=RequestManager.d.ts.map