UNPKG

matterbridge

Version:
831 lines • 63.3 kB
/** * This file contains the class MatterbridgeEndpoint that extends the Endpoint class from the Matter.js library. * * @file matterbridgeBehaviors.ts * @author Luca Liguori * @date 2024-11-07 * @version 1.0.0 * * Copyright 2024, 2025, 2026 Luca Liguori. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ import { Behavior, NamedHandler } from '@matter/main'; import { BooleanStateConfiguration } from '@matter/main/clusters/boolean-state-configuration'; import { ColorControl } from '@matter/main/clusters/color-control'; import { FanControl } from '@matter/main/clusters/fan-control'; import { Identify } from '@matter/main/clusters/identify'; 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 { ModeSelect } from '@matter/main/clusters/mode-select'; import { SmokeCoAlarm } from '@matter/main/clusters/smoke-co-alarm'; import { BooleanStateConfigurationServer } from '@matter/main/behaviors/boolean-state-configuration'; import { IdentifyServer } from '@matter/main/behaviors/identify'; import { OnOffServer } from '@matter/main/behaviors/on-off'; import { LevelControlServer } from '@matter/main/behaviors/level-control'; import { ColorControlServer } from '@matter/main/behaviors/color-control'; import { MovementDirection, MovementType, WindowCoveringServer } from '@matter/main/behaviors/window-covering'; import { DoorLockServer } from '@matter/main/behaviors/door-lock'; import { FanControlServer } from '@matter/main/behaviors/fan-control'; import { ThermostatServer } from '@matter/main/behaviors/thermostat'; import { ValveConfigurationAndControlServer } from '@matter/main/behaviors/valve-configuration-and-control'; import { ModeSelectServer } from '@matter/main/behaviors/mode-select'; import { SmokeCoAlarmServer } from '@matter/main/behaviors/smoke-co-alarm'; import { SwitchServer } from '@matter/main/behaviors/switch'; import { AnsiLogger } from './logger/export.js'; import { MatterbridgeEndpointCommands } from './matterbridgeEndpoint.js'; export declare class MatterbridgeBehaviorDevice { log: AnsiLogger; commandHandler: NamedHandler<MatterbridgeEndpointCommands>; device: any; endpointId: string | undefined; endpointNumber: number | undefined; constructor(log: AnsiLogger, commandHandler: NamedHandler<MatterbridgeEndpointCommands>, device: any); setEndpointId(endpointId: string | undefined): void; setEndpointNumber(endpointNumber: number | undefined): void; identify({ identifyTime }: Identify.IdentifyRequest): void; triggerEffect({ effectIdentifier, effectVariant }: Identify.TriggerEffectRequest): void; on(): void; off(): void; toggle(): void; moveToLevel({ level, transitionTime, optionsMask, optionsOverride }: LevelControl.MoveToLevelRequest): void; moveToLevelWithOnOff({ level, transitionTime, optionsMask, optionsOverride }: LevelControl.MoveToLevelRequest): void; moveToHue({ optionsMask, optionsOverride, hue, direction, transitionTime }: ColorControl.MoveToHueRequest): void; moveToSaturation({ optionsMask, optionsOverride, saturation, transitionTime }: ColorControl.MoveToSaturationRequest): void; moveToHueAndSaturation({ optionsOverride, optionsMask, saturation, hue, transitionTime }: ColorControl.MoveToHueAndSaturationRequest): void; moveToColor({ optionsMask, optionsOverride, colorX, colorY, transitionTime }: ColorControl.MoveToColorRequest): void; moveToColorTemperature({ optionsOverride, optionsMask, colorTemperatureMireds, transitionTime }: ColorControl.MoveToColorTemperatureRequest): void; upOrOpen(): void; downOrClose(): void; stopMotion(): void; goToLiftPercentage({ liftPercent100thsValue }: WindowCovering.GoToLiftPercentageRequest): void; lockDoor(): void; unlockDoor(): void; step({ direction, wrap, lowestOff }: FanControl.StepRequest): void; setpointRaiseLower({ mode, amount }: Thermostat.SetpointRaiseLowerRequest): void; open({ openDuration, targetLevel }: ValveConfigurationAndControl.OpenRequest): void; close(): void; changeToMode({ newMode }: ModeSelect.ChangeToModeRequest): void; selfTestRequest(): void; enableDisableAlarm({ alarmsToEnableDisable }: BooleanStateConfiguration.EnableDisableAlarmRequest): void; } export declare class MatterbridgeBehavior extends Behavior { static readonly id = "matterbridge"; state: MatterbridgeBehavior.State; } export declare namespace MatterbridgeBehavior { class State { deviceCommand: MatterbridgeBehaviorDevice; } } export declare class MatterbridgeIdentifyServer extends IdentifyServer { initialize(): void; identify({ identifyTime }: Identify.IdentifyRequest): void; triggerEffect({ effectIdentifier, effectVariant }: Identify.TriggerEffectRequest): void; } export declare class MatterbridgeOnOffServer extends OnOffServer { on(): Promise<void>; off(): Promise<void>; toggle(): Promise<void>; } export declare class MatterbridgeLevelControlServer extends LevelControlServer { moveToLevel({ level, transitionTime, optionsMask, optionsOverride }: LevelControl.MoveToLevelRequest): Promise<void>; moveToLevelWithOnOff({ level, transitionTime, optionsMask, optionsOverride }: LevelControl.MoveToLevelRequest): Promise<void>; } declare const MatterbridgeColorControlServer_base: import("@matter/main").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<import("@matter/types").ClusterType.Of<{ readonly id: 768; readonly name: "ColorControl"; readonly revision: 6; readonly features: { readonly hueSaturation: import("@matter/types").BitFlag; readonly enhancedHue: import("@matter/types").BitFlag; readonly colorLoop: import("@matter/types").BitFlag; readonly xy: import("@matter/types").BitFlag; readonly colorTemperature: import("@matter/types").BitFlag; }; readonly attributes: { readonly remainingTime: import("@matter/types").OptionalAttribute<number, any>; readonly driftCompensation: import("@matter/types").OptionalAttribute<ColorControl.DriftCompensation, any>; readonly compensationText: import("@matter/types").OptionalAttribute<string, any>; readonly colorMode: import("@matter/types").Attribute<ColorControl.ColorMode, any>; readonly options: import("@matter/types").WritableAttribute<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>, any>; readonly numberOfPrimaries: import("@matter/types").FixedAttribute<number | null, any>; readonly primary1X: import("@matter/types").OptionalFixedAttribute<number, any>; readonly primary1Y: import("@matter/types").OptionalFixedAttribute<number, any>; readonly primary1Intensity: import("@matter/types").OptionalFixedAttribute<number | null, any>; readonly primary2X: import("@matter/types").OptionalFixedAttribute<number, any>; readonly primary2Y: import("@matter/types").OptionalFixedAttribute<number, any>; readonly primary2Intensity: import("@matter/types").OptionalFixedAttribute<number | null, any>; readonly primary3X: import("@matter/types").OptionalFixedAttribute<number, any>; readonly primary3Y: import("@matter/types").OptionalFixedAttribute<number, any>; readonly primary3Intensity: import("@matter/types").OptionalFixedAttribute<number | null, any>; readonly primary4X: import("@matter/types").OptionalFixedAttribute<number, any>; readonly primary4Y: import("@matter/types").OptionalFixedAttribute<number, any>; readonly primary4Intensity: import("@matter/types").OptionalFixedAttribute<number | null, any>; readonly primary5X: import("@matter/types").OptionalFixedAttribute<number, any>; readonly primary5Y: import("@matter/types").OptionalFixedAttribute<number, any>; readonly primary5Intensity: import("@matter/types").OptionalFixedAttribute<number | null, any>; readonly primary6X: import("@matter/types").OptionalFixedAttribute<number, any>; readonly primary6Y: import("@matter/types").OptionalFixedAttribute<number, any>; readonly primary6Intensity: import("@matter/types").OptionalFixedAttribute<number | null, any>; readonly whitePointX: import("@matter/types").OptionalWritableAttribute<number, any>; readonly whitePointY: import("@matter/types").OptionalWritableAttribute<number, any>; readonly colorPointRx: import("@matter/types").OptionalWritableAttribute<number, any>; readonly colorPointRy: import("@matter/types").OptionalWritableAttribute<number, any>; readonly colorPointRIntensity: import("@matter/types").OptionalWritableAttribute<number | null, any>; readonly colorPointGx: import("@matter/types").OptionalWritableAttribute<number, any>; readonly colorPointGy: import("@matter/types").OptionalWritableAttribute<number, any>; readonly colorPointGIntensity: import("@matter/types").OptionalWritableAttribute<number | null, any>; readonly colorPointBx: import("@matter/types").OptionalWritableAttribute<number, any>; readonly colorPointBy: import("@matter/types").OptionalWritableAttribute<number, any>; readonly colorPointBIntensity: import("@matter/types").OptionalWritableAttribute<number | null, any>; readonly enhancedColorMode: import("@matter/types").Attribute<ColorControl.EnhancedColorMode, any>; readonly colorCapabilities: import("@matter/types").Attribute<import("@matter/types").TypeFromPartialBitSchema<{ hueSaturation: import("@matter/types").BitFlag; enhancedHue: import("@matter/types").BitFlag; colorLoop: import("@matter/types").BitFlag; xy: import("@matter/types").BitFlag; colorTemperature: import("@matter/types").BitFlag; }>, any>; }; readonly extensions: readonly [{ readonly flags: { readonly hueSaturation: true; }; readonly component: { readonly attributes: { readonly currentHue: import("@matter/types").Attribute<number, any>; readonly currentSaturation: import("@matter/types").Attribute<number, any>; }; readonly commands: { readonly moveToHue: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ hue: import("@matter/types").FieldType<number>; direction: import("@matter/types").FieldType<ColorControl.Direction>; transitionTime: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; readonly moveHue: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ moveMode: import("@matter/types").FieldType<ColorControl.MoveMode>; rate: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; readonly stepHue: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ stepMode: import("@matter/types").FieldType<ColorControl.StepMode>; stepSize: import("@matter/types").FieldType<number>; transitionTime: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; readonly moveToSaturation: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ saturation: import("@matter/types").FieldType<number>; transitionTime: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; readonly moveSaturation: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ moveMode: import("@matter/types").FieldType<ColorControl.MoveMode>; rate: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; readonly stepSaturation: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ stepMode: import("@matter/types").FieldType<ColorControl.StepMode>; stepSize: import("@matter/types").FieldType<number>; transitionTime: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; readonly moveToHueAndSaturation: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ hue: import("@matter/types").FieldType<number>; saturation: import("@matter/types").FieldType<number>; transitionTime: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; }; }; }, { readonly flags: { readonly xy: true; }; readonly component: { readonly attributes: { readonly currentX: import("@matter/types").Attribute<number, any>; readonly currentY: import("@matter/types").Attribute<number, any>; }; readonly commands: { readonly moveToColor: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ colorX: import("@matter/types").FieldType<number>; colorY: import("@matter/types").FieldType<number>; transitionTime: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; readonly moveColor: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ rateX: import("@matter/types").FieldType<number>; rateY: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; readonly stepColor: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ stepX: import("@matter/types").FieldType<number>; stepY: import("@matter/types").FieldType<number>; transitionTime: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; }; }; }, { readonly flags: { readonly colorTemperature: true; }; readonly component: { readonly attributes: { readonly colorTemperatureMireds: import("@matter/types").Attribute<number, any>; readonly colorTempPhysicalMinMireds: import("@matter/types").Attribute<number, any>; readonly colorTempPhysicalMaxMireds: import("@matter/types").Attribute<number, any>; readonly coupleColorTempToLevelMinMireds: import("@matter/types").OptionalAttribute<number, any>; readonly startUpColorTemperatureMireds: import("@matter/types").OptionalWritableAttribute<number | null, any>; }; readonly commands: { readonly moveToColorTemperature: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ colorTemperatureMireds: import("@matter/types").FieldType<number>; transitionTime: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; readonly moveColorTemperature: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ moveMode: import("@matter/types").FieldType<ColorControl.MoveMode>; rate: import("@matter/types").FieldType<number>; colorTemperatureMinimumMireds: import("@matter/types").FieldType<number>; colorTemperatureMaximumMireds: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; readonly stepColorTemperature: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ stepMode: import("@matter/types").FieldType<ColorControl.StepMode>; stepSize: import("@matter/types").FieldType<number>; transitionTime: import("@matter/types").FieldType<number>; colorTemperatureMinimumMireds: import("@matter/types").FieldType<number>; colorTemperatureMaximumMireds: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; }; }; }, { readonly flags: { readonly enhancedHue: true; }; readonly component: { readonly attributes: { readonly enhancedCurrentHue: import("@matter/types").Attribute<number, any>; }; readonly commands: { readonly enhancedMoveToHue: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ enhancedHue: import("@matter/types").FieldType<number>; direction: import("@matter/types").FieldType<ColorControl.Direction>; transitionTime: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; readonly enhancedMoveHue: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ moveMode: import("@matter/types").FieldType<ColorControl.MoveMode>; rate: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; readonly enhancedStepHue: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ stepMode: import("@matter/types").FieldType<ColorControl.StepMode>; stepSize: import("@matter/types").FieldType<number>; transitionTime: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; readonly enhancedMoveToHueAndSaturation: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ enhancedHue: import("@matter/types").FieldType<number>; saturation: import("@matter/types").FieldType<number>; transitionTime: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; }; }; }, { readonly flags: { readonly colorLoop: true; }; readonly component: { readonly attributes: { readonly colorLoopActive: import("@matter/types").Attribute<ColorControl.ColorLoopActive, any>; readonly colorLoopDirection: import("@matter/types").Attribute<ColorControl.ColorLoopDirection, any>; readonly colorLoopTime: import("@matter/types").Attribute<number, any>; readonly colorLoopStartEnhancedHue: import("@matter/types").Attribute<number, any>; readonly colorLoopStoredEnhancedHue: import("@matter/types").Attribute<number, any>; }; readonly commands: { readonly colorLoopSet: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ updateFlags: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ updateAction: import("@matter/types").BitFlag; updateDirection: import("@matter/types").BitFlag; updateTime: import("@matter/types").BitFlag; updateStartHue: import("@matter/types").BitFlag; reserved: import("@matter/types").BitField; }>>; action: import("@matter/types").FieldType<ColorControl.Action>; direction: import("@matter/types").FieldType<ColorControl.ColorLoopSetDirection>; time: import("@matter/types").FieldType<number>; startHue: import("@matter/types").FieldType<number>; optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; }; }; }, { readonly flags: { readonly hueSaturation: true; }; readonly component: { readonly commands: { readonly stopMoveStep: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; }; }; }, { readonly flags: { readonly xy: true; }; readonly component: { readonly commands: { readonly stopMoveStep: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; }; }; }, { readonly flags: { readonly colorTemperature: true; }; readonly component: { readonly commands: { readonly stopMoveStep: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ optionsMask: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; optionsOverride: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{ executeIfOff: import("@matter/types").BitFlag; }>>; }>, void, any>; }; }; }]; }>, readonly [ColorControl.Feature.HueSaturation, ColorControl.Feature.Xy, ColorControl.Feature.ColorTemperature]>, typeof ColorControlServer, import("@matter/main/behaviors/color-control").ColorControlInterface>; export declare class MatterbridgeColorControlServer extends MatterbridgeColorControlServer_base { moveToHue({ optionsMask, optionsOverride, hue, direction, transitionTime }: ColorControl.MoveToHueRequest): Promise<void>; moveToSaturation({ optionsMask, optionsOverride, saturation, transitionTime }: ColorControl.MoveToSaturationRequest): Promise<void>; moveToHueAndSaturation({ optionsOverride, optionsMask, saturation, hue, transitionTime }: ColorControl.MoveToHueAndSaturationRequest): Promise<void>; moveToColor({ optionsMask, optionsOverride, colorX, colorY, transitionTime }: ColorControl.MoveToColorRequest): Promise<void>; moveToColorTemperature({ optionsOverride, optionsMask, colorTemperatureMireds, transitionTime }: ColorControl.MoveToColorTemperatureRequest): Promise<void>; } declare const MatterbridgeWindowCoveringServer_base: import("@matter/main").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<import("@matter/types").ClusterType.Of<{ readonly id: 258; readonly name: "WindowCovering"; readonly revision: 5; readonly features: { readonly lift: import("@matter/types").BitFlag; readonly tilt: import("@matter/types").BitFlag; readonly positionAwareLift: import("@matter/types").BitFlag; readonly absolutePosition: import("@matter/types").BitFlag; readonly positionAwareTilt: import("@matter/types").BitFlag; }; readonly attributes: { readonly type: import("@matter/types").FixedAttribute<WindowCovering.WindowCoveringType, any>; readonly configStatus: import("@matter/types").Attribute<import("@matter/types").TypeFromPartialBitSchema<{ operational: import("@matter/types").BitFlag; onlineReserved: import("@matter/types").BitFlag; liftMovementReversed: import("@matter/types").BitFlag; liftPositionAware: import("@matter/types").BitFlag; tiltPositionAware: import("@matter/types").BitFlag; liftEncoderControlled: import("@matter/types").BitFlag; tiltEncoderControlled: import("@matter/types").BitFlag; }>, any>; readonly operationalStatus: import("@matter/types").Attribute<import("@matter/types").TypeFromPartialBitSchema<{ global: import("@matter/types").BitFieldEnum<WindowCovering.MovementStatus>; lift: import("@matter/types").BitFieldEnum<WindowCovering.MovementStatus>; tilt: import("@matter/types").BitFieldEnum<WindowCovering.MovementStatus>; }>, any>; readonly endProductType: import("@matter/types").FixedAttribute<WindowCovering.EndProductType, any>; readonly mode: import("@matter/types").WritableAttribute<import("@matter/types").TypeFromPartialBitSchema<{ motorDirectionReversed: import("@matter/types").BitFlag; calibrationMode: import("@matter/types").BitFlag; maintenanceMode: import("@matter/types").BitFlag; ledFeedback: import("@matter/types").BitFlag; }>, any>; readonly safetyStatus: import("@matter/types").OptionalAttribute<import("@matter/types").TypeFromPartialBitSchema<{ remoteLockout: import("@matter/types").BitFlag; tamperDetection: import("@matter/types").BitFlag; failedCommunication: import("@matter/types").BitFlag; positionFailure: import("@matter/types").BitFlag; thermalProtection: import("@matter/types").BitFlag; obstacleDetected: import("@matter/types").BitFlag; power: import("@matter/types").BitFlag; stopInput: import("@matter/types").BitFlag; motorJammed: import("@matter/types").BitFlag; hardwareFailure: import("@matter/types").BitFlag; manualOperation: import("@matter/types").BitFlag; protection: import("@matter/types").BitFlag; }>, any>; }; readonly commands: { readonly upOrOpen: import("@matter/types").Command<void, void, any>; readonly downOrClose: import("@matter/types").Command<void, void, any>; readonly stopMotion: import("@matter/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/types").OptionalFixedAttribute<number, any>; readonly currentPositionLift: import("@matter/types").OptionalAttribute<number | null, any>; readonly installedOpenLimitLift: import("@matter/types").Attribute<number, any>; readonly installedClosedLimitLift: import("@matter/types").Attribute<number, any>; }; }; }, { readonly flags: { readonly tilt: true; readonly positionAwareTilt: true; readonly absolutePosition: true; }; readonly component: { readonly attributes: { readonly physicalClosedLimitTilt: import("@matter/types").OptionalFixedAttribute<number, any>; readonly currentPositionTilt: import("@matter/types").OptionalAttribute<number | null, any>; readonly installedOpenLimitTilt: import("@matter/types").Attribute<number, any>; readonly installedClosedLimitTilt: import("@matter/types").Attribute<number, any>; }; }; }, { readonly flags: { readonly lift: true; }; readonly component: { readonly attributes: { readonly numberOfActuationsLift: import("@matter/types").OptionalAttribute<number, any>; }; readonly commands: { readonly goToLiftPercentage: import("@matter/types").OptionalCommand<import("@matter/types").TypeFromFields<{ liftPercent100thsValue: import("@matter/types").FieldType<number>; }>, void, any>; }; }; }, { readonly flags: { readonly tilt: true; }; readonly component: { readonly attributes: { readonly numberOfActuationsTilt: import("@matter/types").OptionalAttribute<number, any>; }; readonly commands: { readonly goToTiltPercentage: import("@matter/types").OptionalCommand<import("@matter/types").TypeFromFields<{ tiltPercent100thsValue: import("@matter/types").FieldType<number>; }>, void, any>; }; }; }, { readonly flags: { readonly lift: true; readonly positionAwareLift: true; }; readonly component: { readonly attributes: { readonly currentPositionLiftPercentage: import("@matter/types").OptionalAttribute<number | null, any>; readonly targetPositionLiftPercent100ths: import("@matter/types").Attribute<number | null, any>; readonly currentPositionLiftPercent100ths: import("@matter/types").Attribute<number | null, any>; }; readonly commands: { readonly goToLiftPercentage: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ liftPercent100thsValue: import("@matter/types").FieldType<number>; }>, void, any>; }; }; }, { readonly flags: { readonly tilt: true; readonly positionAwareTilt: true; }; readonly component: { readonly attributes: { readonly currentPositionTiltPercentage: import("@matter/types").OptionalAttribute<number | null, any>; readonly targetPositionTiltPercent100ths: import("@matter/types").Attribute<number | null, any>; readonly currentPositionTiltPercent100ths: import("@matter/types").Attribute<number | null, any>; }; readonly commands: { readonly goToTiltPercentage: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ tiltPercent100thsValue: import("@matter/types").FieldType<number>; }>, void, any>; }; }; }, { readonly flags: { readonly lift: true; readonly absolutePosition: true; }; readonly component: { readonly commands: { readonly goToLiftValue: import("@matter/types").OptionalCommand<import("@matter/types").TypeFromFields<{ liftValue: import("@matter/types").FieldType<number>; }>, void, any>; }; }; }, { readonly flags: { readonly tilt: true; readonly absolutePosition: true; }; readonly component: { readonly commands: { readonly goToTiltValue: import("@matter/types").OptionalCommand<import("@matter/types").TypeFromFields<{ tiltValue: import("@matter/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]>, typeof WindowCoveringServer, import("@matter/main/behaviors/window-covering").WindowCoveringInterface>; export declare class MatterbridgeWindowCoveringServer extends MatterbridgeWindowCoveringServer_base { upOrOpen(): Promise<void>; downOrClose(): Promise<void>; stopMotion(): void; goToLiftPercentage({ liftPercent100thsValue }: WindowCovering.GoToLiftPercentageRequest): void; handleMovement(type: MovementType, reversed: boolean, direction: MovementDirection, targetPercent100ths?: number): Promise<void>; } export declare class MatterbridgeDoorLockServer extends DoorLockServer { lockDoor(): Promise<void>; unlockDoor(): Promise<void>; } export declare class MatterbridgeModeSelectServer extends ModeSelectServer { changeToMode({ newMode }: ModeSelect.ChangeToModeRequest): Promise<void>; } declare const MatterbridgeFanControlServer_base: import("@matter/main").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<FanControl.Cluster, readonly [FanControl.Feature.MultiSpeed, FanControl.Feature.Auto, FanControl.Feature.Step]>, typeof FanControlServer, import("@matter/main/behaviors/fan-control").FanControlInterface>; export declare class MatterbridgeFanControlServer extends MatterbridgeFanControlServer_base { step({ direction, wrap, lowestOff }: FanControl.StepRequest): Promise<void>; } declare const MatterbridgeThermostatServer_base: import("@matter/main").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<import("@matter/types").ClusterType.Of<{ readonly id: 513; readonly name: "Thermostat"; readonly revision: 6; readonly features: { readonly heating: import("@matter/types").BitFlag; readonly cooling: import("@matter/types").BitFlag; readonly occupancy: import("@matter/types").BitFlag; readonly scheduleConfiguration: import("@matter/types").BitFlag; readonly setback: import("@matter/types").BitFlag; readonly autoMode: import("@matter/types").BitFlag; readonly localTemperatureNotExposed: import("@matter/types").BitFlag; }; readonly attributes: { readonly localTemperature: import("@matter/types").Attribute<number | null, any>; readonly outdoorTemperature: import("@matter/types").OptionalAttribute<number | null, any>; readonly hvacSystemTypeConfiguration: import("@matter/types").OptionalWritableAttribute<import("@matter/types").TypeFromPartialBitSchema<{ coolingStage: import("@matter/types").BitField; heatingStage: import("@matter/types").BitField; heatingIsHeatPump: import("@matter/types").BitFlag; heatingUsesFuel: import("@matter/types").BitFlag; }>, any>; readonly remoteSensing: import("@matter/types").OptionalWritableAttribute<import("@matter/types").TypeFromPartialBitSchema<{ localTemperature: import("@matter/types").BitFlag; outdoorTemperature: import("@matter/types").BitFlag; occupancy: import("@matter/types").BitFlag; }>, any>; readonly controlSequenceOfOperation: import("@matter/types").WritableAttribute<Thermostat.ControlSequenceOfOperation, any>; readonly systemMode: import("@matter/types").WritableAttribute<Thermostat.SystemMode, any>; readonly temperatureSetpointHold: import("@matter/types").OptionalWritableAttribute<Thermostat.TemperatureSetpointHold, any>; readonly temperatureSetpointHoldDuration: import("@matter/types").OptionalWritableAttribute<number | null, any>; readonly thermostatProgrammingOperationMode: import("@matter/types").OptionalWritableAttribute<import("@matter/types").TypeFromPartialBitSchema<{ scheduleActive: import("@matter/types").BitFlag; autoRecovery: import("@matter/types").BitFlag; economy: import("@matter/types").BitFlag; }>, any>; readonly thermostatRunningState: import("@matter/types").OptionalAttribute<import("@matter/types").TypeFromPartialBitSchema<{ heat: import("@matter/types").BitFlag; cool: import("@matter/types").BitFlag; fan: import("@matter/types").BitFlag; heatStage2: import("@matter/types").BitFlag; coolStage2: import("@matter/types").BitFlag; fanStage2: import("@matter/types").BitFlag; fanStage3: import("@matter/types").BitFlag; }>, any>; readonly setpointChangeSource: import("@matter/types").OptionalAttribute<Thermostat.SetpointChangeSource, any>; readonly setpointChangeAmount: import("@matter/types").OptionalAttribute<number | null, any>; readonly setpointChangeSourceTimestamp: import("@matter/types").OptionalAttribute<number, any>; readonly emergencyHeatDelta: import("@matter/types").OptionalWritableAttribute<number, any>; readonly acType: import("@matter/types").OptionalWritableAttribute<Thermostat.AcType, any>; readonly acCapacity: import("@matter/types").OptionalWritableAttribute<number, any>; readonly acRefrigerantType: import("@matter/types").OptionalWritableAttribute<Thermostat.AcRefrigerantType, any>; readonly acCompressorType: import("@matter/types").OptionalWritableAttribute<Thermostat.AcCompressorType, any>; readonly acErrorCode: import("@matter/types").OptionalWritableAttribute<import("@matter/types").TypeFromPartialBitSchema<{ compressorFail: import("@matter/types").BitFlag; roomSensorFail: import("@matter/types").BitFlag; outdoorSensorFail: import("@matter/types").BitFlag; coilSensorFail: import("@matter/types").BitFlag; fanFail: import("@matter/types").BitFlag; }>, any>; readonly acLouverPosition: import("@matter/types").OptionalWritableAttribute<Thermostat.AcLouverPosition, any>; readonly acCoilTemperature: import("@matter/types").OptionalAttribute<number | null, any>; readonly acCapacityFormat: import("@matter/types").OptionalWritableAttribute<Thermostat.AcCapacityFormat, any>; }; readonly commands: { readonly setpointRaiseLower: import("@matter/types").Command<import("@matter/types").TypeFromFields<{ mode: import("@matter/types").FieldType<Thermostat.SetpointRaiseLowerMode>; amount: import("@matter/types").FieldType<number>; }>, void, any>; }; readonly extensions: readonly [{ readonly flags: { readonly occupancy: true; }; readonly component: { readonly attributes: { readonly occupancy: import("@matter/types").Attribute<import("@matter/types").TypeFromPartialBitSchema<{ occupied: import("@matter/types").BitFlag; }>, any>; }; }; }, { readonly flags: { readonly heating: true; }; readonly component: { readonly attributes: { readonly absMinHeatSetpointLimit: import("@matter/types").OptionalFixedAttribute<number, any>; readonly absMaxHeatSetpointLimit: import("@matter/types").OptionalFixedAttribute<number, any>; readonly piHeatingDemand: import("@matter/types").OptionalAttribute<number, any>; readonly occupiedHeatingSetpoint: import("@matter/types").WritableAttribute<number, any>; readonly minHeatSetpointLimit: import("@matter/types").OptionalWritableAttribute<number, any>; readonly maxHeatSetpointLimit: import("@matter/types").OptionalWritableAttribute<number, any>; }; }; }, { readonly flags: { readonly cooling: true; }; readonly component: { readonly attributes: { readonly absMinCoolSetpointLimit: import("@matter/types").OptionalFixedAttribute<number, any>; readonly absMaxCoolSetpointLimit: import("@matter/types").OptionalFixedAttribute<number, any>; readonly piCoolingDemand: import("@matter/types").OptionalAttribute<number, any>; readonly occupiedCoolingSetpoint: import("@matter/types").WritableAttribute<number, any>; readonly minCoolSetpointLimit: import("@matter/types").OptionalWritableAttribute<number, any>; readonly maxCoolSetpointLimit: import("@matter/types").OptionalWritableAttribute<number, any>; }; }; }, { readonly flags: { readonly localTemperatureNotExposed: false; }; readonly component: { readonly attributes: { readonly localTemperatureCalibration: import("@matter/types").OptionalWritableAttribute<number, any>; }; }; }, { readonly flags: { readonly cooling: true; readonly occupancy: true; }; readonly component: { readonly attributes: { readonly unoccupiedCoolingSetpoint: import("@matter/types").WritableAttribute<number, any>; }; }; }, { readonly flags: { readonly heating: true; readonly occupancy: true; }; readonly component: { readonly attributes: { readonly unoccupiedHeatingSetpoint: import("@m