UNPKG

matterbridge-roborock-vacuum-plugin

Version:
79 lines 4.21 kB
import { AnsiLogger } from 'matterbridge/logger'; import { ServiceArea } from 'matterbridge/matter/clusters'; import { MapInfo, RoomIndexMap } from '../core/application/models/index.js'; import { type SupportedAreasResult } from '../initialData/getSupportedAreas.js'; import { RoborockIoTApi } from '../roborockCommunication/api/iotClient.js'; import { RawRoomMappingData, RoomDto } from '../roborockCommunication/models/home/index.js'; import { Scene } from '../roborockCommunication/models/index.js'; import { MessageRoutingService } from './index.js'; /** Manages cleaning areas, rooms, maps, and scenes. */ export declare class AreaManagementService { private readonly logger; private readonly serviceRouting; private readonly liveMapUpdates; private readonly enableMultipleMap; private supportedAreas; private supportedMaps; private supportedRoutines; private selectedAreas; private progress; private lastActivelyCleaningState; private supportedAreaIndexMaps; private areasListeners; private refreshIntervals; private deviceRooms; private iotApi; private mapInfoCache; private v1RoomResolutionCache; constructor(logger: AnsiLogger, serviceRouting: MessageRoutingService | undefined, liveMapUpdates?: boolean, enableMultipleMap?: boolean); private getPrimaryMapId; isMultipleMapEnabled(): boolean; setIotApi(iotApi: RoborockIoTApi): void; setDeviceRooms(duid: string, rooms: RoomDto[]): void; setSelectedAreas(duid: string, selectedAreas: number[]): void; getSelectedAreas(duid: string): number[]; setProgress(duid: string, progress: ServiceArea.Progress[]): void; getProgress(duid: string): ServiceArea.Progress[]; /** Store the "was actively cleaning" state for a device. */ setLastActivelyCleaningState(duid: string, isActivelyCleaning: boolean): void; /** Retrieve the stored "was actively cleaning" state for a device. */ getLastActivelyCleaningState(duid: string): boolean; registerAreasListener(duid: string, callback: (areas: ServiceArea.Area[], maps: ServiceArea.Map[]) => void): void; setSupportedMaps(duid: string, maps: ServiceArea.Map[]): void; getSupportedMaps(duid: string): ServiceArea.Map[]; setSupportedAreas(duid: string, supportedAreas: ServiceArea.Area[]): void; setSupportedAreaIndexMap(duid: string, indexMap: RoomIndexMap): void; setSupportedRoutines(duid: string, routineAsRooms: ServiceArea.Area[]): void; getSupportedAreas(duid: string): ServiceArea.Area[]; getSupportedAreasIndexMap(duid: string): RoomIndexMap | undefined; mergeSupportedAreasForMap(duid: string, mapId: number, incomingAreas: ServiceArea.Area[], incomingIndexMap: RoomIndexMap): void; getSupportedRoutines(duid: string): ServiceArea.Area[] | undefined; private fetchAndApplyMapInfo; private applyAreasResult; /** Publish areas/maps from a computed {@link SupportedAreasResult} (live push path). */ applySupportedAreasResult(duid: string, result: SupportedAreasResult, mergeMapId?: number): void; private isPhysicalMapId; private hasAreasForMap; private applyRoomMapData; private fetchAndApplyRoomMap; ensureAreasForMap(duid: string, mapId: number, options?: { switchFirst?: boolean; }): Promise<boolean>; getMapInfo(duid: string): Promise<MapInfo | undefined>; getRoomMap(duid: string, activeMap: number): Promise<RawRoomMappingData | undefined>; resolveInitialAreas(duid: string): Promise<{ supportedAreas: ServiceArea.Area[]; supportedMaps: ServiceArea.Map[]; }>; private sortSupportedAreasByMap; startPeriodicRefresh(duid: string, intervalMs?: number): void; stopPeriodicRefresh(duid: string): void; getScenes(homeId: number): Promise<Scene[] | undefined>; startScene(sceneId: number): Promise<unknown>; setV1ResolvedSegment(duid: string, segmentId: number): void; getV1ResolvedSegment(duid: string, maxAgeMs?: number): number | undefined; requestV1MapRefresh(duid: string): Promise<void>; /** Clear all area management data and stop all refresh timers. */ clearAll(): void; } //# sourceMappingURL=areaManagementService.d.ts.map