This alias specializes the semantics of LevelControl.Base.

PulseWidthModulationCluster supports optional features that you can enable with the PulseWidthModulationCluster.with() factory method.

interface Cluster {
    attributes: Pick<Merge<{
        currentLevel: Attribute<null | number, any>;
        defaultMoveRate: OptionalWritableAttribute<null | number, any>;
        maxLevel: OptionalAttribute<number, any>;
        offTransitionTime: OptionalWritableAttribute<null | number, any>;
        onLevel: WritableAttribute<null | number, any>;
        onOffTransitionTime: OptionalWritableAttribute<number, any>;
        onTransitionTime: OptionalWritableAttribute<null | number, any>;
        options: WritableAttribute<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>, any>;
    }, GlobalAttributes<{
        frequency: BitFlag;
        lighting: BitFlag;
        onOff: BitFlag;
    }>>,
        | "clusterRevision"
        | "featureMap"
        | "attributeList"
        | "acceptedCommandList"
        | "generatedCommandList"
        | "maxLevel"
        | "options"
        | "currentLevel"
        | "onOffTransitionTime"
        | "onLevel"
        | "onTransitionTime"
        | "offTransitionTime"
        | "defaultMoveRate"> & Omit<{
        minLevel: OptionalAttribute<number, any>;
    },
        | "maxLevel"
        | "options"
        | "currentLevel"
        | "onOffTransitionTime"
        | "onLevel"
        | "onTransitionTime"
        | "offTransitionTime"
        | "defaultMoveRate"
        | (keyof GlobalAttributes<{ readonly onOff: BitFlag; readonly lighting: BitFlag; readonly frequency: BitFlag; }>)> & Omit<Merge<{
        currentLevel: Attribute<null | number, any>;
        defaultMoveRate: OptionalWritableAttribute<null | number, any>;
        maxLevel: OptionalAttribute<number, any>;
        offTransitionTime: OptionalWritableAttribute<null | number, any>;
        onLevel: WritableAttribute<null | number, any>;
        onOffTransitionTime: OptionalWritableAttribute<number, any>;
        onTransitionTime: OptionalWritableAttribute<null | number, any>;
        options: WritableAttribute<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>, any>;
    }, GlobalAttributes<{
        frequency: BitFlag;
        lighting: BitFlag;
        onOff: BitFlag;
    }>>,
        | "minLevel"
        | "maxLevel"
        | "options"
        | "currentLevel"
        | "onOffTransitionTime"
        | "onLevel"
        | "onTransitionTime"
        | "offTransitionTime"
        | "defaultMoveRate"
        | (keyof GlobalAttributes<{ readonly onOff: BitFlag; readonly lighting: BitFlag; readonly frequency: BitFlag; }>)>;
    base: Of<{
        attributes: {
            currentLevel: Attribute<null | number, any>;
            defaultMoveRate: OptionalWritableAttribute<null | number, any>;
            maxLevel: OptionalAttribute<number, any>;
            offTransitionTime: OptionalWritableAttribute<null | number, any>;
            onLevel: WritableAttribute<null | number, any>;
            onOffTransitionTime: OptionalWritableAttribute<number, any>;
            onTransitionTime: OptionalWritableAttribute<null | number, any>;
            options: WritableAttribute<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>, any>;
        };
        commands: {
            move: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            moveToLevel: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveToLevelWithOnOff: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveWithOnOff: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            step: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stepWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stop: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
            stopWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                    remainingTime: Attribute<number, any>;
                    startUpCurrentLevel: WritableAttribute<null | number, any>;
                };
            };
            flags: {
                lighting: true;
            };
        }, {
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                };
            };
            flags: {
                lighting: false;
            };
        }, {
            component: {
                attributes: {
                    currentFrequency: Attribute<number, any>;
                    maxFrequency: Attribute<number, any>;
                    minFrequency: Attribute<number, any>;
                };
                commands: {
                    moveToClosestFrequency: Command<TypeFromFields<{
                        frequency: FieldType<number>;
                    }>, void, any>;
                };
            };
            flags: {
                frequency: true;
            };
        }];
        features: {
            frequency: BitFlag;
            lighting: BitFlag;
            onOff: BitFlag;
        };
        id: 28;
        name: "PulseWidthModulation";
        revision: 5;
    }>;
    commands: Pick<{
        move: Command<TypeFromFields<{
            moveMode: FieldType<LevelControl.MoveMode>;
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            rate: FieldType<null | number>;
        }>, void, any>;
        moveToLevel: Command<TypeFromFields<{
            level: FieldType<number>;
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            transitionTime: FieldType<null | number>;
        }>, void, any>;
        moveToLevelWithOnOff: Command<TypeFromFields<{
            level: FieldType<number>;
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            transitionTime: FieldType<null | number>;
        }>, void, any>;
        moveWithOnOff: Command<TypeFromFields<{
            moveMode: FieldType<LevelControl.MoveMode>;
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            rate: FieldType<null | number>;
        }>, void, any>;
        step: Command<TypeFromFields<{
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            stepMode: FieldType<LevelControl.StepMode>;
            stepSize: FieldType<number>;
            transitionTime: FieldType<null | number>;
        }>, void, any>;
        stepWithOnOff: Command<TypeFromFields<{
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            stepMode: FieldType<LevelControl.StepMode>;
            stepSize: FieldType<number>;
            transitionTime: FieldType<null | number>;
        }>, void, any>;
        stop: Command<TypeFromFields<{
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
        }>, void, any>;
        stopWithOnOff: Command<TypeFromFields<{
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
        }>, void, any>;
    },
        | "step"
        | "moveToLevel"
        | "move"
        | "stop"
        | "moveToLevelWithOnOff"
        | "moveWithOnOff"
        | "stepWithOnOff"
        | "stopWithOnOff"> & Omit<unknown,
        | "step"
        | "moveToLevel"
        | "move"
        | "stop"
        | "moveToLevelWithOnOff"
        | "moveWithOnOff"
        | "stepWithOnOff"
        | "stopWithOnOff"> & Omit<{
        move: Command<TypeFromFields<{
            moveMode: FieldType<LevelControl.MoveMode>;
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            rate: FieldType<null | number>;
        }>, void, any>;
        moveToLevel: Command<TypeFromFields<{
            level: FieldType<number>;
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            transitionTime: FieldType<null | number>;
        }>, void, any>;
        moveToLevelWithOnOff: Command<TypeFromFields<{
            level: FieldType<number>;
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            transitionTime: FieldType<null | number>;
        }>, void, any>;
        moveWithOnOff: Command<TypeFromFields<{
            moveMode: FieldType<LevelControl.MoveMode>;
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            rate: FieldType<null | number>;
        }>, void, any>;
        step: Command<TypeFromFields<{
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            stepMode: FieldType<LevelControl.StepMode>;
            stepSize: FieldType<number>;
            transitionTime: FieldType<null | number>;
        }>, void, any>;
        stepWithOnOff: Command<TypeFromFields<{
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            stepMode: FieldType<LevelControl.StepMode>;
            stepSize: FieldType<number>;
            transitionTime: FieldType<null | number>;
        }>, void, any>;
        stop: Command<TypeFromFields<{
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
        }>, void, any>;
        stopWithOnOff: Command<TypeFromFields<{
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
        }>, void, any>;
    },
        | "step"
        | "moveToLevel"
        | "move"
        | "stop"
        | "moveToLevelWithOnOff"
        | "moveWithOnOff"
        | "stepWithOnOff"
        | "stopWithOnOff">;
    events: Pick<{}, never> & Omit<unknown, never> & Omit<{}, never>;
    extensions: readonly [{
        component: {
            attributes: {
                minLevel: OptionalAttribute<number, any>;
                remainingTime: Attribute<number, any>;
                startUpCurrentLevel: WritableAttribute<null | number, any>;
            };
        };
        flags: {
            lighting: true;
        };
    }, {
        component: {
            attributes: {
                minLevel: OptionalAttribute<number, any>;
            };
        };
        flags: {
            lighting: false;
        };
    }, {
        component: {
            attributes: {
                currentFrequency: Attribute<number, any>;
                maxFrequency: Attribute<number, any>;
                minFrequency: Attribute<number, any>;
            };
            commands: {
                moveToClosestFrequency: Command<TypeFromFields<{
                    frequency: FieldType<number>;
                }>, void, any>;
            };
        };
        flags: {
            frequency: true;
        };
    }];
    features: {
        frequency: BitFlag;
        lighting: BitFlag;
        onOff: BitFlag;
    };
    id: Branded<28, "ClusterId">;
    name: "PulseWidthModulation";
    revision: 5;
    supportedFeatures: {
        onOff: true;
    };
    unknown: false;
    alter<const AlterationsT>(alterations: AlterationsT): WithAlterations<Of<{
        attributes: {
            currentLevel: Attribute<null | number, any>;
            defaultMoveRate: OptionalWritableAttribute<null | number, any>;
            maxLevel: OptionalAttribute<number, any>;
            offTransitionTime: OptionalWritableAttribute<null | number, any>;
            onLevel: WritableAttribute<null | number, any>;
            onOffTransitionTime: OptionalWritableAttribute<number, any>;
            onTransitionTime: OptionalWritableAttribute<null | number, any>;
            options: WritableAttribute<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>, any>;
        };
        base: Of<{
            attributes: {
                currentLevel: Attribute<null | number, any>;
                defaultMoveRate: OptionalWritableAttribute<null | number, any>;
                maxLevel: OptionalAttribute<number, any>;
                offTransitionTime: OptionalWritableAttribute<null | number, any>;
                onLevel: WritableAttribute<null | number, any>;
                onOffTransitionTime: OptionalWritableAttribute<number, any>;
                onTransitionTime: OptionalWritableAttribute<null | number, any>;
                options: WritableAttribute<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>, any>;
            };
            commands: {
                move: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevel: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevelWithOnOff: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveWithOnOff: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                step: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stepWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stop: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
                stopWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
            };
            extensions: readonly [{
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                        remainingTime: Attribute<number, any>;
                        startUpCurrentLevel: WritableAttribute<(...) | (...), any>;
                    };
                };
                flags: {
                    lighting: true;
                };
            }, {
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                    };
                };
                flags: {
                    lighting: false;
                };
            }, {
                component: {
                    attributes: {
                        currentFrequency: Attribute<number, any>;
                        maxFrequency: Attribute<number, any>;
                        minFrequency: Attribute<number, any>;
                    };
                    commands: {
                        moveToClosestFrequency: Command<TypeFromFields<(...)>, void, any>;
                    };
                };
                flags: {
                    frequency: true;
                };
            }];
            features: {
                frequency: BitFlag;
                lighting: BitFlag;
                onOff: BitFlag;
            };
            id: 28;
            name: "PulseWidthModulation";
            revision: 5;
        }>;
        commands: {
            move: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            moveToLevel: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveToLevelWithOnOff: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveWithOnOff: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            step: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stepWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stop: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
            stopWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                    remainingTime: Attribute<number, any>;
                    startUpCurrentLevel: WritableAttribute<null | number, any>;
                };
            };
            flags: {
                lighting: true;
            };
        }, {
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                };
            };
            flags: {
                lighting: false;
            };
        }, {
            component: {
                attributes: {
                    currentFrequency: Attribute<number, any>;
                    maxFrequency: Attribute<number, any>;
                    minFrequency: Attribute<number, any>;
                };
                commands: {
                    moveToClosestFrequency: Command<TypeFromFields<{
                        frequency: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                frequency: true;
            };
        }];
        features: {
            frequency: BitFlag;
            lighting: BitFlag;
            onOff: BitFlag;
        };
        id: 28;
        name: "PulseWidthModulation";
        revision: 5;
        supportedFeatures: {
            onOff: true;
        };
    }>, AlterationsT>;
    enable<const FlagsT>(flags: FlagsT): WithFlags<Of<{
        attributes: {
            currentLevel: Attribute<null | number, any>;
            defaultMoveRate: OptionalWritableAttribute<null | number, any>;
            maxLevel: OptionalAttribute<number, any>;
            offTransitionTime: OptionalWritableAttribute<null | number, any>;
            onLevel: WritableAttribute<null | number, any>;
            onOffTransitionTime: OptionalWritableAttribute<number, any>;
            onTransitionTime: OptionalWritableAttribute<null | number, any>;
            options: WritableAttribute<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>, any>;
        };
        base: Of<{
            attributes: {
                currentLevel: Attribute<null | number, any>;
                defaultMoveRate: OptionalWritableAttribute<null | number, any>;
                maxLevel: OptionalAttribute<number, any>;
                offTransitionTime: OptionalWritableAttribute<null | number, any>;
                onLevel: WritableAttribute<null | number, any>;
                onOffTransitionTime: OptionalWritableAttribute<number, any>;
                onTransitionTime: OptionalWritableAttribute<null | number, any>;
                options: WritableAttribute<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>, any>;
            };
            commands: {
                move: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevel: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevelWithOnOff: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveWithOnOff: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                step: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stepWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stop: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
                stopWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
            };
            extensions: readonly [{
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                        remainingTime: Attribute<number, any>;
                        startUpCurrentLevel: WritableAttribute<(...) | (...), any>;
                    };
                };
                flags: {
                    lighting: true;
                };
            }, {
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                    };
                };
                flags: {
                    lighting: false;
                };
            }, {
                component: {
                    attributes: {
                        currentFrequency: Attribute<number, any>;
                        maxFrequency: Attribute<number, any>;
                        minFrequency: Attribute<number, any>;
                    };
                    commands: {
                        moveToClosestFrequency: Command<TypeFromFields<(...)>, void, any>;
                    };
                };
                flags: {
                    frequency: true;
                };
            }];
            features: {
                frequency: BitFlag;
                lighting: BitFlag;
                onOff: BitFlag;
            };
            id: 28;
            name: "PulseWidthModulation";
            revision: 5;
        }>;
        commands: {
            move: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            moveToLevel: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveToLevelWithOnOff: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveWithOnOff: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            step: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stepWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stop: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
            stopWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                    remainingTime: Attribute<number, any>;
                    startUpCurrentLevel: WritableAttribute<null | number, any>;
                };
            };
            flags: {
                lighting: true;
            };
        }, {
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                };
            };
            flags: {
                lighting: false;
            };
        }, {
            component: {
                attributes: {
                    currentFrequency: Attribute<number, any>;
                    maxFrequency: Attribute<number, any>;
                    minFrequency: Attribute<number, any>;
                };
                commands: {
                    moveToClosestFrequency: Command<TypeFromFields<{
                        frequency: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                frequency: true;
            };
        }];
        features: {
            frequency: BitFlag;
            lighting: BitFlag;
            onOff: BitFlag;
        };
        id: 28;
        name: "PulseWidthModulation";
        revision: 5;
        supportedFeatures: {
            onOff: true;
        };
    }>, FlagsT>;
    set<const ValuesT>(values: ValuesT): WithValues<Of<{
        attributes: {
            currentLevel: Attribute<null | number, any>;
            defaultMoveRate: OptionalWritableAttribute<null | number, any>;
            maxLevel: OptionalAttribute<number, any>;
            offTransitionTime: OptionalWritableAttribute<null | number, any>;
            onLevel: WritableAttribute<null | number, any>;
            onOffTransitionTime: OptionalWritableAttribute<number, any>;
            onTransitionTime: OptionalWritableAttribute<null | number, any>;
            options: WritableAttribute<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>, any>;
        };
        base: Of<{
            attributes: {
                currentLevel: Attribute<null | number, any>;
                defaultMoveRate: OptionalWritableAttribute<null | number, any>;
                maxLevel: OptionalAttribute<number, any>;
                offTransitionTime: OptionalWritableAttribute<null | number, any>;
                onLevel: WritableAttribute<null | number, any>;
                onOffTransitionTime: OptionalWritableAttribute<number, any>;
                onTransitionTime: OptionalWritableAttribute<null | number, any>;
                options: WritableAttribute<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>, any>;
            };
            commands: {
                move: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevel: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevelWithOnOff: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveWithOnOff: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                step: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stepWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stop: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
                stopWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
            };
            extensions: readonly [{
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                        remainingTime: Attribute<number, any>;
                        startUpCurrentLevel: WritableAttribute<(...) | (...), any>;
                    };
                };
                flags: {
                    lighting: true;
                };
            }, {
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                    };
                };
                flags: {
                    lighting: false;
                };
            }, {
                component: {
                    attributes: {
                        currentFrequency: Attribute<number, any>;
                        maxFrequency: Attribute<number, any>;
                        minFrequency: Attribute<number, any>;
                    };
                    commands: {
                        moveToClosestFrequency: Command<TypeFromFields<(...)>, void, any>;
                    };
                };
                flags: {
                    frequency: true;
                };
            }];
            features: {
                frequency: BitFlag;
                lighting: BitFlag;
                onOff: BitFlag;
            };
            id: 28;
            name: "PulseWidthModulation";
            revision: 5;
        }>;
        commands: {
            move: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            moveToLevel: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveToLevelWithOnOff: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveWithOnOff: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            step: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stepWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stop: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
            stopWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                    remainingTime: Attribute<number, any>;
                    startUpCurrentLevel: WritableAttribute<null | number, any>;
                };
            };
            flags: {
                lighting: true;
            };
        }, {
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                };
            };
            flags: {
                lighting: false;
            };
        }, {
            component: {
                attributes: {
                    currentFrequency: Attribute<number, any>;
                    maxFrequency: Attribute<number, any>;
                    minFrequency: Attribute<number, any>;
                };
                commands: {
                    moveToClosestFrequency: Command<TypeFromFields<{
                        frequency: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                frequency: true;
            };
        }];
        features: {
            frequency: BitFlag;
            lighting: BitFlag;
            onOff: BitFlag;
        };
        id: 28;
        name: "PulseWidthModulation";
        revision: 5;
        supportedFeatures: {
            onOff: true;
        };
    }>, ValuesT>;
    with<const SelectionT>(...selection: SelectionT): Of<Of<{
        attributes: {
            currentLevel: Attribute<null | number, any>;
            defaultMoveRate: OptionalWritableAttribute<null | number, any>;
            maxLevel: OptionalAttribute<number, any>;
            offTransitionTime: OptionalWritableAttribute<null | number, any>;
            onLevel: WritableAttribute<null | number, any>;
            onOffTransitionTime: OptionalWritableAttribute<number, any>;
            onTransitionTime: OptionalWritableAttribute<null | number, any>;
            options: WritableAttribute<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>, any>;
        };
        base: Of<{
            attributes: {
                currentLevel: Attribute<null | number, any>;
                defaultMoveRate: OptionalWritableAttribute<null | number, any>;
                maxLevel: OptionalAttribute<number, any>;
                offTransitionTime: OptionalWritableAttribute<null | number, any>;
                onLevel: WritableAttribute<null | number, any>;
                onOffTransitionTime: OptionalWritableAttribute<number, any>;
                onTransitionTime: OptionalWritableAttribute<null | number, any>;
                options: WritableAttribute<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>, any>;
            };
            commands: {
                move: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevel: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevelWithOnOff: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveWithOnOff: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                step: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stepWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stop: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
                stopWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
            };
            extensions: readonly [{
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                        remainingTime: Attribute<number, any>;
                        startUpCurrentLevel: WritableAttribute<(...) | (...), any>;
                    };
                };
                flags: {
                    lighting: true;
                };
            }, {
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                    };
                };
                flags: {
                    lighting: false;
                };
            }, {
                component: {
                    attributes: {
                        currentFrequency: Attribute<number, any>;
                        maxFrequency: Attribute<number, any>;
                        minFrequency: Attribute<number, any>;
                    };
                    commands: {
                        moveToClosestFrequency: Command<TypeFromFields<(...)>, void, any>;
                    };
                };
                flags: {
                    frequency: true;
                };
            }];
            features: {
                frequency: BitFlag;
                lighting: BitFlag;
                onOff: BitFlag;
            };
            id: 28;
            name: "PulseWidthModulation";
            revision: 5;
        }>;
        commands: {
            move: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            moveToLevel: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveToLevelWithOnOff: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveWithOnOff: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            step: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stepWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stop: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
            stopWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                    remainingTime: Attribute<number, any>;
                    startUpCurrentLevel: WritableAttribute<null | number, any>;
                };
            };
            flags: {
                lighting: true;
            };
        }, {
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                };
            };
            flags: {
                lighting: false;
            };
        }, {
            component: {
                attributes: {
                    currentFrequency: Attribute<number, any>;
                    maxFrequency: Attribute<number, any>;
                    minFrequency: Attribute<number, any>;
                };
                commands: {
                    moveToClosestFrequency: Command<TypeFromFields<{
                        frequency: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                frequency: true;
            };
        }];
        features: {
            frequency: BitFlag;
            lighting: BitFlag;
            onOff: BitFlag;
        };
        id: 28;
        name: "PulseWidthModulation";
        revision: 5;
        supportedFeatures: {
            onOff: true;
        };
    }>, SelectionT>;
}

Hierarchy (view full)

Properties

attributes: Pick<Merge<{
    currentLevel: Attribute<null | number, any>;
    defaultMoveRate: OptionalWritableAttribute<null | number, any>;
    maxLevel: OptionalAttribute<number, any>;
    offTransitionTime: OptionalWritableAttribute<null | number, any>;
    onLevel: WritableAttribute<null | number, any>;
    onOffTransitionTime: OptionalWritableAttribute<number, any>;
    onTransitionTime: OptionalWritableAttribute<null | number, any>;
    options: WritableAttribute<TypeFromPartialBitSchema<{
        coupleColorTempToLevel: BitFlag;
        executeIfOff: BitFlag;
    }>, any>;
}, GlobalAttributes<{
    frequency: BitFlag;
    lighting: BitFlag;
    onOff: BitFlag;
}>>,
    | "clusterRevision"
    | "featureMap"
    | "attributeList"
    | "acceptedCommandList"
    | "generatedCommandList"
    | "maxLevel"
    | "options"
    | "currentLevel"
    | "onOffTransitionTime"
    | "onLevel"
    | "onTransitionTime"
    | "offTransitionTime"
    | "defaultMoveRate"> & Omit<{
    minLevel: OptionalAttribute<number, any>;
},
    | "maxLevel"
    | "options"
    | "currentLevel"
    | "onOffTransitionTime"
    | "onLevel"
    | "onTransitionTime"
    | "offTransitionTime"
    | "defaultMoveRate"
    | (keyof GlobalAttributes<{ readonly onOff: BitFlag; readonly lighting: BitFlag; readonly frequency: BitFlag; }>)> & Omit<Merge<{
    currentLevel: Attribute<null | number, any>;
    defaultMoveRate: OptionalWritableAttribute<null | number, any>;
    maxLevel: OptionalAttribute<number, any>;
    offTransitionTime: OptionalWritableAttribute<null | number, any>;
    onLevel: WritableAttribute<null | number, any>;
    onOffTransitionTime: OptionalWritableAttribute<number, any>;
    onTransitionTime: OptionalWritableAttribute<null | number, any>;
    options: WritableAttribute<TypeFromPartialBitSchema<{
        coupleColorTempToLevel: BitFlag;
        executeIfOff: BitFlag;
    }>, any>;
}, GlobalAttributes<{
    frequency: BitFlag;
    lighting: BitFlag;
    onOff: BitFlag;
}>>,
    | "minLevel"
    | "maxLevel"
    | "options"
    | "currentLevel"
    | "onOffTransitionTime"
    | "onLevel"
    | "onTransitionTime"
    | "offTransitionTime"
    | "defaultMoveRate"
    | (keyof GlobalAttributes<{ readonly onOff: BitFlag; readonly lighting: BitFlag; readonly frequency: BitFlag; }>)>
base: Of<{
    attributes: {
        currentLevel: Attribute<null | number, any>;
        defaultMoveRate: OptionalWritableAttribute<null | number, any>;
        maxLevel: OptionalAttribute<number, any>;
        offTransitionTime: OptionalWritableAttribute<null | number, any>;
        onLevel: WritableAttribute<null | number, any>;
        onOffTransitionTime: OptionalWritableAttribute<number, any>;
        onTransitionTime: OptionalWritableAttribute<null | number, any>;
        options: WritableAttribute<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>, any>;
    };
    commands: {
        move: Command<TypeFromFields<{
            moveMode: FieldType<LevelControl.MoveMode>;
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            rate: FieldType<null | number>;
        }>, void, any>;
        moveToLevel: Command<TypeFromFields<{
            level: FieldType<number>;
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            transitionTime: FieldType<null | number>;
        }>, void, any>;
        moveToLevelWithOnOff: Command<TypeFromFields<{
            level: FieldType<number>;
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            transitionTime: FieldType<null | number>;
        }>, void, any>;
        moveWithOnOff: Command<TypeFromFields<{
            moveMode: FieldType<LevelControl.MoveMode>;
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            rate: FieldType<null | number>;
        }>, void, any>;
        step: Command<TypeFromFields<{
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            stepMode: FieldType<LevelControl.StepMode>;
            stepSize: FieldType<number>;
            transitionTime: FieldType<null | number>;
        }>, void, any>;
        stepWithOnOff: Command<TypeFromFields<{
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            stepMode: FieldType<LevelControl.StepMode>;
            stepSize: FieldType<number>;
            transitionTime: FieldType<null | number>;
        }>, void, any>;
        stop: Command<TypeFromFields<{
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
        }>, void, any>;
        stopWithOnOff: Command<TypeFromFields<{
            optionsMask: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
            optionsOverride: FieldType<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>>;
        }>, void, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                minLevel: OptionalAttribute<number, any>;
                remainingTime: Attribute<number, any>;
                startUpCurrentLevel: WritableAttribute<null | number, any>;
            };
        };
        flags: {
            lighting: true;
        };
    }, {
        component: {
            attributes: {
                minLevel: OptionalAttribute<number, any>;
            };
        };
        flags: {
            lighting: false;
        };
    }, {
        component: {
            attributes: {
                currentFrequency: Attribute<number, any>;
                maxFrequency: Attribute<number, any>;
                minFrequency: Attribute<number, any>;
            };
            commands: {
                moveToClosestFrequency: Command<TypeFromFields<{
                    frequency: FieldType<number>;
                }>, void, any>;
            };
        };
        flags: {
            frequency: true;
        };
    }];
    features: {
        frequency: BitFlag;
        lighting: BitFlag;
        onOff: BitFlag;
    };
    id: 28;
    name: "PulseWidthModulation";
    revision: 5;
}>
commands: Pick<{
    move: Command<TypeFromFields<{
        moveMode: FieldType<LevelControl.MoveMode>;
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        rate: FieldType<null | number>;
    }>, void, any>;
    moveToLevel: Command<TypeFromFields<{
        level: FieldType<number>;
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        transitionTime: FieldType<null | number>;
    }>, void, any>;
    moveToLevelWithOnOff: Command<TypeFromFields<{
        level: FieldType<number>;
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        transitionTime: FieldType<null | number>;
    }>, void, any>;
    moveWithOnOff: Command<TypeFromFields<{
        moveMode: FieldType<LevelControl.MoveMode>;
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        rate: FieldType<null | number>;
    }>, void, any>;
    step: Command<TypeFromFields<{
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        stepMode: FieldType<LevelControl.StepMode>;
        stepSize: FieldType<number>;
        transitionTime: FieldType<null | number>;
    }>, void, any>;
    stepWithOnOff: Command<TypeFromFields<{
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        stepMode: FieldType<LevelControl.StepMode>;
        stepSize: FieldType<number>;
        transitionTime: FieldType<null | number>;
    }>, void, any>;
    stop: Command<TypeFromFields<{
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
    }>, void, any>;
    stopWithOnOff: Command<TypeFromFields<{
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
    }>, void, any>;
},
    | "step"
    | "moveToLevel"
    | "move"
    | "stop"
    | "moveToLevelWithOnOff"
    | "moveWithOnOff"
    | "stepWithOnOff"
    | "stopWithOnOff"> & Omit<unknown,
    | "step"
    | "moveToLevel"
    | "move"
    | "stop"
    | "moveToLevelWithOnOff"
    | "moveWithOnOff"
    | "stepWithOnOff"
    | "stopWithOnOff"> & Omit<{
    move: Command<TypeFromFields<{
        moveMode: FieldType<LevelControl.MoveMode>;
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        rate: FieldType<null | number>;
    }>, void, any>;
    moveToLevel: Command<TypeFromFields<{
        level: FieldType<number>;
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        transitionTime: FieldType<null | number>;
    }>, void, any>;
    moveToLevelWithOnOff: Command<TypeFromFields<{
        level: FieldType<number>;
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        transitionTime: FieldType<null | number>;
    }>, void, any>;
    moveWithOnOff: Command<TypeFromFields<{
        moveMode: FieldType<LevelControl.MoveMode>;
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        rate: FieldType<null | number>;
    }>, void, any>;
    step: Command<TypeFromFields<{
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        stepMode: FieldType<LevelControl.StepMode>;
        stepSize: FieldType<number>;
        transitionTime: FieldType<null | number>;
    }>, void, any>;
    stepWithOnOff: Command<TypeFromFields<{
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        stepMode: FieldType<LevelControl.StepMode>;
        stepSize: FieldType<number>;
        transitionTime: FieldType<null | number>;
    }>, void, any>;
    stop: Command<TypeFromFields<{
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
    }>, void, any>;
    stopWithOnOff: Command<TypeFromFields<{
        optionsMask: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
        optionsOverride: FieldType<TypeFromPartialBitSchema<{
            coupleColorTempToLevel: BitFlag;
            executeIfOff: BitFlag;
        }>>;
    }>, void, any>;
},
    | "step"
    | "moveToLevel"
    | "move"
    | "stop"
    | "moveToLevelWithOnOff"
    | "moveWithOnOff"
    | "stepWithOnOff"
    | "stopWithOnOff">
events: Pick<{}, never> & Omit<unknown, never> & Omit<{}, never>
extensions: readonly [{
    component: {
        attributes: {
            minLevel: OptionalAttribute<number, any>;
            remainingTime: Attribute<number, any>;
            startUpCurrentLevel: WritableAttribute<null | number, any>;
        };
    };
    flags: {
        lighting: true;
    };
}, {
    component: {
        attributes: {
            minLevel: OptionalAttribute<number, any>;
        };
    };
    flags: {
        lighting: false;
    };
}, {
    component: {
        attributes: {
            currentFrequency: Attribute<number, any>;
            maxFrequency: Attribute<number, any>;
            minFrequency: Attribute<number, any>;
        };
        commands: {
            moveToClosestFrequency: Command<TypeFromFields<{
                frequency: FieldType<number>;
            }>, void, any>;
        };
    };
    flags: {
        frequency: true;
    };
}]
features: {
    frequency: BitFlag;
    lighting: BitFlag;
    onOff: BitFlag;
}
id: Branded<28, "ClusterId">
name
revision
supportedFeatures: {
    onOff: true;
}
unknown

Methods

  • Modify elements using ElementModifier.alter.

    Type Parameters

    • const AlterationsT extends Alterations<Of<{
          attributes: {
              currentLevel: Attribute<null | number, any>;
              defaultMoveRate: OptionalWritableAttribute<null | number, any>;
              maxLevel: OptionalAttribute<number, any>;
              offTransitionTime: OptionalWritableAttribute<null | number, any>;
              onLevel: WritableAttribute<null | number, any>;
              onOffTransitionTime: OptionalWritableAttribute<number, any>;
              onTransitionTime: OptionalWritableAttribute<null | number, any>;
              options: WritableAttribute<TypeFromPartialBitSchema<{
                  coupleColorTempToLevel: BitFlag;
                  executeIfOff: BitFlag;
              }>, any>;
          };
          base: Of<{
              attributes: {
                  currentLevel: Attribute<null | number, any>;
                  defaultMoveRate: OptionalWritableAttribute<null | number, any>;
                  maxLevel: OptionalAttribute<number, any>;
                  offTransitionTime: OptionalWritableAttribute<null | number, any>;
                  onLevel: WritableAttribute<null | number, any>;
                  onOffTransitionTime: OptionalWritableAttribute<number, any>;
                  onTransitionTime: OptionalWritableAttribute<null | number, any>;
                  options: WritableAttribute<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>, any>;
              };
              commands: {
                  move: Command<TypeFromFields<{
                      moveMode: FieldType<LevelControl.MoveMode>;
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      rate: FieldType<(...) | (...)>;
                  }>, void, any>;
                  moveToLevel: Command<TypeFromFields<{
                      level: FieldType<number>;
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      transitionTime: FieldType<(...) | (...)>;
                  }>, void, any>;
                  moveToLevelWithOnOff: Command<TypeFromFields<{
                      level: FieldType<number>;
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      transitionTime: FieldType<(...) | (...)>;
                  }>, void, any>;
                  moveWithOnOff: Command<TypeFromFields<{
                      moveMode: FieldType<LevelControl.MoveMode>;
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      rate: FieldType<(...) | (...)>;
                  }>, void, any>;
                  step: Command<TypeFromFields<{
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      stepMode: FieldType<LevelControl.StepMode>;
                      stepSize: FieldType<number>;
                      transitionTime: FieldType<(...) | (...)>;
                  }>, void, any>;
                  stepWithOnOff: Command<TypeFromFields<{
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      stepMode: FieldType<LevelControl.StepMode>;
                      stepSize: FieldType<number>;
                      transitionTime: FieldType<(...) | (...)>;
                  }>, void, any>;
                  stop: Command<TypeFromFields<{
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                  }>, void, any>;
                  stopWithOnOff: Command<TypeFromFields<{
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                  }>, void, any>;
              };
              extensions: readonly [{
                  component: {
                      attributes: {
                          minLevel: OptionalAttribute<number, any>;
                          remainingTime: Attribute<number, any>;
                          startUpCurrentLevel: WritableAttribute<(...) | (...), any>;
                      };
                  };
                  flags: {
                      lighting: true;
                  };
              }, {
                  component: {
                      attributes: {
                          minLevel: OptionalAttribute<number, any>;
                      };
                  };
                  flags: {
                      lighting: false;
                  };
              }, {
                  component: {
                      attributes: {
                          currentFrequency: Attribute<number, any>;
                          maxFrequency: Attribute<number, any>;
                          minFrequency: Attribute<number, any>;
                      };
                      commands: {
                          moveToClosestFrequency: Command<TypeFromFields<(...)>, void, any>;
                      };
                  };
                  flags: {
                      frequency: true;
                  };
              }];
              features: {
                  frequency: BitFlag;
                  lighting: BitFlag;
                  onOff: BitFlag;
              };
              id: 28;
              name: "PulseWidthModulation";
              revision: 5;
          }>;
          commands: {
              move: Command<TypeFromFields<{
                  moveMode: FieldType<LevelControl.MoveMode>;
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  rate: FieldType<null | number>;
              }>, void, any>;
              moveToLevel: Command<TypeFromFields<{
                  level: FieldType<number>;
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  transitionTime: FieldType<null | number>;
              }>, void, any>;
              moveToLevelWithOnOff: Command<TypeFromFields<{
                  level: FieldType<number>;
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  transitionTime: FieldType<null | number>;
              }>, void, any>;
              moveWithOnOff: Command<TypeFromFields<{
                  moveMode: FieldType<LevelControl.MoveMode>;
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  rate: FieldType<null | number>;
              }>, void, any>;
              step: Command<TypeFromFields<{
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  stepMode: FieldType<LevelControl.StepMode>;
                  stepSize: FieldType<number>;
                  transitionTime: FieldType<null | number>;
              }>, void, any>;
              stepWithOnOff: Command<TypeFromFields<{
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  stepMode: FieldType<LevelControl.StepMode>;
                  stepSize: FieldType<number>;
                  transitionTime: FieldType<null | number>;
              }>, void, any>;
              stop: Command<TypeFromFields<{
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
              }>, void, any>;
              stopWithOnOff: Command<TypeFromFields<{
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
              }>, void, any>;
          };
          extensions: readonly [{
              component: {
                  attributes: {
                      minLevel: OptionalAttribute<number, any>;
                      remainingTime: Attribute<number, any>;
                      startUpCurrentLevel: WritableAttribute<null | number, any>;
                  };
              };
              flags: {
                  lighting: true;
              };
          }, {
              component: {
                  attributes: {
                      minLevel: OptionalAttribute<number, any>;
                  };
              };
              flags: {
                  lighting: false;
              };
          }, {
              component: {
                  attributes: {
                      currentFrequency: Attribute<number, any>;
                      maxFrequency: Attribute<number, any>;
                      minFrequency: Attribute<number, any>;
                  };
                  commands: {
                      moveToClosestFrequency: Command<TypeFromFields<{
                          frequency: FieldType<(...)>;
                      }>, void, any>;
                  };
              };
              flags: {
                  frequency: true;
              };
          }];
          features: {
              frequency: BitFlag;
              lighting: BitFlag;
              onOff: BitFlag;
          };
          id: 28;
          name: "PulseWidthModulation";
          revision: 5;
          supportedFeatures: {
              onOff: true;
          };
      }>>

    Parameters

    Returns WithAlterations<Of<{
        attributes: {
            currentLevel: Attribute<null | number, any>;
            defaultMoveRate: OptionalWritableAttribute<null | number, any>;
            maxLevel: OptionalAttribute<number, any>;
            offTransitionTime: OptionalWritableAttribute<null | number, any>;
            onLevel: WritableAttribute<null | number, any>;
            onOffTransitionTime: OptionalWritableAttribute<number, any>;
            onTransitionTime: OptionalWritableAttribute<null | number, any>;
            options: WritableAttribute<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>, any>;
        };
        base: Of<{
            attributes: {
                currentLevel: Attribute<null | number, any>;
                defaultMoveRate: OptionalWritableAttribute<null | number, any>;
                maxLevel: OptionalAttribute<number, any>;
                offTransitionTime: OptionalWritableAttribute<null | number, any>;
                onLevel: WritableAttribute<null | number, any>;
                onOffTransitionTime: OptionalWritableAttribute<number, any>;
                onTransitionTime: OptionalWritableAttribute<null | number, any>;
                options: WritableAttribute<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>, any>;
            };
            commands: {
                move: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevel: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevelWithOnOff: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveWithOnOff: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                step: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stepWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stop: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
                stopWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
            };
            extensions: readonly [{
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                        remainingTime: Attribute<number, any>;
                        startUpCurrentLevel: WritableAttribute<(...) | (...), any>;
                    };
                };
                flags: {
                    lighting: true;
                };
            }, {
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                    };
                };
                flags: {
                    lighting: false;
                };
            }, {
                component: {
                    attributes: {
                        currentFrequency: Attribute<number, any>;
                        maxFrequency: Attribute<number, any>;
                        minFrequency: Attribute<number, any>;
                    };
                    commands: {
                        moveToClosestFrequency: Command<TypeFromFields<(...)>, void, any>;
                    };
                };
                flags: {
                    frequency: true;
                };
            }];
            features: {
                frequency: BitFlag;
                lighting: BitFlag;
                onOff: BitFlag;
            };
            id: 28;
            name: "PulseWidthModulation";
            revision: 5;
        }>;
        commands: {
            move: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            moveToLevel: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveToLevelWithOnOff: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveWithOnOff: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            step: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stepWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stop: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
            stopWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                    remainingTime: Attribute<number, any>;
                    startUpCurrentLevel: WritableAttribute<null | number, any>;
                };
            };
            flags: {
                lighting: true;
            };
        }, {
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                };
            };
            flags: {
                lighting: false;
            };
        }, {
            component: {
                attributes: {
                    currentFrequency: Attribute<number, any>;
                    maxFrequency: Attribute<number, any>;
                    minFrequency: Attribute<number, any>;
                };
                commands: {
                    moveToClosestFrequency: Command<TypeFromFields<{
                        frequency: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                frequency: true;
            };
        }];
        features: {
            frequency: BitFlag;
            lighting: BitFlag;
            onOff: BitFlag;
        };
        id: 28;
        name: "PulseWidthModulation";
        revision: 5;
        supportedFeatures: {
            onOff: true;
        };
    }>, AlterationsT>

  • Modify elements using ElementModifier.enable.

    Type Parameters

    • const FlagsT extends ElementFlags<Of<{
          attributes: {
              currentLevel: Attribute<null | number, any>;
              defaultMoveRate: OptionalWritableAttribute<null | number, any>;
              maxLevel: OptionalAttribute<number, any>;
              offTransitionTime: OptionalWritableAttribute<null | number, any>;
              onLevel: WritableAttribute<null | number, any>;
              onOffTransitionTime: OptionalWritableAttribute<number, any>;
              onTransitionTime: OptionalWritableAttribute<null | number, any>;
              options: WritableAttribute<TypeFromPartialBitSchema<{
                  coupleColorTempToLevel: BitFlag;
                  executeIfOff: BitFlag;
              }>, any>;
          };
          base: Of<{
              attributes: {
                  currentLevel: Attribute<null | number, any>;
                  defaultMoveRate: OptionalWritableAttribute<null | number, any>;
                  maxLevel: OptionalAttribute<number, any>;
                  offTransitionTime: OptionalWritableAttribute<null | number, any>;
                  onLevel: WritableAttribute<null | number, any>;
                  onOffTransitionTime: OptionalWritableAttribute<number, any>;
                  onTransitionTime: OptionalWritableAttribute<null | number, any>;
                  options: WritableAttribute<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>, any>;
              };
              commands: {
                  move: Command<TypeFromFields<{
                      moveMode: FieldType<LevelControl.MoveMode>;
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      rate: FieldType<(...) | (...)>;
                  }>, void, any>;
                  moveToLevel: Command<TypeFromFields<{
                      level: FieldType<number>;
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      transitionTime: FieldType<(...) | (...)>;
                  }>, void, any>;
                  moveToLevelWithOnOff: Command<TypeFromFields<{
                      level: FieldType<number>;
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      transitionTime: FieldType<(...) | (...)>;
                  }>, void, any>;
                  moveWithOnOff: Command<TypeFromFields<{
                      moveMode: FieldType<LevelControl.MoveMode>;
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      rate: FieldType<(...) | (...)>;
                  }>, void, any>;
                  step: Command<TypeFromFields<{
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      stepMode: FieldType<LevelControl.StepMode>;
                      stepSize: FieldType<number>;
                      transitionTime: FieldType<(...) | (...)>;
                  }>, void, any>;
                  stepWithOnOff: Command<TypeFromFields<{
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      stepMode: FieldType<LevelControl.StepMode>;
                      stepSize: FieldType<number>;
                      transitionTime: FieldType<(...) | (...)>;
                  }>, void, any>;
                  stop: Command<TypeFromFields<{
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                  }>, void, any>;
                  stopWithOnOff: Command<TypeFromFields<{
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                  }>, void, any>;
              };
              extensions: readonly [{
                  component: {
                      attributes: {
                          minLevel: OptionalAttribute<number, any>;
                          remainingTime: Attribute<number, any>;
                          startUpCurrentLevel: WritableAttribute<(...) | (...), any>;
                      };
                  };
                  flags: {
                      lighting: true;
                  };
              }, {
                  component: {
                      attributes: {
                          minLevel: OptionalAttribute<number, any>;
                      };
                  };
                  flags: {
                      lighting: false;
                  };
              }, {
                  component: {
                      attributes: {
                          currentFrequency: Attribute<number, any>;
                          maxFrequency: Attribute<number, any>;
                          minFrequency: Attribute<number, any>;
                      };
                      commands: {
                          moveToClosestFrequency: Command<TypeFromFields<(...)>, void, any>;
                      };
                  };
                  flags: {
                      frequency: true;
                  };
              }];
              features: {
                  frequency: BitFlag;
                  lighting: BitFlag;
                  onOff: BitFlag;
              };
              id: 28;
              name: "PulseWidthModulation";
              revision: 5;
          }>;
          commands: {
              move: Command<TypeFromFields<{
                  moveMode: FieldType<LevelControl.MoveMode>;
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  rate: FieldType<null | number>;
              }>, void, any>;
              moveToLevel: Command<TypeFromFields<{
                  level: FieldType<number>;
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  transitionTime: FieldType<null | number>;
              }>, void, any>;
              moveToLevelWithOnOff: Command<TypeFromFields<{
                  level: FieldType<number>;
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  transitionTime: FieldType<null | number>;
              }>, void, any>;
              moveWithOnOff: Command<TypeFromFields<{
                  moveMode: FieldType<LevelControl.MoveMode>;
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  rate: FieldType<null | number>;
              }>, void, any>;
              step: Command<TypeFromFields<{
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  stepMode: FieldType<LevelControl.StepMode>;
                  stepSize: FieldType<number>;
                  transitionTime: FieldType<null | number>;
              }>, void, any>;
              stepWithOnOff: Command<TypeFromFields<{
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  stepMode: FieldType<LevelControl.StepMode>;
                  stepSize: FieldType<number>;
                  transitionTime: FieldType<null | number>;
              }>, void, any>;
              stop: Command<TypeFromFields<{
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
              }>, void, any>;
              stopWithOnOff: Command<TypeFromFields<{
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
              }>, void, any>;
          };
          extensions: readonly [{
              component: {
                  attributes: {
                      minLevel: OptionalAttribute<number, any>;
                      remainingTime: Attribute<number, any>;
                      startUpCurrentLevel: WritableAttribute<null | number, any>;
                  };
              };
              flags: {
                  lighting: true;
              };
          }, {
              component: {
                  attributes: {
                      minLevel: OptionalAttribute<number, any>;
                  };
              };
              flags: {
                  lighting: false;
              };
          }, {
              component: {
                  attributes: {
                      currentFrequency: Attribute<number, any>;
                      maxFrequency: Attribute<number, any>;
                      minFrequency: Attribute<number, any>;
                  };
                  commands: {
                      moveToClosestFrequency: Command<TypeFromFields<{
                          frequency: FieldType<(...)>;
                      }>, void, any>;
                  };
              };
              flags: {
                  frequency: true;
              };
          }];
          features: {
              frequency: BitFlag;
              lighting: BitFlag;
              onOff: BitFlag;
          };
          id: 28;
          name: "PulseWidthModulation";
          revision: 5;
          supportedFeatures: {
              onOff: true;
          };
      }>>

    Parameters

    Returns WithFlags<Of<{
        attributes: {
            currentLevel: Attribute<null | number, any>;
            defaultMoveRate: OptionalWritableAttribute<null | number, any>;
            maxLevel: OptionalAttribute<number, any>;
            offTransitionTime: OptionalWritableAttribute<null | number, any>;
            onLevel: WritableAttribute<null | number, any>;
            onOffTransitionTime: OptionalWritableAttribute<number, any>;
            onTransitionTime: OptionalWritableAttribute<null | number, any>;
            options: WritableAttribute<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>, any>;
        };
        base: Of<{
            attributes: {
                currentLevel: Attribute<null | number, any>;
                defaultMoveRate: OptionalWritableAttribute<null | number, any>;
                maxLevel: OptionalAttribute<number, any>;
                offTransitionTime: OptionalWritableAttribute<null | number, any>;
                onLevel: WritableAttribute<null | number, any>;
                onOffTransitionTime: OptionalWritableAttribute<number, any>;
                onTransitionTime: OptionalWritableAttribute<null | number, any>;
                options: WritableAttribute<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>, any>;
            };
            commands: {
                move: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevel: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevelWithOnOff: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveWithOnOff: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                step: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stepWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stop: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
                stopWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
            };
            extensions: readonly [{
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                        remainingTime: Attribute<number, any>;
                        startUpCurrentLevel: WritableAttribute<(...) | (...), any>;
                    };
                };
                flags: {
                    lighting: true;
                };
            }, {
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                    };
                };
                flags: {
                    lighting: false;
                };
            }, {
                component: {
                    attributes: {
                        currentFrequency: Attribute<number, any>;
                        maxFrequency: Attribute<number, any>;
                        minFrequency: Attribute<number, any>;
                    };
                    commands: {
                        moveToClosestFrequency: Command<TypeFromFields<(...)>, void, any>;
                    };
                };
                flags: {
                    frequency: true;
                };
            }];
            features: {
                frequency: BitFlag;
                lighting: BitFlag;
                onOff: BitFlag;
            };
            id: 28;
            name: "PulseWidthModulation";
            revision: 5;
        }>;
        commands: {
            move: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            moveToLevel: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveToLevelWithOnOff: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveWithOnOff: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            step: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stepWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stop: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
            stopWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                    remainingTime: Attribute<number, any>;
                    startUpCurrentLevel: WritableAttribute<null | number, any>;
                };
            };
            flags: {
                lighting: true;
            };
        }, {
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                };
            };
            flags: {
                lighting: false;
            };
        }, {
            component: {
                attributes: {
                    currentFrequency: Attribute<number, any>;
                    maxFrequency: Attribute<number, any>;
                    minFrequency: Attribute<number, any>;
                };
                commands: {
                    moveToClosestFrequency: Command<TypeFromFields<{
                        frequency: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                frequency: true;
            };
        }];
        features: {
            frequency: BitFlag;
            lighting: BitFlag;
            onOff: BitFlag;
        };
        id: 28;
        name: "PulseWidthModulation";
        revision: 5;
        supportedFeatures: {
            onOff: true;
        };
    }>, FlagsT>

  • Modify elements using ElementModifier.set.

    Type Parameters

    • const ValuesT extends {
          currentLevel: null | number;
          defaultMoveRate?: null | number;
          maxLevel?: number;
          offTransitionTime?: null | number;
          onLevel: null | number;
          onOffTransitionTime?: number;
          onTransitionTime?: null | number;
          options: {
              coupleColorTempToLevel?: boolean;
              executeIfOff?: boolean;
          };
      }

    Parameters

    Returns WithValues<Of<{
        attributes: {
            currentLevel: Attribute<null | number, any>;
            defaultMoveRate: OptionalWritableAttribute<null | number, any>;
            maxLevel: OptionalAttribute<number, any>;
            offTransitionTime: OptionalWritableAttribute<null | number, any>;
            onLevel: WritableAttribute<null | number, any>;
            onOffTransitionTime: OptionalWritableAttribute<number, any>;
            onTransitionTime: OptionalWritableAttribute<null | number, any>;
            options: WritableAttribute<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>, any>;
        };
        base: Of<{
            attributes: {
                currentLevel: Attribute<null | number, any>;
                defaultMoveRate: OptionalWritableAttribute<null | number, any>;
                maxLevel: OptionalAttribute<number, any>;
                offTransitionTime: OptionalWritableAttribute<null | number, any>;
                onLevel: WritableAttribute<null | number, any>;
                onOffTransitionTime: OptionalWritableAttribute<number, any>;
                onTransitionTime: OptionalWritableAttribute<null | number, any>;
                options: WritableAttribute<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>, any>;
            };
            commands: {
                move: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevel: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevelWithOnOff: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveWithOnOff: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                step: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stepWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stop: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
                stopWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
            };
            extensions: readonly [{
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                        remainingTime: Attribute<number, any>;
                        startUpCurrentLevel: WritableAttribute<(...) | (...), any>;
                    };
                };
                flags: {
                    lighting: true;
                };
            }, {
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                    };
                };
                flags: {
                    lighting: false;
                };
            }, {
                component: {
                    attributes: {
                        currentFrequency: Attribute<number, any>;
                        maxFrequency: Attribute<number, any>;
                        minFrequency: Attribute<number, any>;
                    };
                    commands: {
                        moveToClosestFrequency: Command<TypeFromFields<(...)>, void, any>;
                    };
                };
                flags: {
                    frequency: true;
                };
            }];
            features: {
                frequency: BitFlag;
                lighting: BitFlag;
                onOff: BitFlag;
            };
            id: 28;
            name: "PulseWidthModulation";
            revision: 5;
        }>;
        commands: {
            move: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            moveToLevel: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveToLevelWithOnOff: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveWithOnOff: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            step: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stepWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stop: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
            stopWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                    remainingTime: Attribute<number, any>;
                    startUpCurrentLevel: WritableAttribute<null | number, any>;
                };
            };
            flags: {
                lighting: true;
            };
        }, {
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                };
            };
            flags: {
                lighting: false;
            };
        }, {
            component: {
                attributes: {
                    currentFrequency: Attribute<number, any>;
                    maxFrequency: Attribute<number, any>;
                    minFrequency: Attribute<number, any>;
                };
                commands: {
                    moveToClosestFrequency: Command<TypeFromFields<{
                        frequency: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                frequency: true;
            };
        }];
        features: {
            frequency: BitFlag;
            lighting: BitFlag;
            onOff: BitFlag;
        };
        id: 28;
        name: "PulseWidthModulation";
        revision: 5;
        supportedFeatures: {
            onOff: true;
        };
    }>, ValuesT>

  • Select features using ClusterComposer.compose.

    Type Parameters

    • const SelectionT extends FeatureSelection<Of<{
          attributes: {
              currentLevel: Attribute<null | number, any>;
              defaultMoveRate: OptionalWritableAttribute<null | number, any>;
              maxLevel: OptionalAttribute<number, any>;
              offTransitionTime: OptionalWritableAttribute<null | number, any>;
              onLevel: WritableAttribute<null | number, any>;
              onOffTransitionTime: OptionalWritableAttribute<number, any>;
              onTransitionTime: OptionalWritableAttribute<null | number, any>;
              options: WritableAttribute<TypeFromPartialBitSchema<{
                  coupleColorTempToLevel: BitFlag;
                  executeIfOff: BitFlag;
              }>, any>;
          };
          base: Of<{
              attributes: {
                  currentLevel: Attribute<null | number, any>;
                  defaultMoveRate: OptionalWritableAttribute<null | number, any>;
                  maxLevel: OptionalAttribute<number, any>;
                  offTransitionTime: OptionalWritableAttribute<null | number, any>;
                  onLevel: WritableAttribute<null | number, any>;
                  onOffTransitionTime: OptionalWritableAttribute<number, any>;
                  onTransitionTime: OptionalWritableAttribute<null | number, any>;
                  options: WritableAttribute<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>, any>;
              };
              commands: {
                  move: Command<TypeFromFields<{
                      moveMode: FieldType<LevelControl.MoveMode>;
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      rate: FieldType<(...) | (...)>;
                  }>, void, any>;
                  moveToLevel: Command<TypeFromFields<{
                      level: FieldType<number>;
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      transitionTime: FieldType<(...) | (...)>;
                  }>, void, any>;
                  moveToLevelWithOnOff: Command<TypeFromFields<{
                      level: FieldType<number>;
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      transitionTime: FieldType<(...) | (...)>;
                  }>, void, any>;
                  moveWithOnOff: Command<TypeFromFields<{
                      moveMode: FieldType<LevelControl.MoveMode>;
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      rate: FieldType<(...) | (...)>;
                  }>, void, any>;
                  step: Command<TypeFromFields<{
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      stepMode: FieldType<LevelControl.StepMode>;
                      stepSize: FieldType<number>;
                      transitionTime: FieldType<(...) | (...)>;
                  }>, void, any>;
                  stepWithOnOff: Command<TypeFromFields<{
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                      stepMode: FieldType<LevelControl.StepMode>;
                      stepSize: FieldType<number>;
                      transitionTime: FieldType<(...) | (...)>;
                  }>, void, any>;
                  stop: Command<TypeFromFields<{
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                  }>, void, any>;
                  stopWithOnOff: Command<TypeFromFields<{
                      optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                      optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                  }>, void, any>;
              };
              extensions: readonly [{
                  component: {
                      attributes: {
                          minLevel: OptionalAttribute<number, any>;
                          remainingTime: Attribute<number, any>;
                          startUpCurrentLevel: WritableAttribute<(...) | (...), any>;
                      };
                  };
                  flags: {
                      lighting: true;
                  };
              }, {
                  component: {
                      attributes: {
                          minLevel: OptionalAttribute<number, any>;
                      };
                  };
                  flags: {
                      lighting: false;
                  };
              }, {
                  component: {
                      attributes: {
                          currentFrequency: Attribute<number, any>;
                          maxFrequency: Attribute<number, any>;
                          minFrequency: Attribute<number, any>;
                      };
                      commands: {
                          moveToClosestFrequency: Command<TypeFromFields<(...)>, void, any>;
                      };
                  };
                  flags: {
                      frequency: true;
                  };
              }];
              features: {
                  frequency: BitFlag;
                  lighting: BitFlag;
                  onOff: BitFlag;
              };
              id: 28;
              name: "PulseWidthModulation";
              revision: 5;
          }>;
          commands: {
              move: Command<TypeFromFields<{
                  moveMode: FieldType<LevelControl.MoveMode>;
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  rate: FieldType<null | number>;
              }>, void, any>;
              moveToLevel: Command<TypeFromFields<{
                  level: FieldType<number>;
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  transitionTime: FieldType<null | number>;
              }>, void, any>;
              moveToLevelWithOnOff: Command<TypeFromFields<{
                  level: FieldType<number>;
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  transitionTime: FieldType<null | number>;
              }>, void, any>;
              moveWithOnOff: Command<TypeFromFields<{
                  moveMode: FieldType<LevelControl.MoveMode>;
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  rate: FieldType<null | number>;
              }>, void, any>;
              step: Command<TypeFromFields<{
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  stepMode: FieldType<LevelControl.StepMode>;
                  stepSize: FieldType<number>;
                  transitionTime: FieldType<null | number>;
              }>, void, any>;
              stepWithOnOff: Command<TypeFromFields<{
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  stepMode: FieldType<LevelControl.StepMode>;
                  stepSize: FieldType<number>;
                  transitionTime: FieldType<null | number>;
              }>, void, any>;
              stop: Command<TypeFromFields<{
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
              }>, void, any>;
              stopWithOnOff: Command<TypeFromFields<{
                  optionsMask: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
                  optionsOverride: FieldType<TypeFromPartialBitSchema<{
                      coupleColorTempToLevel: BitFlag;
                      executeIfOff: BitFlag;
                  }>>;
              }>, void, any>;
          };
          extensions: readonly [{
              component: {
                  attributes: {
                      minLevel: OptionalAttribute<number, any>;
                      remainingTime: Attribute<number, any>;
                      startUpCurrentLevel: WritableAttribute<null | number, any>;
                  };
              };
              flags: {
                  lighting: true;
              };
          }, {
              component: {
                  attributes: {
                      minLevel: OptionalAttribute<number, any>;
                  };
              };
              flags: {
                  lighting: false;
              };
          }, {
              component: {
                  attributes: {
                      currentFrequency: Attribute<number, any>;
                      maxFrequency: Attribute<number, any>;
                      minFrequency: Attribute<number, any>;
                  };
                  commands: {
                      moveToClosestFrequency: Command<TypeFromFields<{
                          frequency: FieldType<(...)>;
                      }>, void, any>;
                  };
              };
              flags: {
                  frequency: true;
              };
          }];
          features: {
              frequency: BitFlag;
              lighting: BitFlag;
              onOff: BitFlag;
          };
          id: 28;
          name: "PulseWidthModulation";
          revision: 5;
          supportedFeatures: {
              onOff: true;
          };
      }>>

    Parameters

    Returns Of<Of<{
        attributes: {
            currentLevel: Attribute<null | number, any>;
            defaultMoveRate: OptionalWritableAttribute<null | number, any>;
            maxLevel: OptionalAttribute<number, any>;
            offTransitionTime: OptionalWritableAttribute<null | number, any>;
            onLevel: WritableAttribute<null | number, any>;
            onOffTransitionTime: OptionalWritableAttribute<number, any>;
            onTransitionTime: OptionalWritableAttribute<null | number, any>;
            options: WritableAttribute<TypeFromPartialBitSchema<{
                coupleColorTempToLevel: BitFlag;
                executeIfOff: BitFlag;
            }>, any>;
        };
        base: Of<{
            attributes: {
                currentLevel: Attribute<null | number, any>;
                defaultMoveRate: OptionalWritableAttribute<null | number, any>;
                maxLevel: OptionalAttribute<number, any>;
                offTransitionTime: OptionalWritableAttribute<null | number, any>;
                onLevel: WritableAttribute<null | number, any>;
                onOffTransitionTime: OptionalWritableAttribute<number, any>;
                onTransitionTime: OptionalWritableAttribute<null | number, any>;
                options: WritableAttribute<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>, any>;
            };
            commands: {
                move: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevel: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveToLevelWithOnOff: Command<TypeFromFields<{
                    level: FieldType<number>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                moveWithOnOff: Command<TypeFromFields<{
                    moveMode: FieldType<LevelControl.MoveMode>;
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    rate: FieldType<(...) | (...)>;
                }>, void, any>;
                step: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stepWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                    stepMode: FieldType<LevelControl.StepMode>;
                    stepSize: FieldType<number>;
                    transitionTime: FieldType<(...) | (...)>;
                }>, void, any>;
                stop: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
                stopWithOnOff: Command<TypeFromFields<{
                    optionsMask: FieldType<TypeFromPartialBitSchema<(...)>>;
                    optionsOverride: FieldType<TypeFromPartialBitSchema<(...)>>;
                }>, void, any>;
            };
            extensions: readonly [{
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                        remainingTime: Attribute<number, any>;
                        startUpCurrentLevel: WritableAttribute<(...) | (...), any>;
                    };
                };
                flags: {
                    lighting: true;
                };
            }, {
                component: {
                    attributes: {
                        minLevel: OptionalAttribute<number, any>;
                    };
                };
                flags: {
                    lighting: false;
                };
            }, {
                component: {
                    attributes: {
                        currentFrequency: Attribute<number, any>;
                        maxFrequency: Attribute<number, any>;
                        minFrequency: Attribute<number, any>;
                    };
                    commands: {
                        moveToClosestFrequency: Command<TypeFromFields<(...)>, void, any>;
                    };
                };
                flags: {
                    frequency: true;
                };
            }];
            features: {
                frequency: BitFlag;
                lighting: BitFlag;
                onOff: BitFlag;
            };
            id: 28;
            name: "PulseWidthModulation";
            revision: 5;
        }>;
        commands: {
            move: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            moveToLevel: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveToLevelWithOnOff: Command<TypeFromFields<{
                level: FieldType<number>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            moveWithOnOff: Command<TypeFromFields<{
                moveMode: FieldType<LevelControl.MoveMode>;
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                rate: FieldType<null | number>;
            }>, void, any>;
            step: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stepWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                stepMode: FieldType<LevelControl.StepMode>;
                stepSize: FieldType<number>;
                transitionTime: FieldType<null | number>;
            }>, void, any>;
            stop: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
            stopWithOnOff: Command<TypeFromFields<{
                optionsMask: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
                optionsOverride: FieldType<TypeFromPartialBitSchema<{
                    coupleColorTempToLevel: BitFlag;
                    executeIfOff: BitFlag;
                }>>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                    remainingTime: Attribute<number, any>;
                    startUpCurrentLevel: WritableAttribute<null | number, any>;
                };
            };
            flags: {
                lighting: true;
            };
        }, {
            component: {
                attributes: {
                    minLevel: OptionalAttribute<number, any>;
                };
            };
            flags: {
                lighting: false;
            };
        }, {
            component: {
                attributes: {
                    currentFrequency: Attribute<number, any>;
                    maxFrequency: Attribute<number, any>;
                    minFrequency: Attribute<number, any>;
                };
                commands: {
                    moveToClosestFrequency: Command<TypeFromFields<{
                        frequency: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                frequency: true;
            };
        }];
        features: {
            frequency: BitFlag;
            lighting: BitFlag;
            onOff: BitFlag;
        };
        id: 28;
        name: "PulseWidthModulation";
        revision: 5;
        supportedFeatures: {
            onOff: true;
        };
    }>, SelectionT>