/** * Dolphin Robot Device * * Represents a single Dolphin pool cleaning robot and manages * its state and communication with the Maytronics API. */ import { EventEmitter } from 'events'; import { type DeviceFeatures } from './deviceCatalog.js'; import { type ParsedRobotState } from '../parsers/index.js'; import type { MaytronicsAPI } from '../api/maytronicsApi.js'; import type { Logger } from 'homebridge'; export type RobotState = ParsedRobotState; /** * Device initialization configuration (required fields for runtime) */ export interface DeviceInitConfig { serialNumber: string; name: string; deviceType: number; pollingInterval: number; } /** * Dolphin pool cleaning robot device */ export declare class DolphinDevice extends EventEmitter { private readonly api; private readonly log; readonly serialNumber: string; readonly name: string; readonly deviceType: number; readonly features: DeviceFeatures; readonly modelName: string; private readonly pollingInterval; private pollingTimer?; private state; private lastShadowVersion?; constructor(config: DeviceInitConfig, api: MaytronicsAPI, log: Logger); /** * Start device polling */ start(): Promise; /** * Stop device polling */ stop(): void; /** * Poll the shadow, unless MQTT already pushed a recent one. * Skipping redundant requests keeps us under the AWS IoT shadow rate limit. */ private poll; /** * Handle a shadow document pushed over MQTT (robot-initiated update) */ private readonly handlePushedShadow; /** * Get current device state */ getState(): ParsedRobotState; /** * Refresh state from AWS IoT Thing Shadow */ refreshState(): Promise; /** * Process Thing Shadow state into RobotState. * Returns false when the shadow carries no change. */ private processShadowState; /** * Start cleaning cycle */ startCleaning(mode?: string): Promise; /** * Stop cleaning cycle */ stopCleaning(): Promise; /** * Set cleaning mode */ setCleaningMode(mode: string): Promise; /** * Initiate pickup mode (robot goes to pickup point) */ pickup(): Promise; } //# sourceMappingURL=dolphinDevice.d.ts.map