This cluster provides an interface for controlling a characteristic of a device that can be set to a level, for example the brightness of a light, the degree of closure of a door, or the power output of a heater.

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

MatterSpecification.v13.Cluster § 1.6

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: 8;
        name: "LevelControl";
        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<8, "ClusterId">;
    name: "LevelControl";
    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: 8;
            name: "LevelControl";
            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: 8;
        name: "LevelControl";
        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: 8;
            name: "LevelControl";
            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: 8;
        name: "LevelControl";
        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: 8;
            name: "LevelControl";
            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: 8;
        name: "LevelControl";
        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: 8;
            name: "LevelControl";
            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: 8;
        name: "LevelControl";
        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: 8;
    name: "LevelControl";
    revision: 5;
}>

Type declaration

  • Readonlyattributes: {
        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>;
    }
    • ReadonlycurrentLevel: Attribute<null | number, any>

      Indicates the current level of this device. The meaning of 'level' is device dependent.

      MatterSpecification.v13.Cluster § 1.6.6.2

    • ReadonlydefaultMoveRate: OptionalWritableAttribute<null | number, any>

      Indicates the movement rate, in units per second, when a Move command is received with a null value Rate parameter.

      MatterSpecification.v13.Cluster § 1.6.6.14

    • ReadonlymaxLevel: OptionalAttribute<number, any>

      Indicates the maximum value of CurrentLevel that is capable of being assigned.

      MatterSpecification.v13.Cluster § 1.6.6.5

    • ReadonlyoffTransitionTime: OptionalWritableAttribute<null | number, any>

      Indicates the time taken to move the current level from the maximum level to the minimum level when an Off command is received by an On/Off cluster on the same endpoint. It is specified in 1/10ths of a second. If this attribute is not implemented, or contains a null value, the OnOffTransitionTime shall be used instead.

      MatterSpecification.v13.Cluster § 1.6.6.13

    • ReadonlyonLevel: WritableAttribute<null | number, any>

      Indicates the value that the CurrentLevel attribute is set to when the OnOff attribute of an On/Off cluster on the same endpoint is set to TRUE, as a result of processing an On/Off cluster command. If the OnLevel attribute is not implemented, or is set to the null value, it has no effect. For more details see Effect of On/Off Commands on the CurrentLevel Attribute.

      OnLevel represents a mandatory field that was previously not present or optional. Implementers should be aware that older devices may not implement it.

      MatterSpecification.v13.Cluster § 1.6.6.11

    • ReadonlyonOffTransitionTime: OptionalWritableAttribute<number, any>

      Indicates the time taken to move to or from the target level when On or Off commands are received by an On/Off cluster on the same endpoint. It is specified in 1/10ths of a second.

      The actual time taken SHOULD be as close to OnOffTransitionTime as the device is able. Please note that if the device is not able to move at a variable rate, the OnOffTransitionTime attribute SHOULD NOT be implemented.

      MatterSpecification.v13.Cluster § 1.6.6.10

    • ReadonlyonTransitionTime: OptionalWritableAttribute<null | number, any>

      Indicates the time taken to move the current level from the minimum level to the maximum level when an On command is received by an On/Off cluster on the same endpoint. It is specified in 1/10ths of a second. If this attribute is not implemented, or contains a null value, the OnOffTransitionTime shall be used instead.

      MatterSpecification.v13.Cluster § 1.6.6.12

    • Readonlyoptions: WritableAttribute<TypeFromPartialBitSchema<{
          coupleColorTempToLevel: BitFlag;
          executeIfOff: BitFlag;
      }>, any>

      Indicates the selected options of the device.

      The Options attribute is a bitmap that determines the default behavior of some cluster commands. Each command that is dependent on the Options attribute shall first construct a temporary Options bitmap that is in effect during the command processing. The temporary Options bitmap has the same format and meaning as the Options attribute, but includes any bits that may be overridden by command fields.

      This attribute is meant to be changed only during commissioning.

      Command execution shall NOT continue beyond the Options processing if all of these criteria are true:

      • The command is one of the ‘without On/Off’ commands: Move, Move to Level, Step, or Stop.

      • The On/Off cluster exists on the same endpoint as this cluster.

      • The OnOff attribute of the On/Off cluster, on this endpoint, is FALSE.

      • The value of the ExecuteIfOff bit is 0.

      MatterSpecification.v13.Cluster § 1.6.6.9

  • Readonlycommands: {
        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>;
    }
  • Readonlyextensions: 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;
        };
    }]

    This metadata controls which LevelControlCluster elements matter.js activates for specific feature combinations.

  • Readonlyfeatures: {
        frequency: BitFlag;
        lighting: BitFlag;
        onOff: BitFlag;
    }
    • Readonlyfrequency: BitFlag

      Frequency

      NOTE The Frequency feature is provisional.

      MatterSpecification.v13.Cluster § 1.6.4.3

    • Readonlylighting: BitFlag

      Lighting

      This feature supports an interface for controlling the level of a light source. For the CurrentLevel attribute:

      A value of 0x00 shall NOT be used.

      A value of 0x01 shall indicate the minimum level that can be attained on a device. A value of 0xFE shall indicate the maximum level that can be attained on a device. A value of null shall represent an undefined value.

      All other values are application specific gradations from the minimum to the maximum level.

      MatterSpecification.v13.Cluster § 1.6.4.2

    • ReadonlyonOff: BitFlag

      OnOff

      Dependency with the On/Off cluster

  • Readonlyid: 8
  • Readonlyname: "LevelControl"
  • Readonlyrevision: 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;
}

Type declaration

  • Readonlyfrequency: BitFlag

    Frequency

    NOTE The Frequency feature is provisional.

    MatterSpecification.v13.Cluster § 1.6.4.3

  • Readonlylighting: BitFlag

    Lighting

    This feature supports an interface for controlling the level of a light source. For the CurrentLevel attribute:

    A value of 0x00 shall NOT be used.

    A value of 0x01 shall indicate the minimum level that can be attained on a device. A value of 0xFE shall indicate the maximum level that can be attained on a device. A value of null shall represent an undefined value.

    All other values are application specific gradations from the minimum to the maximum level.

    MatterSpecification.v13.Cluster § 1.6.4.2

  • ReadonlyonOff: BitFlag

    OnOff

    Dependency with the On/Off cluster

id: Branded<8, "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: 8;
              name: "LevelControl";
              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: 8;
          name: "LevelControl";
          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: 8;
            name: "LevelControl";
            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: 8;
        name: "LevelControl";
        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: 8;
              name: "LevelControl";
              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: 8;
          name: "LevelControl";
          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: 8;
            name: "LevelControl";
            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: 8;
        name: "LevelControl";
        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: 8;
            name: "LevelControl";
            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: 8;
        name: "LevelControl";
        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: 8;
              name: "LevelControl";
              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: 8;
          name: "LevelControl";
          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: 8;
            name: "LevelControl";
            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: 8;
        name: "LevelControl";
        revision: 5;
        supportedFeatures: {
            onOff: true;
        };
    }>, SelectionT>