/** * Maytronics MyDolphin Plus API Client * * High-level API for robot control and state management. * Authentication is handled by AuthenticationManager. */ import { EventEmitter } from 'events'; import type { Logger } from 'homebridge'; import type { AWSIoTCredentials } from './auth/types.js'; import type { RawShadowState } from '../parsers/types.js'; /** * Robot information from API */ export interface RobotInfo { serialNumber: string; name: string; model: string; deviceType: number; warrantyDays?: number; features: string[]; } /** * Thing Shadow command structure */ export interface ThingShadowCommand { state: { desired: Record; }; } /** * Login result */ export interface LoginResult { cognitoToken: string; mobToken: string; serialNumber: string; robotName: string; deviceType: number; } export type { AWSIoTCredentials as AWSCredentials }; /** * Maytronics API Client * * Provides high-level methods for robot control and state management. * Emits `shadowUpdate` whenever a shadow document arrives over MQTT, so callers * can react to pushed state instead of polling for it. */ export declare class MaytronicsAPI extends EventEmitter { private readonly log; private readonly authManager; private mqttClient; private hasLoggedMqttConnection; constructor(email: string | undefined, password: string | undefined, log: Logger, iotRegion: string | undefined, refreshToken: string | undefined); /** * Complete authentication flow */ login(): Promise; /** * Initialize MQTT client and connect to AWS IoT Core */ private initializeMQTTClient; /** * Ensure MQTT client is connected */ private ensureConnectedMQTT; /** * Check if credentials need refresh */ needsRefresh(): boolean; /** * Ensure credentials are valid (refresh if needed) */ ensureValidCredentials(): Promise; /** * Get robot Thing Shadow state from AWS IoT via MQTT */ getThingShadow(serialNumber: string): Promise; /** * Timestamp of the last shadow document received over MQTT (0 if none yet) */ getLastShadowReceivedAt(): number; /** * Update robot Thing Shadow state via MQTT */ updateThingShadow(serialNumber: string, command: ThingShadowCommand): Promise; /** * Send a shadow command with standard error handling */ private sendShadowCommand; /** * Send command to start the robot via shadow update */ startRobot(serialNumber: string, cleaningMode?: string): Promise; /** * Send command to stop the robot via shadow update */ stopRobot(serialNumber: string): Promise; /** * Send command to set cleaning mode via shadow update */ setCleaningMode(serialNumber: string, mode: string): Promise; /** * Send command to put robot in pickup mode via shadow update */ pickupRobot(serialNumber: string): Promise; /** * Get robot information from REST API */ getRobotInfo(serialNumber: string): Promise; /** * Get user's robots (from authentication) */ getRobots(): Promise; /** * Get current serial number */ getSerialNumber(): string | undefined; /** * Get current robot name */ getRobotName(): string | undefined; } //# sourceMappingURL=maytronicsApi.d.ts.map