UNPKG

matterbridge

Version:
843 lines • 117 kB
import { AnsiLogger } from './logger/export.js'; import { MatterbridgeEndpoint } from './matterbridgeEndpoint.js'; import { MatterbridgeIdentifyServer, MatterbridgeOnOffServer, MatterbridgeLevelControlServer, MatterbridgeColorControlServer, MatterbridgeWindowCoveringServer, MatterbridgeThermostatServer, MatterbridgeFanControlServer, MatterbridgeDoorLockServer, MatterbridgeModeSelectServer, MatterbridgeValveConfigurationAndControlServer, MatterbridgeSmokeCoAlarmServer, MatterbridgeBooleanStateConfigurationServer } from './matterbridgeBehaviors.js'; import { Behavior, ClusterId, Endpoint } from '@matter/main'; import { ClusterType } from '@matter/main/types'; import { PowerSource } from '@matter/main/clusters/power-source'; import { OnOff } from '@matter/main/clusters/on-off'; import { LevelControl } from '@matter/main/clusters/level-control'; import { WindowCovering } from '@matter/main/clusters/window-covering'; import { Thermostat } from '@matter/main/clusters/thermostat'; import { ValveConfigurationAndControl } from '@matter/main/clusters/valve-configuration-and-control'; import { PumpConfigurationAndControl } from '@matter/main/clusters/pump-configuration-and-control'; import { SmokeCoAlarm } from '@matter/main/clusters/smoke-co-alarm'; import { BooleanState } from '@matter/main/clusters/boolean-state'; import { ElectricalPowerMeasurement } from '@matter/main/clusters/electrical-power-measurement'; import { AirQuality } from '@matter/main/clusters/air-quality'; import { PowerSourceServer } from '@matter/main/behaviors/power-source'; import { UserLabelServer } from '@matter/main/behaviors/user-label'; import { FixedLabelServer } from '@matter/main/behaviors/fixed-label'; import { BasicInformationServer } from '@matter/main/behaviors/basic-information'; import { BridgedDeviceBasicInformationServer } from '@matter/main/behaviors/bridged-device-basic-information'; import { GroupsServer } from '@matter/main/behaviors/groups'; import { PumpConfigurationAndControlServer } from '@matter/main/behaviors/pump-configuration-and-control'; import { SwitchServer } from '@matter/main/behaviors/switch'; import { BooleanStateServer } from '@matter/main/behaviors/boolean-state'; import { PowerTopologyServer } from '@matter/main/behaviors/power-topology'; import { ElectricalPowerMeasurementServer } from '@matter/main/behaviors/electrical-power-measurement'; import { ElectricalEnergyMeasurementServer } from '@matter/main/behaviors/electrical-energy-measurement'; import { TemperatureMeasurementServer } from '@matter/main/behaviors/temperature-measurement'; import { RelativeHumidityMeasurementServer } from '@matter/main/behaviors/relative-humidity-measurement'; import { PressureMeasurementServer } from '@matter/main/behaviors/pressure-measurement'; import { FlowMeasurementServer } from '@matter/main/behaviors/flow-measurement'; import { IlluminanceMeasurementServer } from '@matter/main/behaviors/illuminance-measurement'; import { OccupancySensingServer } from '@matter/main/behaviors/occupancy-sensing'; import { AirQualityServer } from '@matter/main/behaviors/air-quality'; import { CarbonMonoxideConcentrationMeasurementServer } from '@matter/main/behaviors/carbon-monoxide-concentration-measurement'; import { CarbonDioxideConcentrationMeasurementServer } from '@matter/main/behaviors/carbon-dioxide-concentration-measurement'; import { NitrogenDioxideConcentrationMeasurementServer } from '@matter/main/behaviors/nitrogen-dioxide-concentration-measurement'; import { OzoneConcentrationMeasurementServer } from '@matter/main/behaviors/ozone-concentration-measurement'; import { FormaldehydeConcentrationMeasurementServer } from '@matter/main/behaviors/formaldehyde-concentration-measurement'; import { Pm1ConcentrationMeasurementServer } from '@matter/main/behaviors/pm1-concentration-measurement'; import { Pm25ConcentrationMeasurementServer } from '@matter/main/behaviors/pm25-concentration-measurement'; import { Pm10ConcentrationMeasurementServer } from '@matter/main/behaviors/pm10-concentration-measurement'; import { RadonConcentrationMeasurementServer } from '@matter/main/behaviors/radon-concentration-measurement'; import { TotalVolatileOrganicCompoundsConcentrationMeasurementServer } from '@matter/main/behaviors/total-volatile-organic-compounds-concentration-measurement'; export declare function capitalizeFirstLetter(name: string): string; export declare function lowercaseFirstLetter(name: string): string; export declare function checkNotLatinCharacters(deviceName: string): boolean; export declare function generateUniqueId(deviceName: string): string; export declare function createUniqueId(param1: string, param2: string, param3: string, param4: string): string; export declare function getBehaviourTypesFromClusterServerIds(clusterServerList: ClusterId[]): Behavior.Type[]; export declare function getBehaviourTypesFromClusterClientIds(clusterClientList: ClusterId[]): Behavior.Type[]; export declare function getBehaviourTypeFromClusterServerId(clusterId: ClusterId): typeof MatterbridgeIdentifyServer | typeof MatterbridgeColorControlServer | typeof MatterbridgeDoorLockServer | typeof MatterbridgeModeSelectServer | typeof MatterbridgeFanControlServer | typeof MatterbridgeBooleanStateConfigurationServer | import("@matter/main").ClusterBehavior.Type<import("@matter/main/types").ClusterComposer.WithFeatures<PowerSource.Cluster, readonly [PowerSource.Feature.Wired]>, typeof PowerSourceServer, { components: never[]; }> | typeof UserLabelServer | typeof FixedLabelServer | typeof BasicInformationServer | typeof BridgedDeviceBasicInformationServer | typeof GroupsServer | import("@matter/main").ClusterBehavior.Type<import("@matter/main/types").ClusterComposer.WithFeatures<import("@matter/main/types").ClusterComposer.WithFeatures<OnOff.Cluster, readonly [OnOff.Feature.Lighting]>, readonly ["Lighting"]>, typeof MatterbridgeOnOffServer, import("@matter/node/behaviors").OnOffInterface> | import("@matter/main").ClusterBehavior.Type<import("@matter/main/types").ClusterComposer.WithFeatures<import("@matter/main/types").ClusterComposer.WithFeatures<import("@matter/main/types").ClusterComposer.WithFeatures<LevelControl.Cluster, readonly [LevelControl.Feature.OnOff, LevelControl.Feature.Lighting]>, readonly [LevelControl.Feature.OnOff]>, readonly ["OnOff", "Lighting"]>, typeof MatterbridgeLevelControlServer, import("@matter/node/behaviors").LevelControlInterface> | import("@matter/main").ClusterBehavior.Type<import("@matter/main/types").ClusterComposer.WithFeatures<import("@matter/main/types").ClusterComposer.WithFeatures<ClusterType.Of<{ readonly id: 258; readonly name: "WindowCovering"; readonly revision: 5; readonly features: { readonly lift: import("@matter/main/types").BitFlag; readonly tilt: import("@matter/main/types").BitFlag; readonly positionAwareLift: import("@matter/main/types").BitFlag; readonly absolutePosition: import("@matter/main/types").BitFlag; readonly positionAwareTilt: import("@matter/main/types").BitFlag; }; readonly attributes: { readonly type: import("@matter/main/types").FixedAttribute<WindowCovering.WindowCoveringType, any>; readonly configStatus: import("@matter/main/types").Attribute<import("@matter/main/types").TypeFromPartialBitSchema<{ operational: import("@matter/main/types").BitFlag; onlineReserved: import("@matter/main/types").BitFlag; liftMovementReversed: import("@matter/main/types").BitFlag; liftPositionAware: import("@matter/main/types").BitFlag; tiltPositionAware: import("@matter/main/types").BitFlag; liftEncoderControlled: import("@matter/main/types").BitFlag; tiltEncoderControlled: import("@matter/main/types").BitFlag; }>, any>; readonly operationalStatus: import("@matter/main/types").Attribute<import("@matter/main/types").TypeFromPartialBitSchema<{ global: import("@matter/main/types").BitFieldEnum<WindowCovering.MovementStatus>; lift: import("@matter/main/types").BitFieldEnum<WindowCovering.MovementStatus>; tilt: import("@matter/main/types").BitFieldEnum<WindowCovering.MovementStatus>; }>, any>; readonly endProductType: import("@matter/main/types").FixedAttribute<WindowCovering.EndProductType, any>; readonly mode: import("@matter/main/types").WritableAttribute<import("@matter/main/types").TypeFromPartialBitSchema<{ motorDirectionReversed: import("@matter/main/types").BitFlag; calibrationMode: import("@matter/main/types").BitFlag; maintenanceMode: import("@matter/main/types").BitFlag; ledFeedback: import("@matter/main/types").BitFlag; }>, any>; readonly safetyStatus: import("@matter/main/types").OptionalAttribute<import("@matter/main/types").TypeFromPartialBitSchema<{ remoteLockout: import("@matter/main/types").BitFlag; tamperDetection: import("@matter/main/types").BitFlag; failedCommunication: import("@matter/main/types").BitFlag; positionFailure: import("@matter/main/types").BitFlag; thermalProtection: import("@matter/main/types").BitFlag; obstacleDetected: import("@matter/main/types").BitFlag; power: import("@matter/main/types").BitFlag; stopInput: import("@matter/main/types").BitFlag; motorJammed: import("@matter/main/types").BitFlag; hardwareFailure: import("@matter/main/types").BitFlag; manualOperation: import("@matter/main/types").BitFlag; protection: import("@matter/main/types").BitFlag; }>, any>; }; readonly commands: { readonly upOrOpen: import("@matter/main/types").Command<void, void, any>; readonly downOrClose: import("@matter/main/types").Command<void, void, any>; readonly stopMotion: import("@matter/main/types").Command<void, void, any>; }; readonly extensions: readonly [{ readonly flags: { readonly lift: true; readonly positionAwareLift: true; readonly absolutePosition: true; }; readonly component: { readonly attributes: { readonly physicalClosedLimitLift: import("@matter/main/types").OptionalFixedAttribute<number, any>; readonly currentPositionLift: import("@matter/main/types").OptionalAttribute<number | null, any>; readonly installedOpenLimitLift: import("@matter/main/types").Attribute<number, any>; readonly installedClosedLimitLift: import("@matter/main/types").Attribute<number, any>; }; }; }, { readonly flags: { readonly tilt: true; readonly positionAwareTilt: true; readonly absolutePosition: true; }; readonly component: { readonly attributes: { readonly physicalClosedLimitTilt: import("@matter/main/types").OptionalFixedAttribute<number, any>; readonly currentPositionTilt: import("@matter/main/types").OptionalAttribute<number | null, any>; readonly installedOpenLimitTilt: import("@matter/main/types").Attribute<number, any>; readonly installedClosedLimitTilt: import("@matter/main/types").Attribute<number, any>; }; }; }, { readonly flags: { readonly lift: true; }; readonly component: { readonly attributes: { readonly numberOfActuationsLift: import("@matter/main/types").OptionalAttribute<number, any>; }; readonly commands: { readonly goToLiftPercentage: import("@matter/main/types").OptionalCommand<import("@matter/main/types").TypeFromFields<{ liftPercent100thsValue: import("@matter/main/types").FieldType<number>; }>, void, any>; }; }; }, { readonly flags: { readonly tilt: true; }; readonly component: { readonly attributes: { readonly numberOfActuationsTilt: import("@matter/main/types").OptionalAttribute<number, any>; }; readonly commands: { readonly goToTiltPercentage: import("@matter/main/types").OptionalCommand<import("@matter/main/types").TypeFromFields<{ tiltPercent100thsValue: import("@matter/main/types").FieldType<number>; }>, void, any>; }; }; }, { readonly flags: { readonly lift: true; readonly positionAwareLift: true; }; readonly component: { readonly attributes: { readonly currentPositionLiftPercentage: import("@matter/main/types").OptionalAttribute<number | null, any>; readonly targetPositionLiftPercent100ths: import("@matter/main/types").Attribute<number | null, any>; readonly currentPositionLiftPercent100ths: import("@matter/main/types").Attribute<number | null, any>; }; readonly commands: { readonly goToLiftPercentage: import("@matter/main/types").Command<import("@matter/main/types").TypeFromFields<{ liftPercent100thsValue: import("@matter/main/types").FieldType<number>; }>, void, any>; }; }; }, { readonly flags: { readonly tilt: true; readonly positionAwareTilt: true; }; readonly component: { readonly attributes: { readonly currentPositionTiltPercentage: import("@matter/main/types").OptionalAttribute<number | null, any>; readonly targetPositionTiltPercent100ths: import("@matter/main/types").Attribute<number | null, any>; readonly currentPositionTiltPercent100ths: import("@matter/main/types").Attribute<number | null, any>; }; readonly commands: { readonly goToTiltPercentage: import("@matter/main/types").Command<import("@matter/main/types").TypeFromFields<{ tiltPercent100thsValue: import("@matter/main/types").FieldType<number>; }>, void, any>; }; }; }, { readonly flags: { readonly lift: true; readonly absolutePosition: true; }; readonly component: { readonly commands: { readonly goToLiftValue: import("@matter/main/types").OptionalCommand<import("@matter/main/types").TypeFromFields<{ liftValue: import("@matter/main/types").FieldType<number>; }>, void, any>; }; }; }, { readonly flags: { readonly tilt: true; readonly absolutePosition: true; }; readonly component: { readonly commands: { readonly goToTiltValue: import("@matter/main/types").OptionalCommand<import("@matter/main/types").TypeFromFields<{ tiltValue: import("@matter/main/types").FieldType<number>; }>, void, any>; }; }; }, { readonly flags: { readonly positionAwareLift: true; readonly lift: false; }; readonly component: false; }, { readonly flags: { readonly positionAwareTilt: true; readonly tilt: false; }; readonly component: false; }, { readonly flags: { readonly lift: false; readonly tilt: false; }; readonly component: false; }]; }>, readonly [WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift]>, readonly ["Lift", "PositionAwareLift"]>, typeof MatterbridgeWindowCoveringServer, import("@matter/node/behaviors").WindowCoveringInterface> | import("@matter/main").ClusterBehavior.Type<import("@matter/main/types").ClusterComposer.WithFeatures<import("@matter/main/types").ClusterComposer.WithFeatures<ClusterType.Of<{ readonly id: 513; readonly name: "Thermostat"; readonly revision: 6; readonly features: { readonly heating: import("@matter/main/types").BitFlag; readonly cooling: import("@matter/main/types").BitFlag; readonly occupancy: import("@matter/main/types").BitFlag; readonly scheduleConfiguration: import("@matter/main/types").BitFlag; readonly setback: import("@matter/main/types").BitFlag; readonly autoMode: import("@matter/main/types").BitFlag; readonly localTemperatureNotExposed: import("@matter/main/types").BitFlag; }; readonly attributes: { readonly localTemperature: import("@matter/main/types").Attribute<number | null, any>; readonly outdoorTemperature: import("@matter/main/types").OptionalAttribute<number | null, any>; readonly hvacSystemTypeConfiguration: import("@matter/main/types").OptionalWritableAttribute<import("@matter/main/types").TypeFromPartialBitSchema<{ coolingStage: import("@matter/main/types").BitField; heatingStage: import("@matter/main/types").BitField; heatingIsHeatPump: import("@matter/main/types").BitFlag; heatingUsesFuel: import("@matter/main/types").BitFlag; }>, any>; readonly remoteSensing: import("@matter/main/types").OptionalWritableAttribute<import("@matter/main/types").TypeFromPartialBitSchema<{ localTemperature: import("@matter/main/types").BitFlag; outdoorTemperature: import("@matter/main/types").BitFlag; occupancy: import("@matter/main/types").BitFlag; }>, any>; readonly controlSequenceOfOperation: import("@matter/main/types").WritableAttribute<Thermostat.ControlSequenceOfOperation, any>; readonly systemMode: import("@matter/main/types").WritableAttribute<Thermostat.SystemMode, any>; readonly temperatureSetpointHold: import("@matter/main/types").OptionalWritableAttribute<Thermostat.TemperatureSetpointHold, any>; readonly temperatureSetpointHoldDuration: import("@matter/main/types").OptionalWritableAttribute<number | null, any>; readonly thermostatProgrammingOperationMode: import("@matter/main/types").OptionalWritableAttribute<import("@matter/main/types").TypeFromPartialBitSchema<{ scheduleActive: import("@matter/main/types").BitFlag; autoRecovery: import("@matter/main/types").BitFlag; economy: import("@matter/main/types").BitFlag; }>, any>; readonly thermostatRunningState: import("@matter/main/types").OptionalAttribute<import("@matter/main/types").TypeFromPartialBitSchema<{ heat: import("@matter/main/types").BitFlag; cool: import("@matter/main/types").BitFlag; fan: import("@matter/main/types").BitFlag; heatStage2: import("@matter/main/types").BitFlag; coolStage2: import("@matter/main/types").BitFlag; fanStage2: import("@matter/main/types").BitFlag; fanStage3: import("@matter/main/types").BitFlag; }>, any>; readonly setpointChangeSource: import("@matter/main/types").OptionalAttribute<Thermostat.SetpointChangeSource, any>; readonly setpointChangeAmount: import("@matter/main/types").OptionalAttribute<number | null, any>; readonly setpointChangeSourceTimestamp: import("@matter/main/types").OptionalAttribute<number, any>; readonly emergencyHeatDelta: import("@matter/main/types").OptionalWritableAttribute<number, any>; readonly acType: import("@matter/main/types").OptionalWritableAttribute<Thermostat.AcType, any>; readonly acCapacity: import("@matter/main/types").OptionalWritableAttribute<number, any>; readonly acRefrigerantType: import("@matter/main/types").OptionalWritableAttribute<Thermostat.AcRefrigerantType, any>; readonly acCompressorType: import("@matter/main/types").OptionalWritableAttribute<Thermostat.AcCompressorType, any>; readonly acErrorCode: import("@matter/main/types").OptionalWritableAttribute<import("@matter/main/types").TypeFromPartialBitSchema<{ compressorFail: import("@matter/main/types").BitFlag; roomSensorFail: import("@matter/main/types").BitFlag; outdoorSensorFail: import("@matter/main/types").BitFlag; coilSensorFail: import("@matter/main/types").BitFlag; fanFail: import("@matter/main/types").BitFlag; }>, any>; readonly acLouverPosition: import("@matter/main/types").OptionalWritableAttribute<Thermostat.AcLouverPosition, any>; readonly acCoilTemperature: import("@matter/main/types").OptionalAttribute<number | null, any>; readonly acCapacityFormat: import("@matter/main/types").OptionalWritableAttribute<Thermostat.AcCapacityFormat, any>; }; readonly commands: { readonly setpointRaiseLower: import("@matter/main/types").Command<import("@matter/main/types").TypeFromFields<{ mode: import("@matter/main/types").FieldType<Thermostat.SetpointRaiseLowerMode>; amount: import("@matter/main/types").FieldType<number>; }>, void, any>; }; readonly extensions: readonly [{ readonly flags: { readonly occupancy: true; }; readonly component: { readonly attributes: { readonly occupancy: import("@matter/main/types").Attribute<import("@matter/main/types").TypeFromPartialBitSchema<{ occupied: import("@matter/main/types").BitFlag; }>, any>; }; }; }, { readonly flags: { readonly heating: true; }; readonly component: { readonly attributes: { readonly absMinHeatSetpointLimit: import("@matter/main/types").OptionalFixedAttribute<number, any>; readonly absMaxHeatSetpointLimit: import("@matter/main/types").OptionalFixedAttribute<number, any>; readonly piHeatingDemand: import("@matter/main/types").OptionalAttribute<number, any>; readonly occupiedHeatingSetpoint: import("@matter/main/types").WritableAttribute<number, any>; readonly minHeatSetpointLimit: import("@matter/main/types").OptionalWritableAttribute<number, any>; readonly maxHeatSetpointLimit: import("@matter/main/types").OptionalWritableAttribute<number, any>; }; }; }, { readonly flags: { readonly cooling: true; }; readonly component: { readonly attributes: { readonly absMinCoolSetpointLimit: import("@matter/main/types").OptionalFixedAttribute<number, any>; readonly absMaxCoolSetpointLimit: import("@matter/main/types").OptionalFixedAttribute<number, any>; readonly piCoolingDemand: import("@matter/main/types").OptionalAttribute<number, any>; readonly occupiedCoolingSetpoint: import("@matter/main/types").WritableAttribute<number, any>; readonly minCoolSetpointLimit: import("@matter/main/types").OptionalWritableAttribute<number, any>; readonly maxCoolSetpointLimit: import("@matter/main/types").OptionalWritableAttribute<number, any>; }; }; }, { readonly flags: { readonly localTemperatureNotExposed: false; }; readonly component: { readonly attributes: { readonly localTemperatureCalibration: import("@matter/main/types").OptionalWritableAttribute<number, any>; }; }; }, { readonly flags: { readonly cooling: true; readonly occupancy: true; }; readonly component: { readonly attributes: { readonly unoccupiedCoolingSetpoint: import("@matter/main/types").WritableAttribute<number, any>; }; }; }, { readonly flags: { readonly heating: true; readonly occupancy: true; }; readonly component: { readonly attributes: { readonly unoccupiedHeatingSetpoint: import("@matter/main/types").WritableAttribute<number, any>; }; }; }, { readonly flags: { readonly autoMode: true; }; readonly component: { readonly attributes: { readonly minSetpointDeadBand: import("@matter/main/types").WritableAttribute<number, any>; readonly thermostatRunningMode: import("@matter/main/types").OptionalAttribute<Thermostat.ThermostatRunningMode, any>; }; }; }, { readonly flags: { readonly scheduleConfiguration: true; }; readonly component: { readonly attributes: { readonly startOfWeek: import("@matter/main/types").FixedAttribute<Thermostat.StartOfWeek, any>; readonly numberOfWeeklyTransitions: import("@matter/main/types").FixedAttribute<number, any>; readonly numberOfDailyTransitions: import("@matter/main/types").FixedAttribute<number, any>; }; readonly commands: { readonly setWeeklySchedule: import("@matter/main/types").Command<import("@matter/main/types").TypeFromFields<{ numberOfTransitionsForSequence: import("@matter/main/types").FieldType<number>; dayOfWeekForSequence: import("@matter/main/types").FieldType<import("@matter/main/types").TypeFromPartialBitSchema<{ sunday: import("@matter/main/types").BitFlag; monday: import("@matter/main/types").BitFlag; tuesday: import("@matter/main/types").BitFlag; wednesday: import("@matter/main/types").BitFlag; thursday: import("@matter/main/types").BitFlag; friday: import("@matter/main/types").BitFlag; saturday: import("@matter/main/types").BitFlag; away: import("@matter/main/types").BitFlag; }>>; modeForSequence: import("@matter/main/types").FieldType<import("@matter/main/types").TypeFromPartialBitSchema<{ heatSetpointPresent: import("@matter/main/types").BitFlag; coolSetpointPresent: import("@matter/main/types").BitFlag; }>>; transitions: import("@matter/main/types").FieldType<import("@matter/main/types").TypeFromFields<{ transitionTime: import("@matter/main/types").FieldType<number>; heatSetpoint: import("@matter/main/types").FieldType<number | null>; coolSetpoint: import("@matter/main/types").FieldType<number | null>; }>[]>; }>, void, any>; readonly getWeeklySchedule: import("@matter/main/types").Command<import("@matter/main/types").TypeFromFields<{ daysToReturn: import("@matter/main/types").FieldType<import("@matter/main/types").TypeFromPartialBitSchema<{ sunday: import("@matter/main/types").BitFlag; monday: import("@matter/main/types").BitFlag; tuesday: import("@matter/main/types").BitFlag; wednesday: import("@matter/main/types").BitFlag; thursday: import("@matter/main/types").BitFlag; friday: import("@matter/main/types").BitFlag; saturday: import("@matter/main/types").BitFlag; away: import("@matter/main/types").BitFlag; }>>; modeToReturn: import("@matter/main/types").FieldType<import("@matter/main/types").TypeFromPartialBitSchema<{ heatSetpointPresent: import("@matter/main/types").BitFlag; coolSetpointPresent: import("@matter/main/types").BitFlag; }>>; }>, import("@matter/main/types").TypeFromFields<{ numberOfTransitionsForSequence: import("@matter/main/types").FieldType<number>; dayOfWeekForSequence: import("@matter/main/types").FieldType<import("@matter/main/types").TypeFromPartialBitSchema<{ sunday: import("@matter/main/types").BitFlag; monday: import("@matter/main/types").BitFlag; tuesday: import("@matter/main/types").BitFlag; wednesday: import("@matter/main/types").BitFlag; thursday: import("@matter/main/types").BitFlag; friday: import("@matter/main/types").BitFlag; saturday: import("@matter/main/types").BitFlag; away: import("@matter/main/types").BitFlag; }>>; modeForSequence: import("@matter/main/types").FieldType<import("@matter/main/types").TypeFromPartialBitSchema<{ heatSetpointPresent: import("@matter/main/types").BitFlag; coolSetpointPresent: import("@matter/main/types").BitFlag; }>>; transitions: import("@matter/main/types").FieldType<import("@matter/main/types").TypeFromFields<{ transitionTime: import("@matter/main/types").FieldType<number>; heatSetpoint: import("@matter/main/types").FieldType<number | null>; coolSetpoint: import("@matter/main/types").FieldType<number | null>; }>[]>; }>, any>; readonly clearWeeklySchedule: import("@matter/main/types").Command<void, void, any>; }; }; }, { readonly flags: { readonly setback: true; }; readonly component: { readonly attributes: { readonly occupiedSetback: import("@matter/main/types").WritableAttribute<number | null, any>; readonly occupiedSetbackMin: import("@matter/main/types").FixedAttribute<number | null, any>; readonly occupiedSetbackMax: import("@matter/main/types").FixedAttribute<number | null, any>; }; }; }, { readonly flags: { readonly setback: true; readonly occupancy: true; }; readonly component: { readonly attributes: { readonly unoccupiedSetback: import("@matter/main/types").WritableAttribute<number | null, any>; readonly unoccupiedSetbackMin: import("@matter/main/types").FixedAttribute<number | null, any>; readonly unoccupiedSetbackMax: import("@matter/main/types").FixedAttribute<number | null, any>; }; }; }, { readonly flags: { readonly autoMode: true; readonly heating: false; }; readonly component: false; }, { readonly flags: { readonly autoMode: true; readonly cooling: false; }; readonly component: false; }, { readonly flags: { readonly heating: false; readonly cooling: false; }; readonly component: false; }]; }>, readonly [Thermostat.Feature.Cooling, Thermostat.Feature.Heating, Thermostat.Feature.AutoMode]>, readonly ["AutoMode", "Heating", "Cooling"]>, typeof MatterbridgeThermostatServer, import("@matter/node/behaviors").ThermostatInterface> | import("@matter/main").ClusterBehavior.Type<import("@matter/main/types").ClusterComposer.WithFeatures<import("@matter/main/types").ClusterComposer.WithFeatures<ValveConfigurationAndControl.Cluster, readonly [ValveConfigurationAndControl.Feature.Level]>, readonly ["Level"]>, typeof MatterbridgeValveConfigurationAndControlServer, import("@matter/node/behaviors").ValveConfigurationAndControlInterface> | import("@matter/main").ClusterBehavior.Type<import("@matter/main/types").ClusterComposer.WithFeatures<ClusterType.Of<{ readonly id: 512; readonly name: "PumpConfigurationAndControl"; readonly revision: 4; readonly features: { readonly constantPressure: import("@matter/main/types").BitFlag; readonly compensatedPressure: import("@matter/main/types").BitFlag; readonly constantFlow: import("@matter/main/types").BitFlag; readonly constantSpeed: import("@matter/main/types").BitFlag; readonly constantTemperature: import("@matter/main/types").BitFlag; readonly automatic: import("@matter/main/types").BitFlag; readonly localOperation: import("@matter/main/types").BitFlag; }; readonly attributes: { readonly maxPressure: import("@matter/main/types").FixedAttribute<number | null, any>; readonly maxSpeed: import("@matter/main/types").FixedAttribute<number | null, any>; readonly maxFlow: import("@matter/main/types").FixedAttribute<number | null, any>; readonly pumpStatus: import("@matter/main/types").OptionalAttribute<import("@matter/main/types").TypeFromPartialBitSchema<{ deviceFault: import("@matter/main/types").BitFlag; supplyFault: import("@matter/main/types").BitFlag; speedLow: import("@matter/main/types").BitFlag; speedHigh: import("@matter/main/types").BitFlag; localOverride: import("@matter/main/types").BitFlag; running: import("@matter/main/types").BitFlag; remotePressure: import("@matter/main/types").BitFlag; remoteFlow: import("@matter/main/types").BitFlag; remoteTemperature: import("@matter/main/types").BitFlag; }>, any>; readonly effectiveOperationMode: import("@matter/main/types").Attribute<PumpConfigurationAndControl.OperationMode, any>; readonly effectiveControlMode: import("@matter/main/types").Attribute<PumpConfigurationAndControl.ControlMode, any>; readonly capacity: import("@matter/main/types").Attribute<number | null, any>; readonly speed: import("@matter/main/types").OptionalAttribute<number | null, any>; readonly lifetimeRunningHours: import("@matter/main/types").OptionalWritableAttribute<number | null, any>; readonly power: import("@matter/main/types").OptionalAttribute<number | null, any>; readonly lifetimeEnergyConsumed: import("@matter/main/types").OptionalWritableAttribute<number | null, any>; readonly operationMode: import("@matter/main/types").WritableAttribute<PumpConfigurationAndControl.OperationMode, any>; readonly controlMode: import("@matter/main/types").OptionalWritableAttribute<PumpConfigurationAndControl.ControlMode, any>; readonly alarmMask: import("@matter/main/types").OptionalAttribute<number, any>; }; readonly events: { readonly supplyVoltageLow: import("@matter/main/types").OptionalEvent<void, any>; readonly supplyVoltageHigh: import("@matter/main/types").OptionalEvent<void, any>; readonly powerMissingPhase: import("@matter/main/types").OptionalEvent<void, any>; readonly systemPressureLow: import("@matter/main/types").OptionalEvent<void, any>; readonly systemPressureHigh: import("@matter/main/types").OptionalEvent<void, any>; readonly dryRunning: import("@matter/main/types").OptionalEvent<void, any>; readonly motorTemperatureHigh: import("@matter/main/types").OptionalEvent<void, any>; readonly pumpMotorFatalFailure: import("@matter/main/types").OptionalEvent<void, any>; readonly electronicTemperatureHigh: import("@matter/main/types").OptionalEvent<void, any>; readonly pumpBlocked: import("@matter/main/types").OptionalEvent<void, any>; readonly sensorFailure: import("@matter/main/types").OptionalEvent<void, any>; readonly electronicNonFatalFailure: import("@matter/main/types").OptionalEvent<void, any>; readonly electronicFatalFailure: import("@matter/main/types").OptionalEvent<void, any>; readonly generalFault: import("@matter/main/types").OptionalEvent<void, any>; readonly leakage: import("@matter/main/types").OptionalEvent<void, any>; readonly airDetection: import("@matter/main/types").OptionalEvent<void, any>; readonly turbineOperation: import("@matter/main/types").OptionalEvent<void, any>; }; readonly extensions: readonly [{ readonly flags: { readonly constantPressure: true; }; readonly component: { readonly attributes: { readonly minConstPressure: import("@matter/main/types").FixedAttribute<number | null, any>; readonly maxConstPressure: import("@matter/main/types").FixedAttribute<number | null, any>; }; }; }, { readonly flags: { readonly automatic: true; }; readonly component: { readonly attributes: { readonly minConstPressure: import("@matter/main/types").OptionalFixedAttribute<number | null, any>; readonly maxConstPressure: import("@matter/main/types").OptionalFixedAttribute<number | null, any>; readonly minCompPressure: import("@matter/main/types").OptionalFixedAttribute<number | null, any>; readonly maxCompPressure: import("@matter/main/types").OptionalFixedAttribute<number | null, any>; readonly minConstSpeed: import("@matter/main/types").OptionalFixedAttribute<number | null, any>; readonly maxConstSpeed: import("@matter/main/types").OptionalFixedAttribute<number | null, any>; readonly minConstFlow: import("@matter/main/types").OptionalFixedAttribute<number | null, any>; readonly maxConstFlow: import("@matter/main/types").OptionalFixedAttribute<number | null, any>; readonly minConstTemp: import("@matter/main/types").OptionalFixedAttribute<number | null, any>; readonly maxConstTemp: import("@matter/main/types").OptionalFixedAttribute<number | null, any>; }; }; }, { readonly flags: { readonly compensatedPressure: true; }; readonly component: { readonly attributes: { readonly minCompPressure: import("@matter/main/types").FixedAttribute<number | null, any>; readonly maxCompPressure: import("@matter/main/types").FixedAttribute<number | null, any>; }; }; }, { readonly flags: { readonly constantSpeed: true; }; readonly component: { readonly attributes: { readonly minConstSpeed: import("@matter/main/types").FixedAttribute<number | null, any>; readonly maxConstSpeed: import("@matter/main/types").FixedAttribute<number | null, any>; }; }; }, { readonly flags: { readonly constantFlow: true; }; readonly component: { readonly attributes: { readonly minConstFlow: import("@matter/main/types").FixedAttribute<number | null, any>; readonly maxConstFlow: import("@matter/main/types").FixedAttribute<number | null, any>; }; }; }, { readonly flags: { readonly constantTemperature: true; }; readonly component: { readonly attributes: { readonly minConstTemp: import("@matter/main/types").FixedAttribute<number | null, any>; readonly maxConstTemp: import("@matter/main/types").FixedAttribute<number | null, any>; }; }; }, { readonly flags: { readonly constantPressure: false; readonly compensatedPressure: false; readonly constantFlow: false; readonly constantSpeed: false; readonly constantTemperature: false; }; readonly component: false; }]; }>, readonly ["ConstantSpeed"]>, typeof PumpConfigurationAndControlServer, { components: never[]; }> | import("@matter/main").ClusterBehavior.Type<import("@matter/main/types").ClusterComposer.WithFeatures<import("@matter/main/types").ClusterComposer.WithFeatures<ClusterType.Of<{ readonly id: 92; readonly name: "SmokeCoAlarm"; readonly revision: 1; readonly features: { readonly smokeAlarm: import("@matter/main/types").BitFlag; readonly coAlarm: import("@matter/main/types").BitFlag; }; readonly attributes: { readonly expressedState: import("@matter/main/types").Attribute<SmokeCoAlarm.ExpressedState, any>; readonly batteryAlert: import("@matter/main/types").Attribute<SmokeCoAlarm.AlarmState, any>; readonly deviceMuted: import("@matter/main/types").OptionalAttribute<SmokeCoAlarm.MuteState, any>; readonly testInProgress: import("@matter/main/types").Attribute<boolean, any>; readonly hardwareFaultAlert: import("@matter/main/types").Attribute<boolean, any>; readonly endOfServiceAlert: import("@matter/main/types").Attribute<SmokeCoAlarm.EndOfService, any>; readonly interconnectSmokeAlarm: import("@matter/main/types").OptionalAttribute<SmokeCoAlarm.AlarmState, any>; readonly interconnectCoAlarm: import("@matter/main/types").OptionalAttribute<SmokeCoAlarm.AlarmState, any>; readonly expiryDate: import("@matter/main/types").OptionalFixedAttribute<number, any>; }; readonly commands: { readonly selfTestRequest: import("@matter/main/types").OptionalCommand<void, void, any>; }; readonly events: { readonly lowBattery: import("@matter/main/types").Event<import("@matter/main/types").TypeFromFields<{ alarmSeverityLevel: import("@matter/main/types").FieldType<SmokeCoAlarm.AlarmState>; }>, any>; readonly hardwareFault: import("@matter/main/types").Event<void, any>; readonly endOfService: import("@matter/main/types").Event<void, any>; readonly selfTestComplete: import("@matter/main/types").Event<void, any>; readonly alarmMuted: import("@matter/main/types").OptionalEvent<void, any>; readonly muteEnded: import("@matter/main/types").OptionalEvent<void, any>; readonly allClear: import("@matter/main/types").Event<void, any>; }; readonly extensions: readonly [{ readonly flags: { readonly smokeAlarm: true; }; readonly component: { readonly attributes: { readonly smokeState: import("@matter/main/types").Attribute<SmokeCoAlarm.AlarmState, any>; readonly contaminationState: import("@matter/main/types").OptionalAttribute<SmokeCoAlarm.ContaminationState, any>; readonly smokeSensitivityLevel: import("@matter/main/types").OptionalWritableAttribute<SmokeCoAlarm.Sensitivity, any>; }; readonly events: { readonly smokeAlarm: import("@matter/main/types").Event<import("@matter/main/types").TypeFromFields<{ alarmSeverityLevel: import("@matter/main/types").FieldType<SmokeCoAlarm.AlarmState>; }>, any>; readonly interconnectSmokeAlarm: import("@matter/main/types").OptionalEvent<import("@matter/main/types").TypeFromFields<{ alarmSeverityLevel: import("@matter/main/types").FieldType<SmokeCoAlarm.AlarmState>; }>, any>; }; }; }, { readonly flags: { readonly coAlarm: true; }; readonly component: { readonly attributes: { readonly coState: import("@matter/main/types").Attribute<SmokeCoAlarm.AlarmState, any>; }; readonly events: { readonly coAlarm: import("@matter/main/types").Event<import("@matter/main/types").TypeFromFields<{ alarmSeverityLevel: import("@matter/main/types").FieldType<SmokeCoAlarm.AlarmState>; }>, any>; readonly interconnectCoAlarm: import("@matter/main/types").OptionalEvent<import("@matter/main/types").TypeFromFields<{ alarmSeverityLevel: import("@matter/main/types").FieldType<SmokeCoAlarm.AlarmState>; }>, any>; }; }; }, { readonly flags: { readonly smokeAlarm: false; readonly coAlarm: false; }; readonly component: false; }]; }>, readonly [SmokeCoAlarm.Feature.SmokeAlarm, SmokeCoAlarm.Feature.CoAlarm]>, readonly ["SmokeAlarm", "CoAlarm"]>, typeof MatterbridgeSmokeCoAlarmServer, import("@matter/node/behaviors").SmokeCoAlarmInterface> | import("@matter/main").ClusterBehavior.Type<import("@matter/main/types").ClusterComposer.WithFeatures<ClusterType.Of<{ readonly id: 59; readonly name: "Switch"; readonly revision: 1; readonly features: { readonly latchingSwitch: import("@matter/main/types").BitFlag; readonly momentarySwitch: import("@matter/main/types").BitFlag; readonly momentarySwitchRelease: import("@matter/main/types").BitFlag; readonly momentarySwitchLongPress: import("@matter/main/types").BitFlag; readonly momentarySwitchMultiPress: import("@matter/main/types").BitFlag; }; readonly attributes: { readonly numberOfPositions: import("@matter/main/types").FixedAttribute<number, any>; readonly currentPosition: import("@matter/main/types").Attribute<number, any>; }; readonly extensions: readonly [{ readonly flags: { readonly momentarySwitchMultiPress: true; }; readonly component: { readonly attributes: { readonly multiPressMax: import("@matter/main/types").FixedAttribute<number, any>; }; readonly events: { readonly multiPressOngoing: import("@matter/main/types").Event<import("@matter/main/types").TypeFromFields<{ newPosition: import("@matter/main/types").FieldType<number>; currentNumberOfPressesCounted: import("@matter/main/types").FieldType<number>; }>, any>; readonly multiPressComplete: import("@matter/main/types").Event<import("@matter/main/types").TypeFromFields<{ previousPosition: import("@matter/main/types").FieldType<number>; totalNumberOfPressesCounted: import("@matter/main/types").FieldType<number>; }>, any>; }; }; }, { readonly flags: { readonly latchingSwitch: true; }; readonly component: { readonly events: { readonly switchLatched: import("@matter/main/types").Event<import("@matter/main/types").TypeFromFields<{ newPosition: import("@matter/main/types").FieldType<number>; }>, any>; }; }; }, { readonly flags: { readonly momentarySwitch: true; }; readonly component: { readonly events: { readonly initialPress: import("@matter/main/types").Event<import("@matter/main/types").TypeFromFields<{ newPosition: import("@matter/main/types").FieldType<number>; }>, any>; }; }; }, { readonly flags: { readonly momentarySwitchLongPress: true; }; readonly component: { readonly events: { readonly longPress: import("@matter/main/types").Event<import("@matter/main/types").TypeFromFields<{ newPosition: import("@matter/main/types").FieldType<number>; }>, any>; readonly longRelease: import("@matter/main/types").Event<import("@matter/main/types").TypeFromFields<{ previousPosition: import("@matter/main/types").FieldType<number>; }>, any>; }; }; }, { readonly flags: { readonly momentarySwitchRelease: true; }; readonly component: { readonly events: { readonly shortRelease: import("@matter/main/types").Event<import("@matter/main/types").TypeFromFields<{ previousPosition: import("@matter/main/types").FieldType<number>; }>, any>; }; }; }, { readonly flags: { readonly momentarySwitchRelease: true; readonly momentarySwitch: false; }; readonly component: false; }, { readonly flags: { readonly momentarySwitchLongPress: true; readonly momentarySwitch: false; }; readonly component: false; }, { readonly flags: { readonly momentarySwitchLongPress: true; readonly momentarySwitchRelease: false; }; readonly component: false; }, { readonly flags: { readonly momentarySwitchMultiPress: true; readonly momentarySwitch: false; }; readonly component: false; }, { readonly flags: { readonly momentarySwitchMultiPress: true; readonly momentarySwitchRelease: false; }; readonly component: false; }, { readonly flags: { readonly latchingSwitch: true; readonly momentarySwitch: true; }; readonly component: false; }, { readonly flags: { readonly latchingSwitch: false; readonly momentarySwitch: false; }; readonly component: false; }]; }>,