This is the default server implementation of NetworkCommissioningBehavior.

The Matter specification requires the NetworkCommissioning cluster to support features we do not enable by default. You should use NetworkCommissioningServer.with to specialize the class for the features your implementation supports.

Hierarchy (view full)

Constructors

Properties

[reference]: Datasource<StateType>
agent: Agent
cluster: never

The implemented cluster.

context: ActionContext
endpoint: Endpoint<Empty>
events: EventEmitter & Omit<ClusterEvents<Of<{
    attributes: {};
    commands: {};
    events: {};
    id: 0;
    name: "Unknown";
    revision: 0;
}>, typeof ClusterBehavior>, never> & {
    interfaceEnabled$Changing: ClusterEvents.AttributeObservable<WritableAttribute<boolean, any>>;
    lastConnectErrorValue$Changing: ClusterEvents.AttributeObservable<Attribute<null | number, any>>;
    lastNetworkId$Changing: ClusterEvents.AttributeObservable<Attribute<null | Uint8Array, any>>;
    lastNetworkingStatus$Changing: ClusterEvents.AttributeObservable<Attribute<null | NetworkCommissioning.NetworkCommissioningStatus, any>>;
    maxNetworks$Changing: ClusterEvents.AttributeObservable<FixedAttribute<number, any>>;
    networks$Changing: ClusterEvents.AttributeObservable<Attribute<TypeFromFields<{
        connected: FieldType<boolean>;
        networkId: FieldType<Uint8Array>;
    }>[], any>>;
} & {} & {
    interfaceEnabled$Changed: ClusterEvents.AttributeObservable<WritableAttribute<boolean, any>>;
    lastConnectErrorValue$Changed: ClusterEvents.AttributeObservable<Attribute<null | number, any>>;
    lastNetworkId$Changed: ClusterEvents.AttributeObservable<Attribute<null | Uint8Array, any>>;
    lastNetworkingStatus$Changed: ClusterEvents.AttributeObservable<Attribute<null | NetworkCommissioning.NetworkCommissioningStatus, any>>;
    maxNetworks$Changed: ClusterEvents.AttributeObservable<FixedAttribute<number, any>>;
    networks$Changed: ClusterEvents.AttributeObservable<Attribute<TypeFromFields<{
        connected: FieldType<boolean>;
        networkId: FieldType<Uint8Array>;
    }>[], any>>;
} & {} & {} & {}

Access the behavior's events.

features: TypeFromBitSchema<{}> & TypeFromBitSchema<{
    ethernetNetworkInterface: BitFlag;
    threadNetworkInterface: BitFlag;
    wiFiNetworkInterface: BitFlag;
}>

Supported features as a flag object.

session: SecureSession
state: Omit<ClusterState.Type<Of<{
    attributes: {};
    commands: {};
    events: {};
    id: 0;
    name: "Unknown";
    revision: 0;
}>, typeof ClusterBehavior>, never> & {
    interfaceEnabled: boolean;
    lastConnectErrorValue: null | number;
    lastNetworkId: null | Uint8Array;
    lastNetworkingStatus: null | NetworkCommissioning.NetworkCommissioningStatus;
    networks: TypeFromFields<{
        connected: FieldType<boolean>;
        networkId: FieldType<Uint8Array>;
    }>[];
} & {} & {
    maxNetworks: number;
} & {}

Access the behavior's state.

cluster: Of<{
    attributes: {
        interfaceEnabled: WritableAttribute<boolean, any>;
        lastConnectErrorValue: Attribute<null | number, any>;
        lastNetworkId: Attribute<null | Uint8Array, any>;
        lastNetworkingStatus: Attribute<null | NetworkCommissioning.NetworkCommissioningStatus, any>;
        maxNetworks: FixedAttribute<number, any>;
        networks: Attribute<TypeFromFields<{
            connected: FieldType<boolean>;
            networkId: FieldType<Uint8Array>;
        }>[], any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                connectMaxTimeSeconds: FixedAttribute<number, any>;
                scanMaxTimeSeconds: FixedAttribute<number, any>;
            };
            commands: {
                connectNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...) | (...)>;
                    networkId: FieldType<Uint8Array>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<string>;
                    errorValue: FieldType<(...) | (...)>;
                    networkingStatus: FieldType<NetworkCommissioning.NetworkCommissioningStatus>;
                }>, any>;
                removeNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...) | (...)>;
                    networkId: FieldType<Uint8Array>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<string>;
                    networkIndex: OptionalFieldType<number>;
                    networkingStatus: FieldType<NetworkCommissioning.NetworkCommissioningStatus>;
                }>, any>;
                reorderNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...) | (...)>;
                    networkId: FieldType<Uint8Array>;
                    networkIndex: FieldType<number>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<string>;
                    networkIndex: OptionalFieldType<number>;
                    networkingStatus: FieldType<NetworkCommissioning.NetworkCommissioningStatus>;
                }>, any>;
                scanNetworks: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...) | (...)>;
                    ssid: OptionalFieldType<(...) | (...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<string>;
                    networkingStatus: FieldType<NetworkCommissioning.NetworkCommissioningStatus>;
                    threadScanResults: OptionalFieldType<(...)[]>;
                    wiFiScanResults: OptionalFieldType<(...)[]>;
                }>, any>;
            };
        };
        flags: {
            wiFiNetworkInterface: true;
        };
    }, {
        component: {
            attributes: {
                connectMaxTimeSeconds: FixedAttribute<number, any>;
                scanMaxTimeSeconds: FixedAttribute<number, any>;
            };
            commands: {
                connectNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...) | (...)>;
                    networkId: FieldType<Uint8Array>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<string>;
                    errorValue: FieldType<(...) | (...)>;
                    networkingStatus: FieldType<NetworkCommissioning.NetworkCommissioningStatus>;
                }>, any>;
                removeNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...) | (...)>;
                    networkId: FieldType<Uint8Array>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<string>;
                    networkIndex: OptionalFieldType<number>;
                    networkingStatus: FieldType<NetworkCommissioning.NetworkCommissioningStatus>;
                }>, any>;
                reorderNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...) | (...)>;
                    networkId: FieldType<Uint8Array>;
                    networkIndex: FieldType<number>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<string>;
                    networkIndex: OptionalFieldType<number>;
                    networkingStatus: FieldType<NetworkCommissioning.NetworkCommissioningStatus>;
                }>, any>;
                scanNetworks: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...) | (...)>;
                    ssid: OptionalFieldType<(...) | (...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<string>;
                    networkingStatus: FieldType<NetworkCommissioning.NetworkCommissioningStatus>;
                    threadScanResults: OptionalFieldType<(...)[]>;
                    wiFiScanResults: OptionalFieldType<(...)[]>;
                }>, any>;
            };
        };
        flags: {
            threadNetworkInterface: true;
        };
    }, {
        component: {
            attributes: {
                supportedWiFiBands: FixedAttribute<NetworkCommissioning.WiFiBand[], any>;
            };
            commands: {
                addOrUpdateWiFiNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...) | (...)>;
                    credentials: FieldType<Uint8Array>;
                    ssid: FieldType<Uint8Array>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<string>;
                    networkIndex: OptionalFieldType<number>;
                    networkingStatus: FieldType<NetworkCommissioning.NetworkCommissioningStatus>;
                }>, any>;
            };
        };
        flags: {
            wiFiNetworkInterface: true;
        };
    }, {
        component: {
            attributes: {
                supportedThreadFeatures: FixedAttribute<TypeFromPartialBitSchema<{
                    isBorderRouterCapable: BitFlag;
                    isFullThreadDevice: BitFlag;
                    isRouterCapable: BitFlag;
                    isSleepyEndDeviceCapable: BitFlag;
                    isSynchronizedSleepyEndDeviceCapable: BitFlag;
                }>, any>;
                threadVersion: FixedAttribute<number, any>;
            };
            commands: {
                addOrUpdateThreadNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...) | (...)>;
                    operationalDataset: FieldType<Uint8Array>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<string>;
                    networkIndex: OptionalFieldType<number>;
                    networkingStatus: FieldType<NetworkCommissioning.NetworkCommissioningStatus>;
                }>, any>;
            };
        };
        flags: {
            threadNetworkInterface: true;
        };
    }, {
        component: false;
        flags: {
            threadNetworkInterface: true;
            wiFiNetworkInterface: true;
        };
    }, {
        component: false;
        flags: {
            ethernetNetworkInterface: true;
            wiFiNetworkInterface: true;
        };
    }, {
        component: false;
        flags: {
            ethernetNetworkInterface: true;
            threadNetworkInterface: true;
        };
    }, {
        component: false;
        flags: {
            ethernetNetworkInterface: false;
            threadNetworkInterface: false;
            wiFiNetworkInterface: false;
        };
    }];
    features: {
        ethernetNetworkInterface: BitFlag;
        threadNetworkInterface: BitFlag;
        wiFiNetworkInterface: BitFlag;
    };
    id: 49;
    name: "NetworkCommissioning";
    revision: 2;
}>

Base cluster state include all attribute values but may be extended by subclasses.

defaults: ClusterState.Type<Of<{
    attributes: {
        interfaceEnabled: WritableAttribute<boolean, any>;
        lastConnectErrorValue: Attribute<null | number, any>;
        lastNetworkId: Attribute<null | Uint8Array, any>;
        lastNetworkingStatus: Attribute<null | NetworkCommissioning.NetworkCommissioningStatus, any>;
        maxNetworks: FixedAttribute<number, any>;
        networks: Attribute<TypeFromFields<{
            connected: FieldType<boolean>;
            networkId: FieldType<Uint8Array>;
        }>[], any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                connectMaxTimeSeconds: FixedAttribute<number, any>;
                scanMaxTimeSeconds: FixedAttribute<number, any>;
            };
            commands: {
                connectNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    networkId: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    errorValue: FieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
                removeNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    networkId: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkIndex: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
                reorderNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    networkId: FieldType<(...)>;
                    networkIndex: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkIndex: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
                scanNetworks: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    ssid: OptionalFieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                    threadScanResults: OptionalFieldType<(...)>;
                    wiFiScanResults: OptionalFieldType<(...)>;
                }>, any>;
            };
        };
        flags: {
            wiFiNetworkInterface: true;
        };
    }, {
        component: {
            attributes: {
                connectMaxTimeSeconds: FixedAttribute<number, any>;
                scanMaxTimeSeconds: FixedAttribute<number, any>;
            };
            commands: {
                connectNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    networkId: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    errorValue: FieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
                removeNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    networkId: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkIndex: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
                reorderNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    networkId: FieldType<(...)>;
                    networkIndex: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkIndex: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
                scanNetworks: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    ssid: OptionalFieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                    threadScanResults: OptionalFieldType<(...)>;
                    wiFiScanResults: OptionalFieldType<(...)>;
                }>, any>;
            };
        };
        flags: {
            threadNetworkInterface: true;
        };
    }, {
        component: {
            attributes: {
                supportedWiFiBands: FixedAttribute<NetworkCommissioning.WiFiBand[], any>;
            };
            commands: {
                addOrUpdateWiFiNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    credentials: FieldType<(...)>;
                    ssid: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkIndex: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
            };
        };
        flags: {
            wiFiNetworkInterface: true;
        };
    }, {
        component: {
            attributes: {
                supportedThreadFeatures: FixedAttribute<TypeFromPartialBitSchema<{
                    isBorderRouterCapable: BitFlag;
                    isFullThreadDevice: BitFlag;
                    isRouterCapable: BitFlag;
                    isSleepyEndDeviceCapable: BitFlag;
                    isSynchronizedSleepyEndDeviceCapable: BitFlag;
                }>, any>;
                threadVersion: FixedAttribute<number, any>;
            };
            commands: {
                addOrUpdateThreadNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    operationalDataset: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkIndex: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
            };
        };
        flags: {
            threadNetworkInterface: true;
        };
    }, {
        component: false;
        flags: {
            threadNetworkInterface: true;
            wiFiNetworkInterface: true;
        };
    }, {
        component: false;
        flags: {
            ethernetNetworkInterface: true;
            wiFiNetworkInterface: true;
        };
    }, {
        component: false;
        flags: {
            ethernetNetworkInterface: true;
            threadNetworkInterface: true;
        };
    }, {
        component: false;
        flags: {
            ethernetNetworkInterface: false;
            threadNetworkInterface: false;
            wiFiNetworkInterface: false;
        };
    }];
    features: {
        ethernetNetworkInterface: BitFlag;
        threadNetworkInterface: BitFlag;
        wiFiNetworkInterface: BitFlag;
    };
    id: 49;
    name: "NetworkCommissioning";
    revision: 2;
}>, Type<Of<{
    attributes: {};
    commands: {};
    events: {};
    id: 0;
    name: "Unknown";
    revision: 0;
}>, typeof ClusterBehavior, NetworkCommissioningInterface>>
dependencies?: Iterable<Type, any, any>
early: boolean
Events: ClusterEvents.Type<Of<{
    attributes: {
        interfaceEnabled: WritableAttribute<boolean, any>;
        lastConnectErrorValue: Attribute<null | number, any>;
        lastNetworkId: Attribute<null | Uint8Array, any>;
        lastNetworkingStatus: Attribute<null | NetworkCommissioning.NetworkCommissioningStatus, any>;
        maxNetworks: FixedAttribute<number, any>;
        networks: Attribute<TypeFromFields<{
            connected: FieldType<boolean>;
            networkId: FieldType<Uint8Array>;
        }>[], any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                connectMaxTimeSeconds: FixedAttribute<number, any>;
                scanMaxTimeSeconds: FixedAttribute<number, any>;
            };
            commands: {
                connectNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    networkId: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    errorValue: FieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
                removeNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    networkId: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkIndex: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
                reorderNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    networkId: FieldType<(...)>;
                    networkIndex: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkIndex: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
                scanNetworks: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    ssid: OptionalFieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                    threadScanResults: OptionalFieldType<(...)>;
                    wiFiScanResults: OptionalFieldType<(...)>;
                }>, any>;
            };
        };
        flags: {
            wiFiNetworkInterface: true;
        };
    }, {
        component: {
            attributes: {
                connectMaxTimeSeconds: FixedAttribute<number, any>;
                scanMaxTimeSeconds: FixedAttribute<number, any>;
            };
            commands: {
                connectNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    networkId: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    errorValue: FieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
                removeNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    networkId: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkIndex: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
                reorderNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    networkId: FieldType<(...)>;
                    networkIndex: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkIndex: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
                scanNetworks: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    ssid: OptionalFieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                    threadScanResults: OptionalFieldType<(...)>;
                    wiFiScanResults: OptionalFieldType<(...)>;
                }>, any>;
            };
        };
        flags: {
            threadNetworkInterface: true;
        };
    }, {
        component: {
            attributes: {
                supportedWiFiBands: FixedAttribute<NetworkCommissioning.WiFiBand[], any>;
            };
            commands: {
                addOrUpdateWiFiNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    credentials: FieldType<(...)>;
                    ssid: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkIndex: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
            };
        };
        flags: {
            wiFiNetworkInterface: true;
        };
    }, {
        component: {
            attributes: {
                supportedThreadFeatures: FixedAttribute<TypeFromPartialBitSchema<{
                    isBorderRouterCapable: BitFlag;
                    isFullThreadDevice: BitFlag;
                    isRouterCapable: BitFlag;
                    isSleepyEndDeviceCapable: BitFlag;
                    isSynchronizedSleepyEndDeviceCapable: BitFlag;
                }>, any>;
                threadVersion: FixedAttribute<number, any>;
            };
            commands: {
                addOrUpdateThreadNetwork: Command<TypeFromFields<{
                    breadcrumb: OptionalFieldType<(...)>;
                    operationalDataset: FieldType<(...)>;
                }>, TypeFromFields<{
                    debugText: OptionalFieldType<(...)>;
                    networkIndex: OptionalFieldType<(...)>;
                    networkingStatus: FieldType<(...)>;
                }>, any>;
            };
        };
        flags: {
            threadNetworkInterface: true;
        };
    }, {
        component: false;
        flags: {
            threadNetworkInterface: true;
            wiFiNetworkInterface: true;
        };
    }, {
        component: false;
        flags: {
            ethernetNetworkInterface: true;
            wiFiNetworkInterface: true;
        };
    }, {
        component: false;
        flags: {
            ethernetNetworkInterface: true;
            threadNetworkInterface: true;
        };
    }, {
        component: false;
        flags: {
            ethernetNetworkInterface: false;
            threadNetworkInterface: false;
            wiFiNetworkInterface: false;
        };
    }];
    features: {
        ethernetNetworkInterface: BitFlag;
        threadNetworkInterface: BitFlag;
        wiFiNetworkInterface: BitFlag;
    };
    id: 49;
    name: "NetworkCommissioning";
    revision: 2;
}>, Type<Of<{
    attributes: {};
    commands: {};
    events: {};
    id: 0;
    name: "Unknown";
    revision: 0;
}>, typeof ClusterBehavior, NetworkCommissioningInterface>>
ExtensionInterface: {}
id

The behavior ID for ClusterBehaviors is the name of the cluster.

Internal: (new () => {})

Type declaration

    • new (): {}
    • Implementation of internal state. Subclasses may override to extend.

      Returns {}

    name: string
    schema?: Schema
    State: (new () => ClusterState.Type<Of<{
        attributes: {
            interfaceEnabled: WritableAttribute<boolean, any>;
            lastConnectErrorValue: Attribute<null | number, any>;
            lastNetworkId: Attribute<null | Uint8Array, any>;
            lastNetworkingStatus: Attribute<null | NetworkCommissioning.NetworkCommissioningStatus, any>;
            maxNetworks: FixedAttribute<number, any>;
            networks: Attribute<TypeFromFields<{
                connected: FieldType<boolean>;
                networkId: FieldType<Uint8Array>;
            }>[], any>;
        };
        extensions: readonly [{
            component: {
                attributes: {
                    connectMaxTimeSeconds: FixedAttribute<number, any>;
                    scanMaxTimeSeconds: FixedAttribute<number, any>;
                };
                commands: {
                    connectNetwork: Command<TypeFromFields<{
                        breadcrumb: ...;
                        networkId: ...;
                    }>, TypeFromFields<{
                        debugText: ...;
                        errorValue: ...;
                        networkingStatus: ...;
                    }>, any>;
                    removeNetwork: Command<TypeFromFields<{
                        breadcrumb: ...;
                        networkId: ...;
                    }>, TypeFromFields<{
                        debugText: ...;
                        networkIndex: ...;
                        networkingStatus: ...;
                    }>, any>;
                    reorderNetwork: Command<TypeFromFields<{
                        breadcrumb: ...;
                        networkId: ...;
                        networkIndex: ...;
                    }>, TypeFromFields<{
                        debugText: ...;
                        networkIndex: ...;
                        networkingStatus: ...;
                    }>, any>;
                    scanNetworks: Command<TypeFromFields<{
                        breadcrumb: ...;
                        ssid: ...;
                    }>, TypeFromFields<{
                        debugText: ...;
                        networkingStatus: ...;
                        threadScanResults: ...;
                        wiFiScanResults: ...;
                    }>, any>;
                };
            };
            flags: {
                wiFiNetworkInterface: true;
            };
        }, {
            component: {
                attributes: {
                    connectMaxTimeSeconds: FixedAttribute<number, any>;
                    scanMaxTimeSeconds: FixedAttribute<number, any>;
                };
                commands: {
                    connectNetwork: Command<TypeFromFields<{
                        breadcrumb: ...;
                        networkId: ...;
                    }>, TypeFromFields<{
                        debugText: ...;
                        errorValue: ...;
                        networkingStatus: ...;
                    }>, any>;
                    removeNetwork: Command<TypeFromFields<{
                        breadcrumb: ...;
                        networkId: ...;
                    }>, TypeFromFields<{
                        debugText: ...;
                        networkIndex: ...;
                        networkingStatus: ...;
                    }>, any>;
                    reorderNetwork: Command<TypeFromFields<{
                        breadcrumb: ...;
                        networkId: ...;
                        networkIndex: ...;
                    }>, TypeFromFields<{
                        debugText: ...;
                        networkIndex: ...;
                        networkingStatus: ...;
                    }>, any>;
                    scanNetworks: Command<TypeFromFields<{
                        breadcrumb: ...;
                        ssid: ...;
                    }>, TypeFromFields<{
                        debugText: ...;
                        networkingStatus: ...;
                        threadScanResults: ...;
                        wiFiScanResults: ...;
                    }>, any>;
                };
            };
            flags: {
                threadNetworkInterface: true;
            };
        }, {
            component: {
                attributes: {
                    supportedWiFiBands: FixedAttribute<NetworkCommissioning.WiFiBand[], any>;
                };
                commands: {
                    addOrUpdateWiFiNetwork: Command<TypeFromFields<{
                        breadcrumb: ...;
                        credentials: ...;
                        ssid: ...;
                    }>, TypeFromFields<{
                        debugText: ...;
                        networkIndex: ...;
                        networkingStatus: ...;
                    }>, any>;
                };
            };
            flags: {
                wiFiNetworkInterface: true;
            };
        }, {
            component: {
                attributes: {
                    supportedThreadFeatures: FixedAttribute<TypeFromPartialBitSchema<{
                        isBorderRouterCapable: ...;
                        isFullThreadDevice: ...;
                        isRouterCapable: ...;
                        isSleepyEndDeviceCapable: ...;
                        isSynchronizedSleepyEndDeviceCapable: ...;
                    }>, any>;
                    threadVersion: FixedAttribute<number, any>;
                };
                commands: {
                    addOrUpdateThreadNetwork: Command<TypeFromFields<{
                        breadcrumb: ...;
                        operationalDataset: ...;
                    }>, TypeFromFields<{
                        debugText: ...;
                        networkIndex: ...;
                        networkingStatus: ...;
                    }>, any>;
                };
            };
            flags: {
                threadNetworkInterface: true;
            };
        }, {
            component: false;
            flags: {
                threadNetworkInterface: true;
                wiFiNetworkInterface: true;
            };
        }, {
            component: false;
            flags: {
                ethernetNetworkInterface: true;
                wiFiNetworkInterface: true;
            };
        }, {
            component: false;
            flags: {
                ethernetNetworkInterface: true;
                threadNetworkInterface: true;
            };
        }, {
            component: false;
            flags: {
                ethernetNetworkInterface: false;
                threadNetworkInterface: false;
                wiFiNetworkInterface: false;
            };
        }];
        features: {
            ethernetNetworkInterface: BitFlag;
            threadNetworkInterface: BitFlag;
            wiFiNetworkInterface: BitFlag;
        };
        id: 49;
        name: "NetworkCommissioning";
        revision: 2;
    }>, Type<Of<{
        attributes: {};
        commands: {};
        events: {};
        id: 0;
        name: "Unknown";
        revision: 0;
    }>, typeof ClusterBehavior, NetworkCommissioningInterface>>)
    supervisor: RootSupervisor
    supports: ((other: Type) => boolean)

    Type declaration

      • (other): boolean
      • Does this behavior support functionality of a specific implementation?

        Parameters

        Returns boolean

    Methods

    • Execute logic with elevated privileges.

      The provided function executes with privileges escalated to offline mode. This is not commonly necessary.

      Elevated logic effectively ignores ACLs so should be used with care.

      Note that interactions with the behavior will remain elevated until the synchronous completion of this call. You should only elevate privileges for synchronous logic.

      Parameters

      • fn: (() => void)

        the elevated logic

          • (): void
          • Returns void

      Returns void

    • Create a generic callback function that has the same properties as a Reactor.

      Like a reactor, the callback's "this" will be bound to an active Behavior instance. Because of this: The reactor MUST be a real JS function - arrow functions will not work!

      Type Parameters

      • A extends any[]
      • R

      Parameters

      Returns ((...args: A) => undefined | R)

        • (...args): undefined | R
        • Parameters

          • Rest...args: A

          Returns undefined | R

    • Behaviors are ephemeral and should not perform initialization in their constructor. They can override this method instead.

      This method may be synchronous or asyncronous. If asynchronous, the behavior will not be available for external use until initialization completes.

      Parameters

      • Optional_options: {}

        Returns MaybePromise

      • Install a Reactor.

        Important: The reactor MUST be a real JS function - arrow functions will not work!

        Type Parameters

        Parameters

        Returns void

      • Description used in diagnostic messages.

        Returns string

      • Type Parameters

        Parameters

        Returns This