@apocaliss92/nodedreame 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -92,6 +92,12 @@ interface PropertyResult {
92
92
  piid?: number | undefined;
93
93
  value?: unknown;
94
94
  code?: number | undefined;
95
+ /**
96
+ * Epoch-ms the cloud last observed this value. Only populated by the
97
+ * cloud-shadow read (`getCachedProperties`); absent on live `get_properties`.
98
+ * Surfaced so callers can report the cache age of a standby device.
99
+ */
100
+ updateDate?: number | undefined;
95
101
  [key: string]: unknown;
96
102
  }
97
103
 
@@ -289,6 +295,8 @@ interface PushLike {
289
295
  interface BaseDeviceDeps {
290
296
  createPush(device: DreameDevice, session: DreameSession, region: DreameRegion): PushLike;
291
297
  getProperties(base: CommonInput, props: MiotProp[]): Promise<PropertyResult[]>;
298
+ /** Read the cloud-cached (shadow) values WITHOUT waking the device. */
299
+ getCachedProperties(base: CommonInput, props: MiotProp[]): Promise<PropertyResult[]>;
292
300
  setProperties(base: CommonInput, writes: PropertyWrite[]): Promise<PropertyResult[]>;
293
301
  callAction(base: CommonInput, action: {
294
302
  siid: number;
@@ -345,6 +353,13 @@ declare class BaseDevice<Events extends BaseDeviceEvents = BaseDeviceEvents> ext
345
353
  start(): Promise<void>;
346
354
  /** Live-read properties, update the cache, return the raw results. */
347
355
  refreshProperties(props: MiotProp[]): Promise<PropertyResult[]>;
356
+ /**
357
+ * Read the CLOUD-CACHED (shadow) values of `props` WITHOUT waking the device,
358
+ * update the cache, and emit `propertyChanged`/`stateChanged` just like
359
+ * {@link refreshProperties} — but sourced from the cloud shadow endpoint, so
360
+ * it works for standby/offline robots (and never surfaces a false 80001).
361
+ */
362
+ refreshCachedProperties(props: MiotProp[]): Promise<PropertyResult[]>;
348
363
  /** Write a property to the device. */
349
364
  setProperty(write: PropertyWrite): Promise<PropertyResult[]>;
350
365
  /** Invoke a MIoT action on the device. */
@@ -451,11 +466,27 @@ declare enum MiotState {
451
466
  ReturnToEmpty = 28,
452
467
  WaitingForTask = 29,
453
468
  CleanWashboardBase = 30,
469
+ ReturningToDrain = 31,
470
+ Draining = 32,
454
471
  AutoWaterDraining = 33,
472
+ Emptying = 34,
473
+ DustBagDrying = 35,
474
+ DustBagDryingPaused = 36,
475
+ HeadingToExtraCleaning = 37,
476
+ ExtraCleaning = 38,
477
+ FindingPetPaused = 95,
478
+ FindingPet = 96,
455
479
  ShortcutRunning = 97,
456
480
  CameraMonitoring = 98,
457
481
  CameraMonitoringPaused = 99,
458
- InitialDeepClean = 101
482
+ InitialDeepClean = 101,
483
+ InitialDeepCleanPaused = 102,
484
+ Sanitizing = 103,
485
+ SanitizingWithDry = 104,
486
+ ChangingMop = 105,
487
+ ChangingMopPaused = 106,
488
+ FloorMaintaining = 107,
489
+ FloorMaintainingPaused = 108
459
490
  }
460
491
  /** VERIFIED on r2532a 2026-05-02 — ChargingStatus (siid 3 piid 2). */
461
492
  declare enum ChargingStatus {
@@ -490,27 +521,97 @@ declare enum CleaningMode {
490
521
  }
491
522
  /**
492
523
  * Error / fault value space for ERROR (siid 2 piid 2) and FAULTS_STR
493
- * (siid 4 piid 18). VERIFIED members confirmed live on r2532a; the rest are
494
- * ASSUMED from Tasshack types.py — the integer is the source of truth.
524
+ * (siid 4 piid 18). This is the FULL Tasshack `DreameVacuumErrorCode` table
525
+ * (types.py) — every documented integer is mapped. Members whose names were
526
+ * VERIFIED live on r2532a keep their verified labels even where the donor uses
527
+ * a different label for the same integer (annotated inline); the rest carry the
528
+ * donor's documented name. UNKNOWN (-1) is intentionally omitted — an unknown
529
+ * code falls through the cast-free lookup and surfaces as the raw number.
495
530
  */
496
531
  declare enum MiotError {
497
- Clear = 0,
498
- WheelRotationAnomaly = 1,
499
- RobotLifted = 18,
500
- TaskComplete = 68,
501
- ManualMopInstallRequired = 74,
502
- WastewaterTankFull = 105,
503
- CleanWaterTankEmpty = 107,
504
- WashboardFilterNeedsCleaning = 114,
505
- MopPadsMissing = 120,
532
+ Clear = 0,// donor NO_ERROR
533
+ WheelRotationAnomaly = 1,// donor DROP (VERIFIED label kept)
534
+ Cliff = 2,
535
+ Bumper = 3,
536
+ Gesture = 4,
537
+ BumperRepeat = 5,
538
+ DropRepeat = 6,
539
+ OpticalFlow = 7,
540
+ Box = 8,
541
+ TankBox = 9,
542
+ WaterBoxEmpty = 10,
543
+ BoxFull = 11,
544
+ Brush = 12,
545
+ SideBrush = 13,
546
+ Fan = 14,
547
+ LeftWheelMotor = 15,
548
+ RightWheelMotor = 16,
549
+ TurnSuffocate = 17,
550
+ RobotLifted = 18,// donor FORWARD_SUFFOCATE (VERIFIED label kept)
551
+ ChargerGet = 19,
506
552
  BatteryLow = 20,
507
553
  ChargeFault = 21,
508
- BatteryPercentageAnomaly = 22,
554
+ BatteryPercentageAnomaly = 22,// donor BATTERY_PERCENTAGE
555
+ Heart = 23,
556
+ CameraOcclusion = 24,
557
+ Move = 25,
558
+ FlowShielding = 26,
559
+ InfraredShielding = 27,
509
560
  ChargeNoElectric = 28,
510
561
  BatteryFault = 29,
562
+ FanSpeedError = 30,
563
+ LeftWheelSpeed = 31,
564
+ RightWheelSpeed = 32,
565
+ Bmi055Acce = 33,
566
+ Bmi055Gyro = 34,
567
+ Xv7001 = 35,
568
+ LeftMagnet = 36,
569
+ RightMagnet = 37,
570
+ FlowError = 38,
571
+ InfraredFault = 39,
572
+ CameraFault = 40,
573
+ StrongMagnet = 41,
574
+ WaterPump = 42,
575
+ Rtc = 43,
576
+ AutoKeyTrig = 44,
577
+ P3v3 = 45,
578
+ CameraIdle = 46,
579
+ Blocked = 47,
580
+ LdsError = 48,
581
+ LdsBumper = 49,
582
+ WaterPump2 = 50,
583
+ FilterBlocked = 51,
584
+ Edge = 54,
585
+ Carpet = 55,
586
+ Laser = 56,
587
+ Edge2 = 57,
588
+ Ultrasonic = 58,
589
+ NoGoZone = 59,
590
+ Route = 61,
591
+ Route2 = 62,
592
+ Blocked2 = 63,
593
+ Blocked3 = 64,
594
+ Restricted = 65,
595
+ Restricted2 = 66,
596
+ Restricted3 = 67,
597
+ TaskComplete = 68,// donor REMOVE_MOP (VERIFIED label kept)
598
+ MopRemoved = 69,
599
+ MopRemoved2 = 70,
600
+ MopPadStopRotate = 71,
601
+ MopPadStopRotate2 = 72,
602
+ ManualMopInstallRequired = 74,// donor MOP_INSTALL_FAILED (VERIFIED label kept)
511
603
  LowBatteryTurnOff = 75,
604
+ DirtyTankNotInstalled = 76,
605
+ RobotInHiddenRoom = 78,
606
+ LdsFailedToLift = 79,
512
607
  RobotStuck = 80,
513
608
  RobotStuckRepeat = 81,
609
+ SlipperyFloor = 82,
610
+ UnknownError = 84,
611
+ CheckMopInstall = 85,
612
+ DirtyWaterTankFull = 86,
613
+ RetractableLegStuck = 88,
614
+ InternalError = 89,
514
615
  RobotStuck2 = 90,
515
616
  RobotStuckOnTables = 91,
516
617
  RobotStuckOnPassage = 92,
@@ -521,19 +622,91 @@ declare enum MiotError {
521
622
  RobotStuckOnPet = 97,
522
623
  RobotStuckOnSlipperySurface = 98,
523
624
  RobotStuckOnCarpet = 99,
524
- RobotStuckOnCurtain = 200,
525
625
  BinFull = 101,
626
+ BinOpen = 102,
627
+ BinOpen2 = 103,
628
+ BinFull2 = 104,
629
+ WastewaterTankFull = 105,// donor WATER_TANK (VERIFIED label kept)
630
+ DirtyWaterTank = 106,
631
+ CleanWaterTankEmpty = 107,// donor WATER_TANK_DRY (VERIFIED label kept)
632
+ DirtyWaterTank2 = 108,
633
+ DirtyWaterTankBlocked = 109,
634
+ DirtyWaterTankPump = 110,
635
+ MopPad = 111,
636
+ WetMopPad = 112,
637
+ WashboardFilterNeedsCleaning = 114,// donor CLEAN_MOP_PAD (VERIFIED label kept)
638
+ CleanTankLevel = 116,
526
639
  StationDisconnected = 117,
527
- DustBagFull = 121
640
+ DirtyTankLevel = 118,
641
+ WashboardLevel = 119,
642
+ MopPadsMissing = 120,// donor NO_MOP_IN_STATION (VERIFIED label kept)
643
+ DustBagFull = 121,
644
+ UnknownWarning = 122,
645
+ SelfTestFailed = 123,
646
+ WashboardNotWorking = 124,
647
+ DrainageFailed = 125,
648
+ MopNotDetected = 126,
649
+ MopHolderError = 127,
650
+ DockError = 128,
651
+ WashFailed = 129,
652
+ RobotStuckOnCurtain = 200,
653
+ EdgeMopStopRotate = 201,
654
+ EdgeMopDetached = 202,
655
+ ChassisLiftMalfunction = 203,
656
+ InternalError2 = 207,
657
+ MopCoverError = 209,
658
+ RollerMopError = 210,
659
+ OnboardWaterTankEmpty = 213,
660
+ OnboardDirtyWaterTankFull = 214,
661
+ MopNotInstalled = 215,
662
+ RollerMopError2 = 218,
663
+ FluffingRollerError = 222,
664
+ MopCoverError2 = 223,
665
+ BlockedByObstacle = 226,
666
+ ReturnToChargeFailed = 1000
528
667
  }
529
- /** VERIFIED on r2532a 2026-05-02 — TASK_STATUS (siid 4 piid 1). */
668
+ /**
669
+ * TASK_STATUS (siid 4 piid 1). Codes 1/2/3/6/12/14 carry the labels VERIFIED
670
+ * live on r2532a 2026-05-02 — these are KEPT verbatim because they were
671
+ * observed against real task transitions and differ from the donor's labels for
672
+ * the same integers (donor: 1=AUTO_CLEANING, 2=ZONE_CLEANING, 3=SEGMENT_CLEANING,
673
+ * 6=AUTO_CLEANING_PAUSED, 12=MOPPING_PAUSED, 14=ZONE_MOPPING_PAUSED). The
674
+ * remaining members are ASSUMED from Tasshack `DreameVacuumTaskStatus`
675
+ * (types.py) — added so documented codes resolve to a name. Unknown codes
676
+ * surface as raw via {@link VacuumDevice.taskStatusRaw}.
677
+ */
530
678
  declare enum TaskStatus {
679
+ Completed = 0,
531
680
  InterruptedOrPaused = 1,
532
681
  Active = 2,
533
682
  Transitioning = 3,
683
+ SpotCleaning = 4,
684
+ FastMapping = 5,
534
685
  OnDockIdle = 6,
686
+ ZoneCleaningPaused = 7,
687
+ SegmentCleaningPaused = 8,
688
+ SpotCleaningPaused = 9,
689
+ MapCleaningPaused = 10,
690
+ DockingPaused = 11,
535
691
  TransientPauseEdge = 12,
536
- NeedsIntervention = 14
692
+ SegmentMoppingPaused = 13,
693
+ NeedsIntervention = 14,
694
+ AutoMoppingPaused = 15,
695
+ AutoDockingPaused = 16,
696
+ SegmentDockingPaused = 17,
697
+ ZoneDockingPaused = 18,
698
+ CruisingPath = 20,
699
+ CruisingPathPaused = 21,
700
+ CruisingPoint = 22,
701
+ CruisingPointPaused = 23,
702
+ SummonCleanPaused = 24,
703
+ ReturningInstallMop = 25,
704
+ ReturningRemoveMop = 26,
705
+ StationCleaning = 27,
706
+ PetFinding = 30,
707
+ AutoCleaningWashingPaused = 31,
708
+ AreaCleaningWashingPaused = 32,
709
+ CustomCleaningWashingPaused = 33
537
710
  }
538
711
 
539
712
  /**
@@ -1009,6 +1182,14 @@ declare class VacuumDevice extends BaseDevice<VacuumDeviceEvents> {
1009
1182
  constructor(input: BaseDeviceInput);
1010
1183
  /** Rich, vacuum-specific capability record (booleans + supported enums). */
1011
1184
  get vacuumCapabilities(): VacuumCapabilities;
1185
+ /**
1186
+ * The suction levels this model supports, as a {@link SuctionLevel} enum array
1187
+ * (from the capability record). Lets a consumer see which fan speeds are
1188
+ * selectable without reaching into {@link vacuumCapabilities}.
1189
+ */
1190
+ get supportedSuctionLevels(): readonly SuctionLevel[];
1191
+ /** The water/mop volumes this model supports, as a {@link WaterVolume} enum array. */
1192
+ get supportedWaterVolumes(): readonly WaterVolume[];
1012
1193
  get statusRaw(): number | null;
1013
1194
  get status(): MiotState | null;
1014
1195
  get battery(): number | null;
@@ -1080,6 +1261,14 @@ declare class VacuumDevice extends BaseDevice<VacuumDeviceEvents> {
1080
1261
  x: number;
1081
1262
  y: number;
1082
1263
  }, opts?: CleanOpts): Promise<unknown>;
1264
+ /**
1265
+ * Seed the cache from the CLOUD SHADOW (last-known values) WITHOUT waking the
1266
+ * robot — reads {@link VacuumDevice.DEFAULT_PROPS} from the cloud-cached
1267
+ * endpoint. After it resolves, every typed getter (status/battery/suction/
1268
+ * water/cleaningMode/error/charging…) reflects the cached values, so a
1269
+ * standby/docked vacuum reports its state exactly as the Dreamehome app does.
1270
+ */
1271
+ refreshFromCache(): Promise<void>;
1083
1272
  /** The most-recently-decoded map, or `null` until {@link getMap} succeeds. */
1084
1273
  get lastMap(): VacuumMap | null;
1085
1274
  /**
@@ -1192,13 +1381,104 @@ declare enum MowerControlAction {
1192
1381
  }
1193
1382
  /**
1194
1383
  * Observed TASK_STATUS codes (siid 5 piid 104), service5.py TASK_STATUS_MAPPING.
1195
- * Only `SpotIncomplete` (7) has a confirmed meaning; the others in the donor are
1196
- * "Unknown task status: N" — ASSUMED / not exposed as named members here.
1384
+ * Only `SpotIncomplete` (7) has a confirmed meaning; the donor explicitly marks
1385
+ * codes 2/3/10/13 as "Unknown task status: N" (observed after RAIN/LOST/
1386
+ * LOW_BATTERY events). Those are NOT invented as named members — they surface as
1387
+ * raw via {@link MowerDevice.taskStatusRaw}. This is the FULL documented set:
1388
+ * the donor names exactly one code.
1197
1389
  */
1198
1390
  declare enum MowerTaskStatus {
1199
1391
  /** "Task incomplete - spot mowing". */
1200
1392
  SpotIncomplete = 7
1201
1393
  }
1394
+ /**
1395
+ * Mower device-code / fault value space for DEVICE_CODE (siid 2 piid 2). This is
1396
+ * the FULL donor `BASE_DEVICE_CODES` registry (property/device_code.py), codes
1397
+ * 0..73 contiguous. Each integer is documented by the donor with a name +
1398
+ * severity (INFO / WARNING / ERROR — noted inline). 0 = NO_DEVICE_CODE (normal
1399
+ * operation). Codes not in this table (model-specific extensions) fall through
1400
+ * the cast-free lookup and surface as raw via {@link MowerDevice.faultRaw}.
1401
+ *
1402
+ * Two donor names repeat at different integers; the second occurrence is
1403
+ * suffixed (`LidarDirtyWarning` 38, `BatteryOverheatWarning` 42) to keep enum
1404
+ * member names unique while preserving the integer source of truth.
1405
+ */
1406
+ declare enum MowerFault {
1407
+ NoDeviceCode = 0,// INFO
1408
+ Tilted = 1,// ERROR
1409
+ Trapped = 2,// ERROR
1410
+ NarrowPathToStation = 3,// ERROR
1411
+ LeftWheel = 4,// ERROR
1412
+ RightWheel = 5,// ERROR
1413
+ LiftMotor = 6,// ERROR
1414
+ Cutter = 7,// ERROR
1415
+ SidedMotor = 8,// ERROR
1416
+ CrashPlate = 9,// ERROR
1417
+ Charging = 10,// ERROR
1418
+ BatteryOverheat = 11,// ERROR
1419
+ LidarCovered = 12,// ERROR
1420
+ LidarOverheatWithoutMap = 13,// ERROR
1421
+ LidarOverheatWithMap = 14,// ERROR
1422
+ LidarOverheat = 15,// ERROR
1423
+ LidarDirty = 16,// ERROR
1424
+ LidarAbnormal = 17,// ERROR
1425
+ LocationWeak = 18,// ERROR
1426
+ LocationLost = 19,// ERROR
1427
+ Sensor = 20,// ERROR
1428
+ InForbiddenArea = 21,// ERROR
1429
+ OutOfMap = 22,// ERROR
1430
+ EmergencyStop = 23,// ERROR
1431
+ BatteryLow = 24,// ERROR
1432
+ MapFileCrack = 25,// ERROR
1433
+ AwayFromMap = 26,// ERROR
1434
+ HumanDetected = 27,// ERROR
1435
+ BladeLoss = 28,// ERROR
1436
+ StationLoss = 29,// ERROR
1437
+ MaintainLoss = 30,// ERROR
1438
+ BackChargeFailed = 31,// WARNING
1439
+ DockingFailed = 32,// WARNING
1440
+ LocatingFailedWithMap = 33,// WARNING
1441
+ LocatingFailedWithoutMap = 34,// WARNING
1442
+ LocatingAbnormal = 35,// WARNING
1443
+ TaskStartFailed = 36,// WARNING
1444
+ PathImpassable = 37,// ERROR
1445
+ LidarDirtyWarning = 38,// WARNING (donor LIDAR_DIRTY at 38)
1446
+ CamDirty = 39,// WARNING
1447
+ CamAbnormal = 40,// WARNING
1448
+ CamCover = 41,// WARNING
1449
+ BatteryOverheatWarning = 42,// WARNING (donor BATTERY_OVERHEAT at 42)
1450
+ BatteryTempLow = 43,// WARNING
1451
+ AutobuildBorder = 44,// WARNING
1452
+ AutobuildSide = 45,// WARNING
1453
+ BorderFinish = 46,// INFO
1454
+ NewMap = 47,// INFO
1455
+ TaskFinish = 48,// INFO
1456
+ DestinationNotReachable = 49,// INFO
1457
+ TaskStart = 50,// INFO
1458
+ CruiseStart = 51,// INFO
1459
+ PointAndGoStart = 52,// INFO
1460
+ ScheduleStart = 53,// INFO
1461
+ BatteryLowReturning = 54,// INFO
1462
+ BatteryLowScheduleSuspend = 55,// INFO
1463
+ BadWeatherProtecting = 56,// INFO
1464
+ RainScheduleInterupted = 57,// INFO
1465
+ RainScheduleSuspend = 58,// INFO
1466
+ ForzenReturning = 59,// INFO
1467
+ FrozenScheduleSuspend = 60,// INFO
1468
+ NotDisturbReturning = 61,// INFO
1469
+ NotDisturbScheduleSuspend = 62,// INFO
1470
+ WorkingScheduleSuspend = 63,// INFO
1471
+ RemoteControlingScheduleSuspend = 64,// INFO
1472
+ EmergencyStoppedScheduleSuspend = 65,// INFO
1473
+ TopCoverOpenScheduleSuspend = 66,// INFO
1474
+ FaultModeScheduleSuspend = 67,// INFO
1475
+ ScheduleTimeout = 68,// INFO
1476
+ StationNotConnectedToWorkingArea = 69,// INFO
1477
+ ContinueFromBreakpoint = 70,// INFO
1478
+ IdleTimeoutReturning = 71,// INFO
1479
+ PauseTimeoutReturning = 72,// INFO
1480
+ TopCoverOpen = 73
1481
+ }
1202
1482
 
1203
1483
  /**
1204
1484
  * Cast-free mower decoders. Re-exports the shared numeric primitives, and adds
@@ -1417,6 +1697,19 @@ declare class MowerDevice extends BaseDevice {
1417
1697
  get isDocked(): boolean;
1418
1698
  get isMowing(): boolean;
1419
1699
  get taskStatusRaw(): number | null;
1700
+ /**
1701
+ * TASK_STATUS (5:104) decoded to {@link MowerTaskStatus}, or null. The donor
1702
+ * names only code 7 (SpotIncomplete); codes 2/3/10/13 are documented "Unknown
1703
+ * task status" and intentionally surface as raw via {@link taskStatusRaw}.
1704
+ */
1705
+ get taskStatus(): MowerTaskStatus | null;
1706
+ get faultRaw(): number | null;
1707
+ /**
1708
+ * DEVICE_CODE (2:2) decoded to a {@link MowerFault} (the donor's
1709
+ * BASE_DEVICE_CODES registry, 0..73), or null for a model-specific/undocumented
1710
+ * code — which still surfaces as the raw number via {@link faultRaw}.
1711
+ */
1712
+ get fault(): MowerFault | null;
1420
1713
  /** Parsed scheduling task descriptor (2:50), or null. */
1421
1714
  get task(): MowerTaskDescriptor | null;
1422
1715
  /**
@@ -1451,6 +1744,14 @@ declare class MowerDevice extends BaseDevice {
1451
1744
  startMowingEdges(contourIds: number[][]): Promise<unknown>;
1452
1745
  /** Spot mowing (2:50 o:103). */
1453
1746
  startMowingSpots(spotAreaIds: number[]): Promise<unknown>;
1747
+ /**
1748
+ * Seed the cache from the CLOUD SHADOW (last-known values) WITHOUT waking the
1749
+ * mower — reads {@link MowerDevice.DEFAULT_PROPS} from the cloud-cached
1750
+ * endpoint. After it resolves, every typed getter (status/battery/charging/
1751
+ * coverage/task/controlAction…) reflects the cached values, so a docked/
1752
+ * standby mower reports its state exactly as the Dreamehome app does.
1753
+ */
1754
+ refreshFromCache(): Promise<void>;
1454
1755
  /** The most-recently-parsed map, or `null` until {@link getMap} succeeds. */
1455
1756
  get lastMap(): MowerMap | null;
1456
1757
  /**
@@ -1472,6 +1773,9 @@ declare class MowerDevice extends BaseDevice {
1472
1773
  static readonly DEFAULT_PROPS: readonly [{
1473
1774
  readonly siid: 2;
1474
1775
  readonly piid: 1;
1776
+ }, {
1777
+ readonly siid: 2;
1778
+ readonly piid: 2;
1475
1779
  }, {
1476
1780
  readonly siid: 3;
1477
1781
  readonly piid: 1;
@@ -1490,4 +1794,4 @@ declare class MowerDevice extends BaseDevice {
1490
1794
  }];
1491
1795
  }
1492
1796
 
1493
- export { BaseDevice, type BaseDeviceEvents, type BatchDeviceDataFetcher, type CapabilityResolver, ChargingStatus, type CleanOpts, CleaningMode, type CreateDeviceArgs, DefaultCapabilityResolver, type DeviceCapabilities, type DeviceEvent, DreameApiError, DreameAuthError, type DreameCloudState, type DreameDevice, DreameDeviceOfflineError, DreameError, type DreameRegion, type DreameSession, DreameTransportError, LIBRARY_NAME, MODEL_CAPABILITIES as MOWER_MODEL_CAPABILITIES, type MapBoundingBox, type MapCleanedAreaOverlay, type MapDimensions, type MapFrameType, type MapLayer, type MapLayerType, type MapLowLyingArea, type MapObstacle, type MapPath, type MapPathType, type MapPoint, type MapPose, type MapRestrictedArea, type MapRoom, type MapRoomWall, type MapRun, type MapSegment, type MapStorey, type MapVirtualWall, type MapWallsInfo, type MiotAction, MiotError, type MiotProp, MiotState, type MowerAvailableMap, type MowerCapabilities, MowerCapabilityResolver, MowerChargingStatus, type MowerContour, MowerControlAction, type MowerControlState, MowerDevice, type MowerDeviceInput, type MowerMap, type MowerMapBoundary, type MowerMowPath, type MowerPathEntry, type MowerPoint, type MowerSpotArea, MowerStatus, type MowerTaskDescriptor, MowerTaskStatus, type MowerZone, Nodreame, type NodreameDeps, type NodreameEvents, type NodreameOptions, type OssFetchInput, type OssFetcherLike, type PropertyChangedEvent, type PropertyResult, type PropertyState, type PropertyWrite, type RenderMowerSvgOptions, type RenderVacuumPngOptions, type StateChangedEvent, SuctionLevel, TaskStatus, MODEL_CAPABILITIES$1 as VACUUM_MODEL_CAPABILITIES, type VacuumCapabilities, VacuumCapabilityResolver, VacuumDevice, type VacuumGetMapInput, type VacuumMap, WaterVolume, getMowerCapabilities, getVacuumCapabilities, renderMowerSvg, renderVacuumPng, resolveCapabilities };
1797
+ export { BaseDevice, type BaseDeviceEvents, type BatchDeviceDataFetcher, type CapabilityResolver, ChargingStatus, type CleanOpts, CleaningMode, type CreateDeviceArgs, DefaultCapabilityResolver, type DeviceCapabilities, type DeviceEvent, DreameApiError, DreameAuthError, type DreameCloudState, type DreameDevice, DreameDeviceOfflineError, DreameError, type DreameRegion, type DreameSession, DreameTransportError, LIBRARY_NAME, MODEL_CAPABILITIES as MOWER_MODEL_CAPABILITIES, type MapBoundingBox, type MapCleanedAreaOverlay, type MapDimensions, type MapFrameType, type MapLayer, type MapLayerType, type MapLowLyingArea, type MapObstacle, type MapPath, type MapPathType, type MapPoint, type MapPose, type MapRestrictedArea, type MapRoom, type MapRoomWall, type MapRun, type MapSegment, type MapStorey, type MapVirtualWall, type MapWallsInfo, type MiotAction, MiotError, type MiotProp, MiotState, type MowerAvailableMap, type MowerCapabilities, MowerCapabilityResolver, MowerChargingStatus, type MowerContour, MowerControlAction, type MowerControlState, MowerDevice, type MowerDeviceInput, MowerFault, type MowerMap, type MowerMapBoundary, type MowerMowPath, type MowerPathEntry, type MowerPoint, type MowerSpotArea, MowerStatus, type MowerTaskDescriptor, MowerTaskStatus, type MowerZone, Nodreame, type NodreameDeps, type NodreameEvents, type NodreameOptions, type OssFetchInput, type OssFetcherLike, type PropertyChangedEvent, type PropertyResult, type PropertyState, type PropertyWrite, type RenderMowerSvgOptions, type RenderVacuumPngOptions, type StateChangedEvent, SuctionLevel, TaskStatus, MODEL_CAPABILITIES$1 as VACUUM_MODEL_CAPABILITIES, type VacuumCapabilities, VacuumCapabilityResolver, VacuumDevice, type VacuumGetMapInput, type VacuumMap, WaterVolume, getMowerCapabilities, getVacuumCapabilities, renderMowerSvg, renderVacuumPng, resolveCapabilities };