interface InteractionRecipient {
    handleInvokeRequest(exchange: MessageExchange, request: TypeFromFields<{
        interactionModelRevision: FieldType<number>;
        invokeRequests: FieldType<TypeFromFields<{
            commandFields: OptionalFieldType<TlvStream>;
            commandPath: FieldType<TypeFromFields<{
                clusterId: FieldType<ClusterId>;
                commandId: FieldType<CommandId>;
                endpointId: OptionalFieldType<EndpointNumber>;
            }>>;
            commandRef: OptionalFieldType<number>;
        }>[]>;
        suppressResponse: FieldType<boolean>;
        timedRequest: FieldType<boolean>;
    }>, messenger: InteractionServerMessenger, message: Message): Promise<void>;
    handleReadRequest(exchange: MessageExchange, request: TypeFromFields<{
        attributeRequests: OptionalFieldType<TypeFromFields<{
            attributeId: OptionalFieldType<AttributeId>;
            clusterId: OptionalFieldType<ClusterId>;
            enableTagCompression: OptionalFieldType<boolean>;
            endpointId: OptionalFieldType<EndpointNumber>;
            listIndex: OptionalFieldType<null | number>;
            nodeId: OptionalFieldType<NodeId>;
            wildcardPathFlags: OptionalFieldType<TypeFromPartialBitSchema<{
                reserved1: BitFlag;
                skipAttributeList: BitFlag;
                skipChangesOmittedAttributes: BitFlag;
                skipCommandLists: BitFlag;
                skipCustomElements: BitFlag;
                skipDiagnosticsClusters: BitFlag;
                skipFixedAttributes: BitFlag;
                skipGlobalAttributes: BitFlag;
                skipRootNode: BitFlag;
            }>>;
        }>[]>;
        dataVersionFilters: OptionalFieldType<TypeFromFields<{
            dataVersion: FieldType<number>;
            path: FieldType<TypeFromFields<{
                clusterId: FieldType<ClusterId>;
                endpointId: FieldType<EndpointNumber>;
                nodeId: OptionalFieldType<NodeId>;
            }>>;
        }>[]>;
        eventFilters: OptionalFieldType<TypeFromFields<{
            eventMin: FieldType<number | bigint>;
            nodeId: OptionalFieldType<NodeId>;
        }>[]>;
        eventRequests: OptionalFieldType<TypeFromFields<{
            clusterId: OptionalFieldType<ClusterId>;
            endpointId: OptionalFieldType<EndpointNumber>;
            eventId: OptionalFieldType<EventId>;
            isUrgent: OptionalFieldType<boolean>;
            nodeId: OptionalFieldType<NodeId>;
        }>[]>;
        interactionModelRevision: FieldType<number>;
        isFabricFiltered: FieldType<boolean>;
    }>, message: Message): Promise<TypeFromFields<{
        attributeReports: OptionalFieldType<TypeFromFields<{
            attributeData: OptionalFieldType<TypeFromFields<{
                data: FieldType<(...)>;
                dataVersion: OptionalFieldType<(...)>;
                path: FieldType<(...)>;
            }>>;
            attributeStatus: OptionalFieldType<TypeFromFields<{
                path: FieldType<(...)>;
                status: FieldType<(...)>;
            }>>;
        }>[]>;
        eventReports: OptionalFieldType<TypeFromFields<{
            eventData: OptionalFieldType<TypeFromFields<{
                data: OptionalFieldType<(...)>;
                deltaEpochTimestamp: OptionalFieldType<(...)>;
                deltaSystemTimestamp: OptionalFieldType<(...)>;
                epochTimestamp: OptionalFieldType<(...)>;
                eventNumber: FieldType<(...)>;
                path: FieldType<(...)>;
                priority: FieldType<(...)>;
                systemTimestamp: OptionalFieldType<(...)>;
            }>>;
            eventStatus: OptionalFieldType<TypeFromFields<{
                path: FieldType<(...)>;
                status: FieldType<(...)>;
            }>>;
        }>[]>;
        interactionModelRevision: FieldType<number>;
        moreChunkedMessages: OptionalFieldType<boolean>;
        subscriptionId: OptionalFieldType<number>;
        suppressResponse: OptionalFieldType<boolean>;
    }>>;
    handleSubscribeRequest(exchange: MessageExchange, request: TypeFromFields<{
        attributeRequests: OptionalFieldType<TypeFromFields<{
            attributeId: OptionalFieldType<AttributeId>;
            clusterId: OptionalFieldType<ClusterId>;
            enableTagCompression: OptionalFieldType<boolean>;
            endpointId: OptionalFieldType<EndpointNumber>;
            listIndex: OptionalFieldType<null | number>;
            nodeId: OptionalFieldType<NodeId>;
            wildcardPathFlags: OptionalFieldType<TypeFromPartialBitSchema<{
                reserved1: BitFlag;
                skipAttributeList: BitFlag;
                skipChangesOmittedAttributes: BitFlag;
                skipCommandLists: BitFlag;
                skipCustomElements: BitFlag;
                skipDiagnosticsClusters: BitFlag;
                skipFixedAttributes: BitFlag;
                skipGlobalAttributes: BitFlag;
                skipRootNode: BitFlag;
            }>>;
        }>[]>;
        dataVersionFilters: OptionalFieldType<TypeFromFields<{
            dataVersion: FieldType<number>;
            path: FieldType<TypeFromFields<{
                clusterId: FieldType<ClusterId>;
                endpointId: FieldType<EndpointNumber>;
                nodeId: OptionalFieldType<NodeId>;
            }>>;
        }>[]>;
        eventFilters: OptionalFieldType<TypeFromFields<{
            eventMin: FieldType<number | bigint>;
            nodeId: OptionalFieldType<NodeId>;
        }>[]>;
        eventRequests: OptionalFieldType<TypeFromFields<{
            clusterId: OptionalFieldType<ClusterId>;
            endpointId: OptionalFieldType<EndpointNumber>;
            eventId: OptionalFieldType<EventId>;
            isUrgent: OptionalFieldType<boolean>;
            nodeId: OptionalFieldType<NodeId>;
        }>[]>;
        interactionModelRevision: FieldType<number>;
        isFabricFiltered: FieldType<boolean>;
        keepSubscriptions: FieldType<boolean>;
        maxIntervalCeilingSeconds: FieldType<number>;
        minIntervalFloorSeconds: FieldType<number>;
    }>, messenger: InteractionServerMessenger, message: Message): Promise<void>;
    handleTimedRequest(exchange: MessageExchange, request: TypeFromFields<{
        interactionModelRevision: FieldType<number>;
        timeout: FieldType<number>;
    }>, message: Message): void;
    handleWriteRequest(exchange: MessageExchange, request: TypeFromFields<{
        interactionModelRevision: FieldType<number>;
        moreChunkedMessages: OptionalFieldType<boolean>;
        suppressResponse: OptionalFieldType<boolean>;
        timedRequest: FieldType<boolean>;
        writeRequests: FieldType<TypeFromFields<{
            data: FieldType<TlvStream>;
            dataVersion: OptionalFieldType<number>;
            path: FieldType<TypeFromFields<{
                attributeId: OptionalFieldType<AttributeId>;
                clusterId: OptionalFieldType<ClusterId>;
                enableTagCompression: OptionalFieldType<boolean>;
                endpointId: OptionalFieldType<EndpointNumber>;
                listIndex: OptionalFieldType<(...) | (...)>;
                nodeId: OptionalFieldType<NodeId>;
                wildcardPathFlags: OptionalFieldType<TypeFromPartialBitSchema<(...)>>;
            }>>;
        }>[]>;
    }>, message: Message): Promise<TypeFromFields<{
        interactionModelRevision: FieldType<number>;
        writeResponses: FieldType<TypeFromFields<{
            path: FieldType<TypeFromFields<{
                attributeId: OptionalFieldType<(...)>;
                clusterId: OptionalFieldType<(...)>;
                enableTagCompression: OptionalFieldType<(...)>;
                endpointId: OptionalFieldType<(...)>;
                listIndex: OptionalFieldType<(...)>;
                nodeId: OptionalFieldType<(...)>;
                wildcardPathFlags: OptionalFieldType<(...)>;
            }>>;
            status: FieldType<TypeFromFields<{
                clusterStatus: OptionalFieldType<(...)>;
                status: OptionalFieldType<(...)>;
            }>>;
        }>[]>;
    }>>;
}

Implemented by

Methods

  • Parameters

    Returns void