The primary interface for Matter.js endpoint implementations.

TODO - this is a transitional interface that allows us to have multiple implementations of the legacy endpoint API

interface EndpointInterface {
    deviceType: DeviceTypeId;
    name: string;
    number: undefined | EndpointNumber;
    addChildEndpoint(endpoint: EndpointInterface): void;
    addClusterClient(client: ClusterClientObj): void;
    addClusterServer(server: ClusterServer): void;
    close(): void;
    determineUniqueID(): undefined | string;
    getAllClusterClients(): ClusterClientObj[];
    getAllClusterServers(): ClusterServer[];
    getChildEndpoint(id: EndpointNumber): undefined | EndpointInterface;
    getChildEndpoints(): EndpointInterface[];
    getClusterClient<const T>(cluster: T): undefined | ClusterClientObj<T>;
    getClusterServer<T>(cluster: T): undefined | ClusterServer;
    getClusterServerById(clusterId: ClusterId): undefined | ClusterServer;
    getNumber(): EndpointNumber;
    hasClusterServer(cluster: ClusterType): boolean;
    removeFromStructure(): void;
    setStructureChangedCallback(callback: (() => void)): void;
    updatePartsList(): EndpointNumber[];
    verifyRequiredClusters(): void;
}

Implemented by

    Properties

    deviceType: DeviceTypeId
    name: string
    number: undefined | EndpointNumber

    Methods