matterbridge
Version:
Matterbridge plugin manager for Matter
878 lines • 77.7 kB
TypeScript
/**
* This file contains the behavior classes of Matterbridge.
*
* @file matterbridgeBehaviors.ts
* @author Luca Liguori
* @date 2024-11-07
* @version 1.3.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, MaybePromise, 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 { OperationalState } from '@matter/main/clusters/operational-state';
import { ModeBase } from '@matter/main/clusters/mode-base';
import { ServiceArea } from '@matter/main/clusters/service-area';
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 { OperationalStateServer } from '@matter/main/behaviors/operational-state';
import { ServiceAreaServer } from '@matter/main/behaviors/service-area';
import { DeviceEnergyManagementModeServer } from '@matter/main/behaviors/device-energy-management-mode';
import { AnsiLogger } from './logger/export.js';
import { MatterbridgeEndpointCommands } from './matterbridgeEndpoint.js';
export declare class MatterbridgeServer extends Behavior {
static readonly id = "matterbridge";
state: MatterbridgeServer.State;
initialize(): void;
}
export declare namespace MatterbridgeServer {
class State {
log: AnsiLogger;
commandHandler: NamedHandler<MatterbridgeEndpointCommands>;
}
}
export declare class MatterbridgeIdentifyServer extends IdentifyServer {
identify(request: Identify.IdentifyRequest): MaybePromise;
triggerEffect(request: Identify.TriggerEffectRequest): MaybePromise;
}
export declare class MatterbridgeOnOffServer extends OnOffServer {
on(): MaybePromise;
off(): MaybePromise;
toggle(): MaybePromise;
}
export declare class MatterbridgeLevelControlServer extends LevelControlServer {
moveToLevel(request: LevelControl.MoveToLevelRequest): MaybePromise;
moveToLevelWithOnOff(request: LevelControl.MoveToLevelRequest): MaybePromise;
}
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: 7;
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;
}>>;
action: import("@matter/types").FieldType<ColorControl.ColorLoopAction>;
direction: import("@matter/types").FieldType<ColorControl.ColorLoopDirection>;
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 flags: {
readonly enhancedHue: true;
readonly hueSaturation: false;
};
readonly component: false;
}, {
readonly flags: {
readonly colorLoop: true;
readonly enhancedHue: false;
};
readonly component: false;
}];
}>, 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(request: ColorControl.MoveToHueRequest): MaybePromise;
moveToSaturation(request: ColorControl.MoveToSaturationRequest): MaybePromise;
moveToHueAndSaturation(request: ColorControl.MoveToHueAndSaturationRequest): MaybePromise;
moveToColor(request: ColorControl.MoveToColorRequest): MaybePromise;
moveToColorTemperature(request: ColorControl.MoveToColorTemperatureRequest): MaybePromise;
}
declare const MatterbridgeLiftWindowCoveringServer_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 MatterbridgeLiftWindowCoveringServer extends MatterbridgeLiftWindowCoveringServer_base {
upOrOpen(): MaybePromise;
downOrClose(): MaybePromise;
stopMotion(): MaybePromise;
goToLiftPercentage(request: WindowCovering.GoToLiftPercentageRequest): MaybePromise;
handleMovement(type: MovementType, reversed: boolean, direction: MovementDirection, targetPercent100ths?: number): Promise<void>;
}
declare const MatterbridgeLiftTiltWindowCoveringServer_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, WindowCovering.Feature.Tilt, WindowCovering.Feature.PositionAwareTilt]>, typeof WindowCoveringServer, import("@matter/main/behaviors/window-covering").WindowCoveringInterface>;
export declare class MatterbridgeLiftTiltWindowCoveringServer extends MatterbridgeLiftTiltWindowCoveringServer_base {
upOrOpen(): MaybePromise;
downOrClose(): MaybePromise;
stopMotion(): MaybePromise;
goToLiftPercentage(request: WindowCovering.GoToLiftPercentageRequest): MaybePromise;
goToTiltPercentage(request: WindowCovering.GoToTiltPercentageRequest): MaybePromise;
handleMovement(type: MovementType, reversed: boolean, direction: MovementDirection, targetPercent100ths?: number): Promise<void>;
}
export declare class MatterbridgeDoorLockServer extends DoorLockServer {
lockDoor(): MaybePromise;
unlockDoor(): MaybePromise;
}
declare const MatterbridgeFanControlServer_base: import("@matter/main").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<FanControl.Cluster, readonly [FanControl.Feature.Auto, FanControl.Feature.Step]>, typeof FanControlServer, import("@matter/main/behaviors/fan-control").FanControlInterface>;
export declare class MatterbridgeFanControlServer extends MatterbridgeFanControlServer_base {
step(request: FanControl.StepRequest): MaybePromise;
}
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: 8;
readonly features: {
readonly heating: import("@matter/types").BitFlag;
readonly cooling: import("@matter/types