fleeta-api-lib
Version:
A comprehensive library for fleet management applications - API, Auth, Device management
62 lines • 2.09 kB
TypeScript
/**
* GPS WebSocket Factory
* Factory pattern with dependency injection for GPS WebSocket components
*/
import { ConnectionManager, type WebSocketDependency } from './ConnectionManager';
import { AuthManager } from './AuthManager';
import { EventManager } from './EventManager';
import { RequestManager } from './RequestManager';
import { GpsConnectionStateMachine } from './GpsConnectionStateMachine';
import type { GpsWebSocketSDKOptions } from './types';
/**
* GPS WebSocket dependencies for testing and flexibility
*/
export interface GpsWebSocketDependencies {
WebSocket?: WebSocketDependency;
console?: Console;
setTimeout?: typeof setTimeout;
clearTimeout?: typeof clearTimeout;
}
/**
* GPS WebSocket Factory class
* Creates GPS WebSocket components with proper dependency injection
*/
export declare class GpsWebSocketFactory {
private dependencies;
constructor(dependencies?: GpsWebSocketDependencies);
/**
* Create Connection Manager
*/
createConnectionManager(url: string, maxReconnectAttempts?: number, reconnectDelay?: number): ConnectionManager;
/**
* Create Authentication Manager
*/
createAuthManager(baseUrl: string, authMethod?: 'query' | 'header' | 'message'): AuthManager;
/**
* Create Event Manager
*/
createEventManager(): EventManager;
/**
* Create Request Manager
*/
createRequestManager(defaultTimeout?: number): RequestManager;
/**
* Create State Machine
*/
createStateMachine(): GpsConnectionStateMachine;
/**
* Create complete GPS WebSocket SDK components
*/
createComponents(options: GpsWebSocketSDKOptions): {
connectionManager: ConnectionManager;
authManager: AuthManager;
eventManager: EventManager;
requestManager: RequestManager;
stateMachine: GpsConnectionStateMachine;
};
/**
* Update dependencies (useful for testing)
*/
updateDependencies(newDependencies: Partial<GpsWebSocketDependencies>): void;
}
//# sourceMappingURL=GpsWebSocketFactory.d.ts.map