import { TapoCredentials } from '../types'; import { BaseDevice } from './base-device'; import { ProtocolType } from '../core/protocol-selector'; /** * Plug device implementation using composition pattern * Single responsibility: Plug-specific device behavior */ export declare class PlugDevice extends BaseDevice { private auth?; private klapAuth?; constructor(ip: string, credentials: TapoCredentials, deviceModel: string); /** * Initialize session based on selected protocol */ protected initializeSession(protocol: ProtocolType): Promise; /** * Initialize KLAP session */ private initializeKlapSession; /** * Initialize Passthrough session */ private initializePassthroughSession; /** * Get child devices (for multi-outlet plugs like P300) */ getChildDevices(): Promise; /** * Control child device (for multi-outlet plugs) */ controlChildDevice(deviceId: string, turnOn: boolean): Promise; /** * Check if device supports child devices */ private supportsChildDevices; /** * Get plug-specific status */ getPlugStatus(): Promise<{ isOn: boolean; hasEnergyMonitoring: boolean; currentPower?: number; childDevices?: any[]; }>; }