import { Logger } from 'homebridge'; import { EventEmitter } from 'events'; import { AEGAccount } from './aeg-account.js'; import { Config } from './config-types.js'; import { RX9ApplianceInfo, RX9ApplianceState, RX9BatteryStatus, RX9Capabilities, RX9CleaningCommand, RX9Dustbin, RX9Message, RX92PowerMode, RX9RobotStatus } from './aegapi-rx9-types.js'; import { AEGAPIRX9 } from './aegapi-rx9.js'; import { Appliance } from './aegapi-types.js'; export declare enum SimpleActivity { Other = "Other", Clean = "Clean", Pitstop = "Pitstop", Pause = "Pause", Return = "Return" } export interface DynamicStatus { hardware: string; firmware: string; capabilities: RX9Capabilities[]; battery?: RX9BatteryStatus; activity?: RX9RobotStatus; dustbin?: RX9Dustbin; rawPower?: RX92PowerMode; rawEco?: boolean; enabled: boolean; connected: boolean; isServerError?: unknown; isRobotError?: unknown; simpleActivity?: SimpleActivity; isBatteryLow?: boolean; isCharging?: boolean; isDustbinEmpty?: boolean; isDocked?: boolean; isActive?: boolean; isBusy?: boolean; isFault?: boolean; isError?: unknown; power?: RX92PowerMode; eco?: boolean; } export type StatusEvent = keyof DynamicStatus; interface DataEventType { message: RX9Message; } type DataEvent = keyof DataEventType; type VoidEvent = 'info' | 'appliance' | 'preUpdate'; type DataEventListener = (value: DataEventType[Event]) => void; type StatusEventListener = (newValue: DynamicStatus[Event], oldValue: DynamicStatus[Event]) => void; export declare class AEGRobot extends EventEmitter { readonly account: AEGAccount; readonly appliance: Appliance; readonly config: Config; readonly log: Logger; readonly api: AEGAPIRX9; readonly setActivity: (command: RX9CleaningCommand) => void; readonly applianceId: string; pnc: string; sn: string; brand: string; model: string; name: string; readonly status: DynamicStatus; private emittedStatus; private readonly emittedMessages; private readonly readyPromise; constructor(log: Logger, account: AEGAccount, appliance: Appliance); waitUntilReady(): Promise; init(): Promise; toString(): string; updateFromApplianceInfo(info: RX9ApplianceInfo): void; updateFromApplianceState(state: RX9ApplianceState): void; pollApplianceState(): Promise; heartbeat(err?: unknown): void; updateDerivedAndEmit(): void; updateDerived(): void; updateStatus(update: Partial): void; emitChangeEvents(): void; emitMessages(messages?: RX9Message[]): void; on(event: VoidEvent, listener: () => void): this; on(event: Event, dataListener: DataEventListener): this; on(event: Event, statusListener: StatusEventListener): this; once(event: VoidEvent, listener: () => void): this; once(event: Event, dataListener: DataEventListener): this; once(event: Event, statusListener: StatusEventListener): this; emit(event: VoidEvent): boolean; emit(event: Event, value: DataEventType[Event]): boolean; emit(event: Event, newValue: DynamicStatus[Event], oldValue: DynamicStatus[Event]): boolean; } export {}; //# sourceMappingURL=aeg-robot.d.ts.map