import { TapoCredentials } from '../types'; export interface ConnectionOptions { maxRetries?: number; retryDelay?: number; timeout?: number; } export interface ConnectionState { isConnected: boolean; connectionTime?: number; lastActivity: number; retryCount: number; } /** * Manages device connections and connection state * Single responsibility: Connection lifecycle management */ export declare class ConnectionManager { protected readonly ip: string; protected readonly credentials: TapoCredentials; private connectionState; private readonly options; constructor(ip: string, credentials: TapoCredentials, options?: ConnectionOptions); /** * Establish connection to device */ connect(): Promise; /** * Disconnect from device */ disconnect(): Promise; /** * Check if connection is active and healthy */ isConnected(): boolean; /** * Get current connection state */ getConnectionState(): Readonly; /** * Update last activity timestamp */ updateActivity(): void; /** * Check if connection has been idle for too long */ isIdle(maxIdleTime?: number): boolean; /** * Reset connection state (useful for error recovery) */ reset(): void; /** * Actual connection implementation - no-op as connection is handled by protocol-specific auth classes */ protected performConnection(): Promise; /** * Actual disconnection implementation - no-op as disconnection is handled by protocol-specific auth classes */ protected performDisconnection(): Promise; /** * Utility method for delays */ private delay; }