fleeta-api-lib
Version:
A comprehensive library for fleet management applications - API, Auth, Device management
43 lines • 1.36 kB
TypeScript
/**
* Connection State Machine
* Manages complex connection state transitions with clear rules
*/
import type { ConnectionState } from './WebRTCProvider';
/**
* Connection state transition events
*/
export type ConnectionEvent = 'CONNECT' | 'CONNECTION_ESTABLISHED' | 'CONNECTION_FAILED' | 'DISCONNECT' | 'RECONNECT' | 'CHANNEL_CHANGE_START' | 'CHANNEL_CHANGE_COMPLETE' | 'ERROR';
/**
* Connection State Machine class
* Ensures valid state transitions and prevents invalid state changes
*/
export declare class ConnectionStateMachine {
private currentState;
private transitions;
private callbacks;
constructor(initialState?: ConnectionState);
/**
* Get current state
*/
getState(): ConnectionState;
/**
* Check if transition is valid
*/
canTransition(event: ConnectionEvent): boolean;
/**
* Execute state transition
*/
transition(event: ConnectionEvent): boolean;
/**
* Set event callbacks
*/
setCallbacks(callbacks: {
onStateChange?: (newState: ConnectionState, previousState: ConnectionState, event: ConnectionEvent) => void;
onInvalidTransition?: (currentState: ConnectionState, event: ConnectionEvent) => void;
}): void;
/**
* Reset to initial state
*/
reset(): void;
}
//# sourceMappingURL=ConnectionStateMachine.d.ts.map