SwitchBehavior: Type<Of<{
    attributes: {
        currentPosition: Attribute<number, any>;
        numberOfPositions: FixedAttribute<number, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                multiPressMax: FixedAttribute<number, any>;
            };
            events: {
                multiPressComplete: Event<TypeFromFields<{
                    previousPosition: FieldType<(...)>;
                    totalNumberOfPressesCounted: FieldType<(...)>;
                }>, any>;
                multiPressOngoing: Event<TypeFromFields<{
                    currentNumberOfPressesCounted: FieldType<(...)>;
                    newPosition: FieldType<(...)>;
                }>, any>;
            };
        };
        flags: {
            momentarySwitchMultiPress: true;
        };
    }, {
        component: {
            events: {
                switchLatched: Event<TypeFromFields<{
                    newPosition: FieldType<(...)>;
                }>, any>;
            };
        };
        flags: {
            latchingSwitch: true;
        };
    }, {
        component: {
            events: {
                initialPress: Event<TypeFromFields<{
                    newPosition: FieldType<(...)>;
                }>, any>;
            };
        };
        flags: {
            momentarySwitch: true;
        };
    }, {
        component: {
            events: {
                longPress: Event<TypeFromFields<{
                    newPosition: FieldType<(...)>;
                }>, any>;
                longRelease: Event<TypeFromFields<{
                    previousPosition: FieldType<(...)>;
                }>, any>;
            };
        };
        flags: {
            momentarySwitchLongPress: true;
        };
    }, {
        component: {
            events: {
                shortRelease: Event<TypeFromFields<{
                    previousPosition: FieldType<(...)>;
                }>, any>;
            };
        };
        flags: {
            momentarySwitchRelease: true;
        };
    }, {
        component: false;
        flags: {
            momentarySwitch: false;
            momentarySwitchRelease: true;
        };
    }, {
        component: false;
        flags: {
            momentarySwitch: false;
            momentarySwitchLongPress: true;
        };
    }, {
        component: false;
        flags: {
            momentarySwitchLongPress: true;
            momentarySwitchRelease: false;
        };
    }, {
        component: false;
        flags: {
            momentarySwitch: false;
            momentarySwitchMultiPress: true;
        };
    }, {
        component: false;
        flags: {
            momentarySwitchMultiPress: true;
            momentarySwitchRelease: false;
        };
    }, {
        component: false;
        flags: {
            latchingSwitch: true;
            momentarySwitch: true;
        };
    }, {
        component: false;
        flags: {
            latchingSwitch: false;
            momentarySwitch: false;
        };
    }];
    features: {
        latchingSwitch: BitFlag;
        momentarySwitch: BitFlag;
        momentarySwitchLongPress: BitFlag;
        momentarySwitchMultiPress: BitFlag;
        momentarySwitchRelease: BitFlag;
    };
    id: 59;
    name: "Switch";
    revision: 1;
}>, typeof ClusterBehavior, {
    components: never[];
}> = ...

SwitchBehavior is the base class for objects that support interaction with Switch.Cluster.

Switch.Cluster requires you to enable one or more optional features. You can do so using SwitchBehavior.with.