/*
 *
 *    Copyright (c) 2022 Project CHIP Authors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

// THIS FILE IS GENERATED BY ZAP
#include <app-common/zap-generated/cluster-objects.h>
#include <app/util/af-enums.h>

typedef void (*CHIPDefaultSuccessCallbackType)(void *, const chip::app::DataModel::NullObjectType &);
typedef void (*CHIPDefaultWriteSuccessCallbackType)(void *);
typedef void (*CHIPDefaultFailureCallbackType)(void *, CHIP_ERROR);

typedef void (*CHIPIdentifyClusterIdentifyTimeAttributeCallbackType)(
    void *, chip::app::Clusters::Identify::Attributes::IdentifyTime::TypeInfo::DecodableArgType);
typedef void (*CHIPIdentifyClusterIdentifyTypeAttributeCallbackType)(
    void *, chip::app::Clusters::Identify::Attributes::IdentifyType::TypeInfo::DecodableArgType);
typedef void (*CHIPIdentifyClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Identify::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPIdentifyClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Identify::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPIdentifyClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::Identify::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPIdentifyClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::Identify::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPIdentifyClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::Identify::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPGroupsClusterAddGroupResponseCallbackType)(
    void *, const chip::app::Clusters::Groups::Commands::AddGroupResponse::DecodableType &);
typedef void (*CHIPGroupsClusterViewGroupResponseCallbackType)(
    void *, const chip::app::Clusters::Groups::Commands::ViewGroupResponse::DecodableType &);
typedef void (*CHIPGroupsClusterGetGroupMembershipResponseCallbackType)(
    void *, const chip::app::Clusters::Groups::Commands::GetGroupMembershipResponse::DecodableType &);
typedef void (*CHIPGroupsClusterRemoveGroupResponseCallbackType)(
    void *, const chip::app::Clusters::Groups::Commands::RemoveGroupResponse::DecodableType &);

typedef void (*CHIPGroupsClusterNameSupportAttributeCallbackType)(
    void *, chip::app::Clusters::Groups::Attributes::NameSupport::TypeInfo::DecodableArgType);
typedef void (*CHIPGroupsClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Groups::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPGroupsClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Groups::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPGroupsClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::Groups::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPGroupsClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::Groups::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPGroupsClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::Groups::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPScenesClusterAddSceneResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::AddSceneResponse::DecodableType &);
typedef void (*CHIPScenesClusterViewSceneResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::ViewSceneResponse::DecodableType &);
typedef void (*CHIPScenesClusterRemoveSceneResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::RemoveSceneResponse::DecodableType &);
typedef void (*CHIPScenesClusterRemoveAllScenesResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::RemoveAllScenesResponse::DecodableType &);
typedef void (*CHIPScenesClusterStoreSceneResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::StoreSceneResponse::DecodableType &);
typedef void (*CHIPScenesClusterGetSceneMembershipResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::GetSceneMembershipResponse::DecodableType &);

typedef void (*CHIPScenesClusterSceneCountAttributeCallbackType)(
    void *, chip::app::Clusters::Scenes::Attributes::SceneCount::TypeInfo::DecodableArgType);
typedef void (*CHIPScenesClusterCurrentSceneAttributeCallbackType)(
    void *, chip::app::Clusters::Scenes::Attributes::CurrentScene::TypeInfo::DecodableArgType);
typedef void (*CHIPScenesClusterCurrentGroupAttributeCallbackType)(
    void *, chip::app::Clusters::Scenes::Attributes::CurrentGroup::TypeInfo::DecodableArgType);
typedef void (*CHIPScenesClusterSceneValidAttributeCallbackType)(
    void *, chip::app::Clusters::Scenes::Attributes::SceneValid::TypeInfo::DecodableArgType);
typedef void (*CHIPScenesClusterNameSupportAttributeCallbackType)(
    void *, chip::app::Clusters::Scenes::Attributes::NameSupport::TypeInfo::DecodableArgType);
typedef void (*CHIPScenesClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Scenes::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPScenesClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Scenes::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPScenesClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::Scenes::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPScenesClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::Scenes::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPScenesClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::Scenes::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPOnOffClusterOnOffAttributeCallbackType)(
    void *, chip::app::Clusters::OnOff::Attributes::OnOff::TypeInfo::DecodableArgType);
typedef void (*CHIPOnOffClusterGlobalSceneControlAttributeCallbackType)(
    void *, chip::app::Clusters::OnOff::Attributes::GlobalSceneControl::TypeInfo::DecodableArgType);
typedef void (*CHIPOnOffClusterOnTimeAttributeCallbackType)(
    void *, chip::app::Clusters::OnOff::Attributes::OnTime::TypeInfo::DecodableArgType);
typedef void (*CHIPOnOffClusterOffWaitTimeAttributeCallbackType)(
    void *, chip::app::Clusters::OnOff::Attributes::OffWaitTime::TypeInfo::DecodableArgType);
typedef void (*CHIPOnOffClusterStartUpOnOffAttributeCallbackType)(
    void *, chip::app::Clusters::OnOff::Attributes::StartUpOnOff::TypeInfo::DecodableArgType);
typedef void (*CHIPOnOffClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::OnOff::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPOnOffClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::OnOff::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPOnOffClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::OnOff::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPOnOffClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::OnOff::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPOnOffClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::OnOff::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPOnOffSwitchConfigurationClusterSwitchTypeAttributeCallbackType)(
    void *, chip::app::Clusters::OnOffSwitchConfiguration::Attributes::SwitchType::TypeInfo::DecodableArgType);
typedef void (*CHIPOnOffSwitchConfigurationClusterSwitchActionsAttributeCallbackType)(
    void *, chip::app::Clusters::OnOffSwitchConfiguration::Attributes::SwitchActions::TypeInfo::DecodableArgType);
typedef void (*CHIPOnOffSwitchConfigurationClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::OnOffSwitchConfiguration::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPOnOffSwitchConfigurationClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::OnOffSwitchConfiguration::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPOnOffSwitchConfigurationClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::OnOffSwitchConfiguration::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPOnOffSwitchConfigurationClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::OnOffSwitchConfiguration::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPOnOffSwitchConfigurationClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::OnOffSwitchConfiguration::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPLevelControlClusterCurrentLevelAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::CurrentLevel::TypeInfo::DecodableArgType);
typedef void (*CHIPLevelControlClusterRemainingTimeAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::RemainingTime::TypeInfo::DecodableArgType);
typedef void (*CHIPLevelControlClusterMinLevelAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::MinLevel::TypeInfo::DecodableArgType);
typedef void (*CHIPLevelControlClusterMaxLevelAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::MaxLevel::TypeInfo::DecodableArgType);
typedef void (*CHIPLevelControlClusterCurrentFrequencyAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::CurrentFrequency::TypeInfo::DecodableArgType);
typedef void (*CHIPLevelControlClusterMinFrequencyAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::MinFrequency::TypeInfo::DecodableArgType);
typedef void (*CHIPLevelControlClusterMaxFrequencyAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::MaxFrequency::TypeInfo::DecodableArgType);
typedef void (*CHIPLevelControlClusterOptionsAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::Options::TypeInfo::DecodableArgType);
typedef void (*CHIPLevelControlClusterOnOffTransitionTimeAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::OnOffTransitionTime::TypeInfo::DecodableArgType);
typedef void (*CHIPLevelControlClusterOnLevelAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::OnLevel::TypeInfo::DecodableArgType);
typedef void (*CHIPLevelControlClusterOnTransitionTimeAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::OnTransitionTime::TypeInfo::DecodableArgType);
typedef void (*CHIPLevelControlClusterOffTransitionTimeAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::OffTransitionTime::TypeInfo::DecodableArgType);
typedef void (*CHIPLevelControlClusterDefaultMoveRateAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::DefaultMoveRate::TypeInfo::DecodableArgType);
typedef void (*CHIPLevelControlClusterStartUpCurrentLevelAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::StartUpCurrentLevel::TypeInfo::DecodableArgType);
typedef void (*CHIPLevelControlClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::LevelControl::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPLevelControlClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::LevelControl::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPLevelControlClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::LevelControl::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPLevelControlClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPLevelControlClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::LevelControl::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPBinaryInputBasicClusterOutOfServiceAttributeCallbackType)(
    void *, chip::app::Clusters::BinaryInputBasic::Attributes::OutOfService::TypeInfo::DecodableArgType);
typedef void (*CHIPBinaryInputBasicClusterPresentValueAttributeCallbackType)(
    void *, chip::app::Clusters::BinaryInputBasic::Attributes::PresentValue::TypeInfo::DecodableArgType);
typedef void (*CHIPBinaryInputBasicClusterStatusFlagsAttributeCallbackType)(
    void *, chip::app::Clusters::BinaryInputBasic::Attributes::StatusFlags::TypeInfo::DecodableArgType);
typedef void (*CHIPBinaryInputBasicClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::BinaryInputBasic::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPBinaryInputBasicClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::BinaryInputBasic::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPBinaryInputBasicClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::BinaryInputBasic::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPBinaryInputBasicClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::BinaryInputBasic::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPBinaryInputBasicClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::BinaryInputBasic::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPDescriptorClusterDeviceTypeListAttributeCallbackType)(
    void *, const chip::app::Clusters::Descriptor::Attributes::DeviceTypeList::TypeInfo::DecodableType &);
typedef void (*CHIPDescriptorClusterServerListAttributeCallbackType)(
    void *, const chip::app::Clusters::Descriptor::Attributes::ServerList::TypeInfo::DecodableType &);
typedef void (*CHIPDescriptorClusterClientListAttributeCallbackType)(
    void *, const chip::app::Clusters::Descriptor::Attributes::ClientList::TypeInfo::DecodableType &);
typedef void (*CHIPDescriptorClusterPartsListAttributeCallbackType)(
    void *, const chip::app::Clusters::Descriptor::Attributes::PartsList::TypeInfo::DecodableType &);
typedef void (*CHIPDescriptorClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Descriptor::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPDescriptorClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Descriptor::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPDescriptorClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::Descriptor::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPDescriptorClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::Descriptor::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPDescriptorClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::Descriptor::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPBindingClusterBindingAttributeCallbackType)(
    void *, const chip::app::Clusters::Binding::Attributes::Binding::TypeInfo::DecodableType &);
typedef void (*CHIPBindingClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Binding::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPBindingClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Binding::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPBindingClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::Binding::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPBindingClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::Binding::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPBindingClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::Binding::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPAccessControlClusterAclAttributeCallbackType)(
    void *, const chip::app::Clusters::AccessControl::Attributes::Acl::TypeInfo::DecodableType &);
typedef void (*CHIPAccessControlClusterExtensionAttributeCallbackType)(
    void *, const chip::app::Clusters::AccessControl::Attributes::Extension::TypeInfo::DecodableType &);
typedef void (*CHIPAccessControlClusterSubjectsPerAccessControlEntryAttributeCallbackType)(
    void *, chip::app::Clusters::AccessControl::Attributes::SubjectsPerAccessControlEntry::TypeInfo::DecodableArgType);
typedef void (*CHIPAccessControlClusterTargetsPerAccessControlEntryAttributeCallbackType)(
    void *, chip::app::Clusters::AccessControl::Attributes::TargetsPerAccessControlEntry::TypeInfo::DecodableArgType);
typedef void (*CHIPAccessControlClusterAccessControlEntriesPerFabricAttributeCallbackType)(
    void *, chip::app::Clusters::AccessControl::Attributes::AccessControlEntriesPerFabric::TypeInfo::DecodableArgType);
typedef void (*CHIPAccessControlClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::AccessControl::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPAccessControlClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::AccessControl::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPAccessControlClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::AccessControl::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPAccessControlClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::AccessControl::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPAccessControlClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::AccessControl::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPActionsClusterActionListAttributeCallbackType)(
    void *, const chip::app::Clusters::Actions::Attributes::ActionList::TypeInfo::DecodableType &);
typedef void (*CHIPActionsClusterEndpointListsAttributeCallbackType)(
    void *, const chip::app::Clusters::Actions::Attributes::EndpointLists::TypeInfo::DecodableType &);
typedef void (*CHIPActionsClusterSetupURLAttributeCallbackType)(
    void *, chip::app::Clusters::Actions::Attributes::SetupURL::TypeInfo::DecodableArgType);
typedef void (*CHIPActionsClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Actions::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPActionsClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Actions::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPActionsClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::Actions::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPActionsClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::Actions::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPActionsClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::Actions::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPBasicInformationClusterDataModelRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::DataModelRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterVendorNameAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::VendorName::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterVendorIDAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::VendorID::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterProductNameAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::ProductName::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterProductIDAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::ProductID::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterNodeLabelAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::NodeLabel::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterLocationAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::Location::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterHardwareVersionAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::HardwareVersion::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterHardwareVersionStringAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::HardwareVersionString::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterSoftwareVersionAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::SoftwareVersion::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterSoftwareVersionStringAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::SoftwareVersionString::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterManufacturingDateAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::ManufacturingDate::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterPartNumberAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::PartNumber::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterProductURLAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::ProductURL::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterProductLabelAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::ProductLabel::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterSerialNumberAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::SerialNumber::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterLocalConfigDisabledAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::LocalConfigDisabled::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterReachableAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::Reachable::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterUniqueIDAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::UniqueID::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterCapabilityMinimaAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::CapabilityMinima::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::BasicInformation::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPBasicInformationClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::BasicInformation::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPBasicInformationClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::BasicInformation::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPBasicInformationClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPBasicInformationClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::BasicInformation::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallbackType)(
    void *, const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImageResponse::DecodableType &);
typedef void (*CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackType)(
    void *, const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateResponse::DecodableType &);

typedef void (*CHIPOtaSoftwareUpdateProviderClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::OtaSoftwareUpdateProvider::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPOtaSoftwareUpdateProviderClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::OtaSoftwareUpdateProvider::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPOtaSoftwareUpdateProviderClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::OtaSoftwareUpdateProvider::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPOtaSoftwareUpdateRequestorClusterDefaultOTAProvidersAttributeCallbackType)(
    void *, const chip::app::Clusters::OtaSoftwareUpdateRequestor::Attributes::DefaultOTAProviders::TypeInfo::DecodableType &);
typedef void (*CHIPOtaSoftwareUpdateRequestorClusterUpdatePossibleAttributeCallbackType)(
    void *, chip::app::Clusters::OtaSoftwareUpdateRequestor::Attributes::UpdatePossible::TypeInfo::DecodableArgType);
typedef void (*CHIPOtaSoftwareUpdateRequestorClusterUpdateStateAttributeCallbackType)(
    void *, chip::app::Clusters::OtaSoftwareUpdateRequestor::Attributes::UpdateState::TypeInfo::DecodableArgType);
typedef void (*CHIPOtaSoftwareUpdateRequestorClusterUpdateStateProgressAttributeCallbackType)(
    void *, chip::app::Clusters::OtaSoftwareUpdateRequestor::Attributes::UpdateStateProgress::TypeInfo::DecodableArgType);
typedef void (*CHIPOtaSoftwareUpdateRequestorClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::OtaSoftwareUpdateRequestor::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPOtaSoftwareUpdateRequestorClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::OtaSoftwareUpdateRequestor::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPOtaSoftwareUpdateRequestorClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::OtaSoftwareUpdateRequestor::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPLocalizationConfigurationClusterActiveLocaleAttributeCallbackType)(
    void *, chip::app::Clusters::LocalizationConfiguration::Attributes::ActiveLocale::TypeInfo::DecodableArgType);
typedef void (*CHIPLocalizationConfigurationClusterSupportedLocalesAttributeCallbackType)(
    void *, const chip::app::Clusters::LocalizationConfiguration::Attributes::SupportedLocales::TypeInfo::DecodableType &);
typedef void (*CHIPLocalizationConfigurationClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::LocalizationConfiguration::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPLocalizationConfigurationClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::LocalizationConfiguration::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPLocalizationConfigurationClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::LocalizationConfiguration::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPLocalizationConfigurationClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::LocalizationConfiguration::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPTimeFormatLocalizationClusterHourFormatAttributeCallbackType)(
    void *, chip::app::Clusters::TimeFormatLocalization::Attributes::HourFormat::TypeInfo::DecodableArgType);
typedef void (*CHIPTimeFormatLocalizationClusterActiveCalendarTypeAttributeCallbackType)(
    void *, chip::app::Clusters::TimeFormatLocalization::Attributes::ActiveCalendarType::TypeInfo::DecodableArgType);
typedef void (*CHIPTimeFormatLocalizationClusterSupportedCalendarTypesAttributeCallbackType)(
    void *, const chip::app::Clusters::TimeFormatLocalization::Attributes::SupportedCalendarTypes::TypeInfo::DecodableType &);
typedef void (*CHIPTimeFormatLocalizationClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::TimeFormatLocalization::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPTimeFormatLocalizationClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::TimeFormatLocalization::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPTimeFormatLocalizationClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::TimeFormatLocalization::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPTimeFormatLocalizationClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::TimeFormatLocalization::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPUnitLocalizationClusterTemperatureUnitAttributeCallbackType)(
    void *, chip::app::Clusters::UnitLocalization::Attributes::TemperatureUnit::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitLocalizationClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::UnitLocalization::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPUnitLocalizationClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::UnitLocalization::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitLocalizationClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::UnitLocalization::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPPowerSourceConfigurationClusterSourcesAttributeCallbackType)(
    void *, const chip::app::Clusters::PowerSourceConfiguration::Attributes::Sources::TypeInfo::DecodableType &);
typedef void (*CHIPPowerSourceConfigurationClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::PowerSourceConfiguration::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPPowerSourceConfigurationClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::PowerSourceConfiguration::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPPowerSourceConfigurationClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::PowerSourceConfiguration::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPPowerSourceConfigurationClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSourceConfiguration::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceConfigurationClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSourceConfiguration::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPPowerSourceClusterStatusAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::Status::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterOrderAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::Order::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterDescriptionAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::Description::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterWiredAssessedInputVoltageAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::WiredAssessedInputVoltage::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterWiredAssessedInputFrequencyAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::WiredAssessedInputFrequency::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterWiredCurrentTypeAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::WiredCurrentType::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterWiredAssessedCurrentAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::WiredAssessedCurrent::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterWiredNominalVoltageAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::WiredNominalVoltage::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterWiredMaximumCurrentAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::WiredMaximumCurrent::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterWiredPresentAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::WiredPresent::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterActiveWiredFaultsAttributeCallbackType)(
    void *, const chip::app::Clusters::PowerSource::Attributes::ActiveWiredFaults::TypeInfo::DecodableType &);
typedef void (*CHIPPowerSourceClusterBatVoltageAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatVoltage::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatPercentRemainingAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatPercentRemaining::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatTimeRemainingAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatTimeRemaining::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatChargeLevelAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatChargeLevel::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatReplacementNeededAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatReplacementNeeded::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatReplaceabilityAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatReplaceability::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatPresentAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatPresent::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterActiveBatFaultsAttributeCallbackType)(
    void *, const chip::app::Clusters::PowerSource::Attributes::ActiveBatFaults::TypeInfo::DecodableType &);
typedef void (*CHIPPowerSourceClusterBatReplacementDescriptionAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatReplacementDescription::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatCommonDesignationAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatCommonDesignation::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatANSIDesignationAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatANSIDesignation::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatIECDesignationAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatIECDesignation::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatApprovedChemistryAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatApprovedChemistry::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatCapacityAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatCapacity::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatQuantityAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatQuantity::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatChargeStateAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatChargeState::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatTimeToFullChargeAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatTimeToFullCharge::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatFunctionalWhileChargingAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatFunctionalWhileCharging::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterBatChargingCurrentAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::BatChargingCurrent::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterActiveBatChargeFaultsAttributeCallbackType)(
    void *, const chip::app::Clusters::PowerSource::Attributes::ActiveBatChargeFaults::TypeInfo::DecodableType &);
typedef void (*CHIPPowerSourceClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::PowerSource::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPPowerSourceClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::PowerSource::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPPowerSourceClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::PowerSource::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPPowerSourceClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPPowerSourceClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::PowerSource::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPGeneralCommissioningClusterArmFailSafeResponseCallbackType)(
    void *, const chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafeResponse::DecodableType &);
typedef void (*CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallbackType)(
    void *, const chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfigResponse::DecodableType &);
typedef void (*CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallbackType)(
    void *, const chip::app::Clusters::GeneralCommissioning::Commands::CommissioningCompleteResponse::DecodableType &);

typedef void (*CHIPGeneralCommissioningClusterBreadcrumbAttributeCallbackType)(
    void *, chip::app::Clusters::GeneralCommissioning::Attributes::Breadcrumb::TypeInfo::DecodableArgType);
typedef void (*CHIPGeneralCommissioningClusterBasicCommissioningInfoAttributeCallbackType)(
    void *, chip::app::Clusters::GeneralCommissioning::Attributes::BasicCommissioningInfo::TypeInfo::DecodableArgType);
typedef void (*CHIPGeneralCommissioningClusterRegulatoryConfigAttributeCallbackType)(
    void *, chip::app::Clusters::GeneralCommissioning::Attributes::RegulatoryConfig::TypeInfo::DecodableArgType);
typedef void (*CHIPGeneralCommissioningClusterLocationCapabilityAttributeCallbackType)(
    void *, chip::app::Clusters::GeneralCommissioning::Attributes::LocationCapability::TypeInfo::DecodableArgType);
typedef void (*CHIPGeneralCommissioningClusterSupportsConcurrentConnectionAttributeCallbackType)(
    void *, chip::app::Clusters::GeneralCommissioning::Attributes::SupportsConcurrentConnection::TypeInfo::DecodableArgType);
typedef void (*CHIPGeneralCommissioningClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::GeneralCommissioning::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPGeneralCommissioningClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::GeneralCommissioning::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPGeneralCommissioningClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::GeneralCommissioning::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPGeneralCommissioningClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::GeneralCommissioning::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPGeneralCommissioningClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::GeneralCommissioning::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPNetworkCommissioningClusterScanNetworksResponseCallbackType)(
    void *, const chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworksResponse::DecodableType &);
typedef void (*CHIPNetworkCommissioningClusterNetworkConfigResponseCallbackType)(
    void *, const chip::app::Clusters::NetworkCommissioning::Commands::NetworkConfigResponse::DecodableType &);
typedef void (*CHIPNetworkCommissioningClusterConnectNetworkResponseCallbackType)(
    void *, const chip::app::Clusters::NetworkCommissioning::Commands::ConnectNetworkResponse::DecodableType &);

typedef void (*CHIPNetworkCommissioningClusterMaxNetworksAttributeCallbackType)(
    void *, chip::app::Clusters::NetworkCommissioning::Attributes::MaxNetworks::TypeInfo::DecodableArgType);
typedef void (*CHIPNetworkCommissioningClusterNetworksAttributeCallbackType)(
    void *, const chip::app::Clusters::NetworkCommissioning::Attributes::Networks::TypeInfo::DecodableType &);
typedef void (*CHIPNetworkCommissioningClusterScanMaxTimeSecondsAttributeCallbackType)(
    void *, chip::app::Clusters::NetworkCommissioning::Attributes::ScanMaxTimeSeconds::TypeInfo::DecodableArgType);
typedef void (*CHIPNetworkCommissioningClusterConnectMaxTimeSecondsAttributeCallbackType)(
    void *, chip::app::Clusters::NetworkCommissioning::Attributes::ConnectMaxTimeSeconds::TypeInfo::DecodableArgType);
typedef void (*CHIPNetworkCommissioningClusterInterfaceEnabledAttributeCallbackType)(
    void *, chip::app::Clusters::NetworkCommissioning::Attributes::InterfaceEnabled::TypeInfo::DecodableArgType);
typedef void (*CHIPNetworkCommissioningClusterLastNetworkingStatusAttributeCallbackType)(
    void *, chip::app::Clusters::NetworkCommissioning::Attributes::LastNetworkingStatus::TypeInfo::DecodableArgType);
typedef void (*CHIPNetworkCommissioningClusterLastNetworkIDAttributeCallbackType)(
    void *, chip::app::Clusters::NetworkCommissioning::Attributes::LastNetworkID::TypeInfo::DecodableArgType);
typedef void (*CHIPNetworkCommissioningClusterLastConnectErrorValueAttributeCallbackType)(
    void *, chip::app::Clusters::NetworkCommissioning::Attributes::LastConnectErrorValue::TypeInfo::DecodableArgType);
typedef void (*CHIPNetworkCommissioningClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::NetworkCommissioning::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPNetworkCommissioningClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::NetworkCommissioning::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPNetworkCommissioningClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::NetworkCommissioning::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPNetworkCommissioningClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::NetworkCommissioning::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPDiagnosticLogsClusterRetrieveLogsResponseCallbackType)(
    void *, const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsResponse::DecodableType &);

typedef void (*CHIPDiagnosticLogsClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::DiagnosticLogs::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPDiagnosticLogsClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::DiagnosticLogs::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPDiagnosticLogsClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::DiagnosticLogs::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPDiagnosticLogsClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::DiagnosticLogs::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPDiagnosticLogsClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::DiagnosticLogs::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPGeneralDiagnosticsClusterNetworkInterfacesAttributeCallbackType)(
    void *, const chip::app::Clusters::GeneralDiagnostics::Attributes::NetworkInterfaces::TypeInfo::DecodableType &);
typedef void (*CHIPGeneralDiagnosticsClusterRebootCountAttributeCallbackType)(
    void *, chip::app::Clusters::GeneralDiagnostics::Attributes::RebootCount::TypeInfo::DecodableArgType);
typedef void (*CHIPGeneralDiagnosticsClusterUpTimeAttributeCallbackType)(
    void *, chip::app::Clusters::GeneralDiagnostics::Attributes::UpTime::TypeInfo::DecodableArgType);
typedef void (*CHIPGeneralDiagnosticsClusterTotalOperationalHoursAttributeCallbackType)(
    void *, chip::app::Clusters::GeneralDiagnostics::Attributes::TotalOperationalHours::TypeInfo::DecodableArgType);
typedef void (*CHIPGeneralDiagnosticsClusterBootReasonAttributeCallbackType)(
    void *, chip::app::Clusters::GeneralDiagnostics::Attributes::BootReason::TypeInfo::DecodableArgType);
typedef void (*CHIPGeneralDiagnosticsClusterActiveHardwareFaultsAttributeCallbackType)(
    void *, const chip::app::Clusters::GeneralDiagnostics::Attributes::ActiveHardwareFaults::TypeInfo::DecodableType &);
typedef void (*CHIPGeneralDiagnosticsClusterActiveRadioFaultsAttributeCallbackType)(
    void *, const chip::app::Clusters::GeneralDiagnostics::Attributes::ActiveRadioFaults::TypeInfo::DecodableType &);
typedef void (*CHIPGeneralDiagnosticsClusterActiveNetworkFaultsAttributeCallbackType)(
    void *, const chip::app::Clusters::GeneralDiagnostics::Attributes::ActiveNetworkFaults::TypeInfo::DecodableType &);
typedef void (*CHIPGeneralDiagnosticsClusterTestEventTriggersEnabledAttributeCallbackType)(
    void *, chip::app::Clusters::GeneralDiagnostics::Attributes::TestEventTriggersEnabled::TypeInfo::DecodableArgType);
typedef void (*CHIPGeneralDiagnosticsClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::GeneralDiagnostics::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPGeneralDiagnosticsClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::GeneralDiagnostics::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPGeneralDiagnosticsClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::GeneralDiagnostics::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPGeneralDiagnosticsClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::GeneralDiagnostics::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPGeneralDiagnosticsClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::GeneralDiagnostics::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPSoftwareDiagnosticsClusterThreadMetricsAttributeCallbackType)(
    void *, const chip::app::Clusters::SoftwareDiagnostics::Attributes::ThreadMetrics::TypeInfo::DecodableType &);
typedef void (*CHIPSoftwareDiagnosticsClusterCurrentHeapFreeAttributeCallbackType)(
    void *, chip::app::Clusters::SoftwareDiagnostics::Attributes::CurrentHeapFree::TypeInfo::DecodableArgType);
typedef void (*CHIPSoftwareDiagnosticsClusterCurrentHeapUsedAttributeCallbackType)(
    void *, chip::app::Clusters::SoftwareDiagnostics::Attributes::CurrentHeapUsed::TypeInfo::DecodableArgType);
typedef void (*CHIPSoftwareDiagnosticsClusterCurrentHeapHighWatermarkAttributeCallbackType)(
    void *, chip::app::Clusters::SoftwareDiagnostics::Attributes::CurrentHeapHighWatermark::TypeInfo::DecodableArgType);
typedef void (*CHIPSoftwareDiagnosticsClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::SoftwareDiagnostics::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPSoftwareDiagnosticsClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::SoftwareDiagnostics::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPSoftwareDiagnosticsClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::SoftwareDiagnostics::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPSoftwareDiagnosticsClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::SoftwareDiagnostics::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPSoftwareDiagnosticsClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::SoftwareDiagnostics::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPThreadNetworkDiagnosticsClusterChannelAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::Channel::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RoutingRole::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterNetworkNameAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::NetworkName::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterPanIdAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::PanId::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterExtendedPanIdAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::ExtendedPanId::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterMeshLocalPrefixAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::MeshLocalPrefix::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterOverrunCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::OverrunCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterNeighborTableAttributeCallbackType)(
    void *, const chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::NeighborTable::TypeInfo::DecodableType &);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRouteTableAttributeCallbackType)(
    void *, const chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RouteTable::TypeInfo::DecodableType &);
typedef void (*CHIPThreadNetworkDiagnosticsClusterPartitionIdAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::PartitionId::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterWeightingAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::Weighting::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterDataVersionAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::DataVersion::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterStableDataVersionAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::StableDataVersion::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterLeaderRouterIdAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::LeaderRouterId::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterDetachedRoleCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::DetachedRoleCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterChildRoleCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::ChildRoleCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRouterRoleCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RouterRoleCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterLeaderRoleCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::LeaderRoleCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterAttachAttemptCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::AttachAttemptCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterPartitionIdChangeCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::PartitionIdChangeCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterBetterPartitionAttachAttemptCountAttributeCallbackType)(
    void *,
    chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::BetterPartitionAttachAttemptCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterParentChangeCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::ParentChangeCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxTotalCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxTotalCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxUnicastCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxUnicastCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxBroadcastCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxBroadcastCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxAckRequestedCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxAckRequestedCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxAckedCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxAckedCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxNoAckRequestedCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxNoAckRequestedCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxDataCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxDataCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxDataPollCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxDataPollCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxBeaconCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxBeaconCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxBeaconRequestCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxBeaconRequestCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxOtherCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxOtherCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxRetryCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxRetryCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxDirectMaxRetryExpiryCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxDirectMaxRetryExpiryCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxIndirectMaxRetryExpiryCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxIndirectMaxRetryExpiryCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxErrCcaCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxErrCcaCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxErrAbortCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxErrAbortCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterTxErrBusyChannelCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::TxErrBusyChannelCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxTotalCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxTotalCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxUnicastCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxUnicastCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxBroadcastCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxBroadcastCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxDataCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxDataCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxDataPollCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxDataPollCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxBeaconCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxBeaconCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxBeaconRequestCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxBeaconRequestCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxOtherCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxOtherCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxAddressFilteredCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxAddressFilteredCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxDestAddrFilteredCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxDestAddrFilteredCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxDuplicatedCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxDuplicatedCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxErrNoFrameCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxErrNoFrameCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxErrUnknownNeighborCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxErrUnknownNeighborCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxErrInvalidSrcAddrCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxErrInvalidSrcAddrCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxErrSecCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxErrSecCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxErrFcsCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxErrFcsCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterRxErrOtherCountAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::RxErrOtherCount::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterActiveTimestampAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::ActiveTimestamp::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterPendingTimestampAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::PendingTimestamp::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterDelayAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::Delay::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterSecurityPolicyAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::SecurityPolicy::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterChannelPage0MaskAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::ChannelPage0Mask::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterOperationalDatasetComponentsAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::OperationalDatasetComponents::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterActiveNetworkFaultsListAttributeCallbackType)(
    void *, const chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::ActiveNetworkFaultsList::TypeInfo::DecodableType &);
typedef void (*CHIPThreadNetworkDiagnosticsClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPThreadNetworkDiagnosticsClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPThreadNetworkDiagnosticsClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPThreadNetworkDiagnosticsClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPThreadNetworkDiagnosticsClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPWiFiNetworkDiagnosticsClusterBssidAttributeCallbackType)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::Bssid::TypeInfo::DecodableArgType);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackType)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::SecurityType::TypeInfo::DecodableArgType);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterWiFiVersionAttributeCallbackType)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::WiFiVersion::TypeInfo::DecodableArgType);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterChannelNumberAttributeCallbackType)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::ChannelNumber::TypeInfo::DecodableArgType);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterRssiAttributeCallbackType)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::Rssi::TypeInfo::DecodableArgType);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterBeaconLostCountAttributeCallbackType)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::BeaconLostCount::TypeInfo::DecodableArgType);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterBeaconRxCountAttributeCallbackType)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::BeaconRxCount::TypeInfo::DecodableArgType);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterPacketMulticastRxCountAttributeCallbackType)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::PacketMulticastRxCount::TypeInfo::DecodableArgType);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterPacketMulticastTxCountAttributeCallbackType)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::PacketMulticastTxCount::TypeInfo::DecodableArgType);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterPacketUnicastRxCountAttributeCallbackType)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::PacketUnicastRxCount::TypeInfo::DecodableArgType);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterPacketUnicastTxCountAttributeCallbackType)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::PacketUnicastTxCount::TypeInfo::DecodableArgType);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterCurrentMaxRateAttributeCallbackType)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::CurrentMaxRate::TypeInfo::DecodableArgType);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterOverrunCountAttributeCallbackType)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::OverrunCount::TypeInfo::DecodableArgType);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPWiFiNetworkDiagnosticsClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPEthernetNetworkDiagnosticsClusterPHYRateAttributeCallbackType)(
    void *, chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::PHYRate::TypeInfo::DecodableArgType);
typedef void (*CHIPEthernetNetworkDiagnosticsClusterFullDuplexAttributeCallbackType)(
    void *, chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::FullDuplex::TypeInfo::DecodableArgType);
typedef void (*CHIPEthernetNetworkDiagnosticsClusterPacketRxCountAttributeCallbackType)(
    void *, chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::PacketRxCount::TypeInfo::DecodableArgType);
typedef void (*CHIPEthernetNetworkDiagnosticsClusterPacketTxCountAttributeCallbackType)(
    void *, chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::PacketTxCount::TypeInfo::DecodableArgType);
typedef void (*CHIPEthernetNetworkDiagnosticsClusterTxErrCountAttributeCallbackType)(
    void *, chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::TxErrCount::TypeInfo::DecodableArgType);
typedef void (*CHIPEthernetNetworkDiagnosticsClusterCollisionCountAttributeCallbackType)(
    void *, chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::CollisionCount::TypeInfo::DecodableArgType);
typedef void (*CHIPEthernetNetworkDiagnosticsClusterOverrunCountAttributeCallbackType)(
    void *, chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::OverrunCount::TypeInfo::DecodableArgType);
typedef void (*CHIPEthernetNetworkDiagnosticsClusterCarrierDetectAttributeCallbackType)(
    void *, chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::CarrierDetect::TypeInfo::DecodableArgType);
typedef void (*CHIPEthernetNetworkDiagnosticsClusterTimeSinceResetAttributeCallbackType)(
    void *, chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::TimeSinceReset::TypeInfo::DecodableArgType);
typedef void (*CHIPEthernetNetworkDiagnosticsClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPEthernetNetworkDiagnosticsClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPEthernetNetworkDiagnosticsClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPEthernetNetworkDiagnosticsClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPEthernetNetworkDiagnosticsClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPBridgedDeviceBasicInformationClusterVendorNameAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::VendorName::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterVendorIDAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::VendorID::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterProductNameAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::ProductName::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterNodeLabelAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::NodeLabel::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterHardwareVersionAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::HardwareVersion::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterHardwareVersionStringAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::HardwareVersionString::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterSoftwareVersionAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::SoftwareVersion::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterSoftwareVersionStringAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::SoftwareVersionString::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterManufacturingDateAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::ManufacturingDate::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterPartNumberAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::PartNumber::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterProductURLAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::ProductURL::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterProductLabelAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::ProductLabel::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterSerialNumberAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::SerialNumber::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterReachableAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::Reachable::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterUniqueIDAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::UniqueID::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPBridgedDeviceBasicInformationClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPBridgedDeviceBasicInformationClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPBridgedDeviceBasicInformationClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPBridgedDeviceBasicInformationClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPSwitchClusterNumberOfPositionsAttributeCallbackType)(
    void *, chip::app::Clusters::Switch::Attributes::NumberOfPositions::TypeInfo::DecodableArgType);
typedef void (*CHIPSwitchClusterCurrentPositionAttributeCallbackType)(
    void *, chip::app::Clusters::Switch::Attributes::CurrentPosition::TypeInfo::DecodableArgType);
typedef void (*CHIPSwitchClusterMultiPressMaxAttributeCallbackType)(
    void *, chip::app::Clusters::Switch::Attributes::MultiPressMax::TypeInfo::DecodableArgType);
typedef void (*CHIPSwitchClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Switch::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPSwitchClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Switch::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPSwitchClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::Switch::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPSwitchClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::Switch::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPSwitchClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::Switch::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPAdministratorCommissioningClusterWindowStatusAttributeCallbackType)(
    void *, chip::app::Clusters::AdministratorCommissioning::Attributes::WindowStatus::TypeInfo::DecodableArgType);
typedef void (*CHIPAdministratorCommissioningClusterAdminFabricIndexAttributeCallbackType)(
    void *, chip::app::Clusters::AdministratorCommissioning::Attributes::AdminFabricIndex::TypeInfo::DecodableArgType);
typedef void (*CHIPAdministratorCommissioningClusterAdminVendorIdAttributeCallbackType)(
    void *, chip::app::Clusters::AdministratorCommissioning::Attributes::AdminVendorId::TypeInfo::DecodableArgType);
typedef void (*CHIPAdministratorCommissioningClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::AdministratorCommissioning::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPAdministratorCommissioningClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::AdministratorCommissioning::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPAdministratorCommissioningClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::AdministratorCommissioning::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPAdministratorCommissioningClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::AdministratorCommissioning::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPAdministratorCommissioningClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::AdministratorCommissioning::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPOperationalCredentialsClusterAttestationResponseCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Commands::AttestationResponse::DecodableType &);
typedef void (*CHIPOperationalCredentialsClusterCertificateChainResponseCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Commands::CertificateChainResponse::DecodableType &);
typedef void (*CHIPOperationalCredentialsClusterCSRResponseCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Commands::CSRResponse::DecodableType &);
typedef void (*CHIPOperationalCredentialsClusterNOCResponseCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType &);

typedef void (*CHIPOperationalCredentialsClusterNOCsAttributeCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Attributes::NOCs::TypeInfo::DecodableType &);
typedef void (*CHIPOperationalCredentialsClusterFabricsAttributeCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Attributes::Fabrics::TypeInfo::DecodableType &);
typedef void (*CHIPOperationalCredentialsClusterSupportedFabricsAttributeCallbackType)(
    void *, chip::app::Clusters::OperationalCredentials::Attributes::SupportedFabrics::TypeInfo::DecodableArgType);
typedef void (*CHIPOperationalCredentialsClusterCommissionedFabricsAttributeCallbackType)(
    void *, chip::app::Clusters::OperationalCredentials::Attributes::CommissionedFabrics::TypeInfo::DecodableArgType);
typedef void (*CHIPOperationalCredentialsClusterTrustedRootCertificatesAttributeCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Attributes::TrustedRootCertificates::TypeInfo::DecodableType &);
typedef void (*CHIPOperationalCredentialsClusterCurrentFabricIndexAttributeCallbackType)(
    void *, chip::app::Clusters::OperationalCredentials::Attributes::CurrentFabricIndex::TypeInfo::DecodableArgType);
typedef void (*CHIPOperationalCredentialsClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPOperationalCredentialsClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPOperationalCredentialsClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPOperationalCredentialsClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::OperationalCredentials::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPOperationalCredentialsClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::OperationalCredentials::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPGroupKeyManagementClusterKeySetReadResponseCallbackType)(
    void *, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadResponse::DecodableType &);
typedef void (*CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallbackType)(
    void *, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadAllIndicesResponse::DecodableType &);

typedef void (*CHIPGroupKeyManagementClusterGroupKeyMapAttributeCallbackType)(
    void *, const chip::app::Clusters::GroupKeyManagement::Attributes::GroupKeyMap::TypeInfo::DecodableType &);
typedef void (*CHIPGroupKeyManagementClusterGroupTableAttributeCallbackType)(
    void *, const chip::app::Clusters::GroupKeyManagement::Attributes::GroupTable::TypeInfo::DecodableType &);
typedef void (*CHIPGroupKeyManagementClusterMaxGroupsPerFabricAttributeCallbackType)(
    void *, chip::app::Clusters::GroupKeyManagement::Attributes::MaxGroupsPerFabric::TypeInfo::DecodableArgType);
typedef void (*CHIPGroupKeyManagementClusterMaxGroupKeysPerFabricAttributeCallbackType)(
    void *, chip::app::Clusters::GroupKeyManagement::Attributes::MaxGroupKeysPerFabric::TypeInfo::DecodableArgType);
typedef void (*CHIPGroupKeyManagementClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::GroupKeyManagement::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPGroupKeyManagementClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::GroupKeyManagement::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPGroupKeyManagementClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::GroupKeyManagement::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPGroupKeyManagementClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::GroupKeyManagement::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPGroupKeyManagementClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::GroupKeyManagement::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPFixedLabelClusterLabelListAttributeCallbackType)(
    void *, const chip::app::Clusters::FixedLabel::Attributes::LabelList::TypeInfo::DecodableType &);
typedef void (*CHIPFixedLabelClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::FixedLabel::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPFixedLabelClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::FixedLabel::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPFixedLabelClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::FixedLabel::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPFixedLabelClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::FixedLabel::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPFixedLabelClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::FixedLabel::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPUserLabelClusterLabelListAttributeCallbackType)(
    void *, const chip::app::Clusters::UserLabel::Attributes::LabelList::TypeInfo::DecodableType &);
typedef void (*CHIPUserLabelClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::UserLabel::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPUserLabelClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::UserLabel::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPUserLabelClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::UserLabel::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPUserLabelClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::UserLabel::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPBooleanStateClusterStateValueAttributeCallbackType)(
    void *, chip::app::Clusters::BooleanState::Attributes::StateValue::TypeInfo::DecodableArgType);
typedef void (*CHIPBooleanStateClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::BooleanState::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPBooleanStateClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::BooleanState::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPBooleanStateClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::BooleanState::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPBooleanStateClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::BooleanState::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPBooleanStateClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::BooleanState::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPModeSelectClusterDescriptionAttributeCallbackType)(
    void *, chip::app::Clusters::ModeSelect::Attributes::Description::TypeInfo::DecodableArgType);
typedef void (*CHIPModeSelectClusterStandardNamespaceAttributeCallbackType)(
    void *, chip::app::Clusters::ModeSelect::Attributes::StandardNamespace::TypeInfo::DecodableArgType);
typedef void (*CHIPModeSelectClusterSupportedModesAttributeCallbackType)(
    void *, const chip::app::Clusters::ModeSelect::Attributes::SupportedModes::TypeInfo::DecodableType &);
typedef void (*CHIPModeSelectClusterCurrentModeAttributeCallbackType)(
    void *, chip::app::Clusters::ModeSelect::Attributes::CurrentMode::TypeInfo::DecodableArgType);
typedef void (*CHIPModeSelectClusterStartUpModeAttributeCallbackType)(
    void *, chip::app::Clusters::ModeSelect::Attributes::StartUpMode::TypeInfo::DecodableArgType);
typedef void (*CHIPModeSelectClusterOnModeAttributeCallbackType)(
    void *, chip::app::Clusters::ModeSelect::Attributes::OnMode::TypeInfo::DecodableArgType);
typedef void (*CHIPModeSelectClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ModeSelect::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPModeSelectClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ModeSelect::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPModeSelectClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::ModeSelect::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPModeSelectClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::ModeSelect::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPModeSelectClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::ModeSelect::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterGetWeekDayScheduleResponseCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Commands::GetWeekDayScheduleResponse::DecodableType &);
typedef void (*CHIPDoorLockClusterGetYearDayScheduleResponseCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Commands::GetYearDayScheduleResponse::DecodableType &);
typedef void (*CHIPDoorLockClusterGetHolidayScheduleResponseCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Commands::GetHolidayScheduleResponse::DecodableType &);
typedef void (*CHIPDoorLockClusterGetUserResponseCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Commands::GetUserResponse::DecodableType &);
typedef void (*CHIPDoorLockClusterSetCredentialResponseCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Commands::SetCredentialResponse::DecodableType &);
typedef void (*CHIPDoorLockClusterGetCredentialStatusResponseCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType &);

typedef void (*CHIPDoorLockClusterLockStateAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::LockState::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterLockTypeAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::LockType::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterActuatorEnabledAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::ActuatorEnabled::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterDoorStateAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::DoorState::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterNumberOfTotalUsersSupportedAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::NumberOfTotalUsersSupported::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterNumberOfPINUsersSupportedAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::NumberOfPINUsersSupported::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterNumberOfRFIDUsersSupportedAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::NumberOfRFIDUsersSupported::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterNumberOfWeekDaySchedulesSupportedPerUserAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::NumberOfWeekDaySchedulesSupportedPerUser::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterNumberOfYearDaySchedulesSupportedPerUserAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::NumberOfYearDaySchedulesSupportedPerUser::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterNumberOfHolidaySchedulesSupportedAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::NumberOfHolidaySchedulesSupported::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterMaxPINCodeLengthAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::MaxPINCodeLength::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterMinPINCodeLengthAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::MinPINCodeLength::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterMaxRFIDCodeLengthAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::MaxRFIDCodeLength::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterMinRFIDCodeLengthAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::MinRFIDCodeLength::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterNumberOfCredentialsSupportedPerUserAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::NumberOfCredentialsSupportedPerUser::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterLanguageAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::Language::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterAutoRelockTimeAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::AutoRelockTime::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterSoundVolumeAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::SoundVolume::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterOperatingModeAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::OperatingMode::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterSupportedOperatingModesAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::SupportedOperatingModes::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterEnableOneTouchLockingAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::EnableOneTouchLocking::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterEnablePrivacyModeButtonAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::EnablePrivacyModeButton::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterWrongCodeEntryLimitAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::WrongCodeEntryLimit::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterUserCodeTemporaryDisableTimeAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::UserCodeTemporaryDisableTime::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterRequirePINforRemoteOperationAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::RequirePINforRemoteOperation::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPDoorLockClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPDoorLockClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPDoorLockClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPDoorLockClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::DoorLock::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPWindowCoveringClusterTypeAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::Type::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterPhysicalClosedLimitLiftAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::PhysicalClosedLimitLift::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterPhysicalClosedLimitTiltAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::PhysicalClosedLimitTilt::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterCurrentPositionLiftAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::CurrentPositionLift::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterCurrentPositionTiltAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::CurrentPositionTilt::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterNumberOfActuationsLiftAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::NumberOfActuationsLift::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterNumberOfActuationsTiltAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::NumberOfActuationsTilt::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterConfigStatusAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::ConfigStatus::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterCurrentPositionLiftPercentageAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::CurrentPositionLiftPercentage::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterCurrentPositionTiltPercentageAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::CurrentPositionTiltPercentage::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterOperationalStatusAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::OperationalStatus::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterTargetPositionLiftPercent100thsAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::TargetPositionLiftPercent100ths::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterTargetPositionTiltPercent100thsAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::TargetPositionTiltPercent100ths::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterEndProductTypeAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::EndProductType::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterCurrentPositionLiftPercent100thsAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::CurrentPositionLiftPercent100ths::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterCurrentPositionTiltPercent100thsAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::CurrentPositionTiltPercent100ths::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterInstalledOpenLimitLiftAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::InstalledOpenLimitLift::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterInstalledClosedLimitLiftAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::InstalledClosedLimitLift::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterInstalledOpenLimitTiltAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::InstalledOpenLimitTilt::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterInstalledClosedLimitTiltAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::InstalledClosedLimitTilt::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterModeAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::Mode::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterSafetyStatusAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::SafetyStatus::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::WindowCovering::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPWindowCoveringClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::WindowCovering::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPWindowCoveringClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::WindowCovering::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPWindowCoveringClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPWindowCoveringClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::WindowCovering::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPBarrierControlClusterBarrierMovingStateAttributeCallbackType)(
    void *, chip::app::Clusters::BarrierControl::Attributes::BarrierMovingState::TypeInfo::DecodableArgType);
typedef void (*CHIPBarrierControlClusterBarrierSafetyStatusAttributeCallbackType)(
    void *, chip::app::Clusters::BarrierControl::Attributes::BarrierSafetyStatus::TypeInfo::DecodableArgType);
typedef void (*CHIPBarrierControlClusterBarrierCapabilitiesAttributeCallbackType)(
    void *, chip::app::Clusters::BarrierControl::Attributes::BarrierCapabilities::TypeInfo::DecodableArgType);
typedef void (*CHIPBarrierControlClusterBarrierPositionAttributeCallbackType)(
    void *, chip::app::Clusters::BarrierControl::Attributes::BarrierPosition::TypeInfo::DecodableArgType);
typedef void (*CHIPBarrierControlClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::BarrierControl::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPBarrierControlClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::BarrierControl::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPBarrierControlClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::BarrierControl::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPBarrierControlClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::BarrierControl::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPBarrierControlClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::BarrierControl::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPPumpConfigurationAndControlClusterMaxPressureAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::MaxPressure::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterMaxSpeedAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::MaxSpeed::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterMaxFlowAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::MaxFlow::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterMinConstPressureAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::MinConstPressure::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterMaxConstPressureAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::MaxConstPressure::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterMinCompPressureAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::MinCompPressure::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterMaxCompPressureAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::MaxCompPressure::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterMinConstSpeedAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::MinConstSpeed::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterMaxConstSpeedAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::MaxConstSpeed::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterMinConstFlowAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::MinConstFlow::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterMaxConstFlowAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::MaxConstFlow::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterMinConstTempAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::MinConstTemp::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterMaxConstTempAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::MaxConstTemp::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterPumpStatusAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::PumpStatus::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterEffectiveOperationModeAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::EffectiveOperationMode::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterEffectiveControlModeAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::EffectiveControlMode::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterCapacityAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::Capacity::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterSpeedAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::Speed::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterLifetimeRunningHoursAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::LifetimeRunningHours::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterPowerAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::Power::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterLifetimeEnergyConsumedAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterOperationModeAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::OperationMode::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterControlModeAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::ControlMode::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::PumpConfigurationAndControl::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPPumpConfigurationAndControlClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::PumpConfigurationAndControl::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPPumpConfigurationAndControlClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::PumpConfigurationAndControl::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPPumpConfigurationAndControlClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPPumpConfigurationAndControlClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterGetWeeklyScheduleResponseCallbackType)(
    void *, const chip::app::Clusters::Thermostat::Commands::GetWeeklyScheduleResponse::DecodableType &);

typedef void (*CHIPThermostatClusterLocalTemperatureAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::LocalTemperature::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterAbsMinHeatSetpointLimitAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::AbsMinHeatSetpointLimit::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterAbsMaxHeatSetpointLimitAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::AbsMaxHeatSetpointLimit::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterAbsMinCoolSetpointLimitAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::AbsMinCoolSetpointLimit::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterAbsMaxCoolSetpointLimitAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::AbsMaxCoolSetpointLimit::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterOccupiedCoolingSetpointAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::OccupiedCoolingSetpoint::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterOccupiedHeatingSetpointAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::OccupiedHeatingSetpoint::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterMinHeatSetpointLimitAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::MinHeatSetpointLimit::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterMaxHeatSetpointLimitAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::MaxHeatSetpointLimit::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterMinCoolSetpointLimitAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::MinCoolSetpointLimit::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterMaxCoolSetpointLimitAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::MaxCoolSetpointLimit::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterMinSetpointDeadBandAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::MinSetpointDeadBand::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterControlSequenceOfOperationAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::ControlSequenceOfOperation::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterSystemModeAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::SystemMode::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterStartOfWeekAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::StartOfWeek::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterNumberOfWeeklyTransitionsAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::NumberOfWeeklyTransitions::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterNumberOfDailyTransitionsAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::NumberOfDailyTransitions::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::Thermostat::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPThermostatClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::Thermostat::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPFanControlClusterFanModeAttributeCallbackType)(
    void *, chip::app::Clusters::FanControl::Attributes::FanMode::TypeInfo::DecodableArgType);
typedef void (*CHIPFanControlClusterFanModeSequenceAttributeCallbackType)(
    void *, chip::app::Clusters::FanControl::Attributes::FanModeSequence::TypeInfo::DecodableArgType);
typedef void (*CHIPFanControlClusterPercentSettingAttributeCallbackType)(
    void *, chip::app::Clusters::FanControl::Attributes::PercentSetting::TypeInfo::DecodableArgType);
typedef void (*CHIPFanControlClusterPercentCurrentAttributeCallbackType)(
    void *, chip::app::Clusters::FanControl::Attributes::PercentCurrent::TypeInfo::DecodableArgType);
typedef void (*CHIPFanControlClusterSpeedMaxAttributeCallbackType)(
    void *, chip::app::Clusters::FanControl::Attributes::SpeedMax::TypeInfo::DecodableArgType);
typedef void (*CHIPFanControlClusterSpeedSettingAttributeCallbackType)(
    void *, chip::app::Clusters::FanControl::Attributes::SpeedSetting::TypeInfo::DecodableArgType);
typedef void (*CHIPFanControlClusterSpeedCurrentAttributeCallbackType)(
    void *, chip::app::Clusters::FanControl::Attributes::SpeedCurrent::TypeInfo::DecodableArgType);
typedef void (*CHIPFanControlClusterRockSupportAttributeCallbackType)(
    void *, chip::app::Clusters::FanControl::Attributes::RockSupport::TypeInfo::DecodableArgType);
typedef void (*CHIPFanControlClusterRockSettingAttributeCallbackType)(
    void *, chip::app::Clusters::FanControl::Attributes::RockSetting::TypeInfo::DecodableArgType);
typedef void (*CHIPFanControlClusterWindSupportAttributeCallbackType)(
    void *, chip::app::Clusters::FanControl::Attributes::WindSupport::TypeInfo::DecodableArgType);
typedef void (*CHIPFanControlClusterWindSettingAttributeCallbackType)(
    void *, chip::app::Clusters::FanControl::Attributes::WindSetting::TypeInfo::DecodableArgType);
typedef void (*CHIPFanControlClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::FanControl::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPFanControlClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::FanControl::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPFanControlClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::FanControl::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPFanControlClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::FanControl::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPFanControlClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::FanControl::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPThermostatUserInterfaceConfigurationClusterTemperatureDisplayModeAttributeCallbackType)(
    void *,
    chip::app::Clusters::ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatUserInterfaceConfigurationClusterKeypadLockoutAttributeCallbackType)(
    void *, chip::app::Clusters::ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatUserInterfaceConfigurationClusterScheduleProgrammingVisibilityAttributeCallbackType)(
    void *,
    chip::app::Clusters::ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::TypeInfo::
        DecodableArgType);
typedef void (*CHIPThermostatUserInterfaceConfigurationClusterGeneratedCommandListAttributeCallbackType)(
    void *,
    const chip::app::Clusters::ThermostatUserInterfaceConfiguration::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPThermostatUserInterfaceConfigurationClusterAcceptedCommandListAttributeCallbackType)(
    void *,
    const chip::app::Clusters::ThermostatUserInterfaceConfiguration::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPThermostatUserInterfaceConfigurationClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::ThermostatUserInterfaceConfiguration::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPThermostatUserInterfaceConfigurationClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::ThermostatUserInterfaceConfiguration::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPThermostatUserInterfaceConfigurationClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::ThermostatUserInterfaceConfiguration::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPColorControlClusterCurrentHueAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::CurrentHue::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterCurrentSaturationAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::CurrentSaturation::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterRemainingTimeAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::RemainingTime::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterCurrentXAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::CurrentX::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterCurrentYAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::CurrentY::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterDriftCompensationAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::DriftCompensation::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterCompensationTextAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::CompensationText::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorTemperatureMiredsAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorTemperatureMireds::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorModeAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorMode::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterOptionsAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Options::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterNumberOfPrimariesAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::NumberOfPrimaries::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary1XAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary1X::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary1YAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary1Y::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary1IntensityAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary1Intensity::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary2XAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary2X::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary2YAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary2Y::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary2IntensityAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary2Intensity::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary3XAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary3X::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary3YAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary3Y::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary3IntensityAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary3Intensity::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary4XAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary4X::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary4YAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary4Y::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary4IntensityAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary4Intensity::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary5XAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary5X::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary5YAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary5Y::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary5IntensityAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary5Intensity::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary6XAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary6X::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary6YAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary6Y::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterPrimary6IntensityAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::Primary6Intensity::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterWhitePointXAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::WhitePointX::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterWhitePointYAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::WhitePointY::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorPointRXAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorPointRX::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorPointRYAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorPointRY::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorPointRIntensityAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorPointRIntensity::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorPointGXAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorPointGX::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorPointGYAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorPointGY::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorPointGIntensityAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorPointGIntensity::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorPointBXAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorPointBX::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorPointBYAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorPointBY::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorPointBIntensityAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorPointBIntensity::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterEnhancedCurrentHueAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::EnhancedCurrentHue::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterEnhancedColorModeAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::EnhancedColorMode::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorLoopActiveAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorLoopActive::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorLoopDirectionAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorLoopDirection::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorLoopTimeAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorLoopTime::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorLoopStartEnhancedHueAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorLoopStartEnhancedHue::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorLoopStoredEnhancedHueAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorLoopStoredEnhancedHue::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorCapabilitiesAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorCapabilities::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorTempPhysicalMinMiredsAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorTempPhysicalMinMireds::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterColorTempPhysicalMaxMiredsAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ColorTempPhysicalMaxMireds::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterCoupleColorTempToLevelMinMiredsAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::CoupleColorTempToLevelMinMireds::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterStartUpColorTemperatureMiredsAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::StartUpColorTemperatureMireds::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ColorControl::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPColorControlClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ColorControl::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPColorControlClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::ColorControl::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPColorControlClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPColorControlClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::ColorControl::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPBallastConfigurationClusterPhysicalMinLevelAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::PhysicalMinLevel::TypeInfo::DecodableArgType);
typedef void (*CHIPBallastConfigurationClusterPhysicalMaxLevelAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::PhysicalMaxLevel::TypeInfo::DecodableArgType);
typedef void (*CHIPBallastConfigurationClusterBallastStatusAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::BallastStatus::TypeInfo::DecodableArgType);
typedef void (*CHIPBallastConfigurationClusterMinLevelAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::MinLevel::TypeInfo::DecodableArgType);
typedef void (*CHIPBallastConfigurationClusterMaxLevelAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::MaxLevel::TypeInfo::DecodableArgType);
typedef void (*CHIPBallastConfigurationClusterIntrinsicBallastFactorAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::IntrinsicBallastFactor::TypeInfo::DecodableArgType);
typedef void (*CHIPBallastConfigurationClusterBallastFactorAdjustmentAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::BallastFactorAdjustment::TypeInfo::DecodableArgType);
typedef void (*CHIPBallastConfigurationClusterLampQuantityAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::LampQuantity::TypeInfo::DecodableArgType);
typedef void (*CHIPBallastConfigurationClusterLampTypeAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::LampType::TypeInfo::DecodableArgType);
typedef void (*CHIPBallastConfigurationClusterLampManufacturerAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::LampManufacturer::TypeInfo::DecodableArgType);
typedef void (*CHIPBallastConfigurationClusterLampRatedHoursAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::LampRatedHours::TypeInfo::DecodableArgType);
typedef void (*CHIPBallastConfigurationClusterLampBurnHoursAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::LampBurnHours::TypeInfo::DecodableArgType);
typedef void (*CHIPBallastConfigurationClusterLampAlarmModeAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::LampAlarmMode::TypeInfo::DecodableArgType);
typedef void (*CHIPBallastConfigurationClusterLampBurnHoursTripPointAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::LampBurnHoursTripPoint::TypeInfo::DecodableArgType);
typedef void (*CHIPBallastConfigurationClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::BallastConfiguration::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPBallastConfigurationClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::BallastConfiguration::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPBallastConfigurationClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::BallastConfiguration::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPBallastConfigurationClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPBallastConfigurationClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::BallastConfiguration::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPIlluminanceMeasurementClusterMeasuredValueAttributeCallbackType)(
    void *, chip::app::Clusters::IlluminanceMeasurement::Attributes::MeasuredValue::TypeInfo::DecodableArgType);
typedef void (*CHIPIlluminanceMeasurementClusterMinMeasuredValueAttributeCallbackType)(
    void *, chip::app::Clusters::IlluminanceMeasurement::Attributes::MinMeasuredValue::TypeInfo::DecodableArgType);
typedef void (*CHIPIlluminanceMeasurementClusterMaxMeasuredValueAttributeCallbackType)(
    void *, chip::app::Clusters::IlluminanceMeasurement::Attributes::MaxMeasuredValue::TypeInfo::DecodableArgType);
typedef void (*CHIPIlluminanceMeasurementClusterToleranceAttributeCallbackType)(
    void *, chip::app::Clusters::IlluminanceMeasurement::Attributes::Tolerance::TypeInfo::DecodableArgType);
typedef void (*CHIPIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackType)(
    void *, chip::app::Clusters::IlluminanceMeasurement::Attributes::LightSensorType::TypeInfo::DecodableArgType);
typedef void (*CHIPIlluminanceMeasurementClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::IlluminanceMeasurement::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPIlluminanceMeasurementClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::IlluminanceMeasurement::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPIlluminanceMeasurementClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::IlluminanceMeasurement::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPIlluminanceMeasurementClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::IlluminanceMeasurement::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPIlluminanceMeasurementClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::IlluminanceMeasurement::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPTemperatureMeasurementClusterMeasuredValueAttributeCallbackType)(
    void *, chip::app::Clusters::TemperatureMeasurement::Attributes::MeasuredValue::TypeInfo::DecodableArgType);
typedef void (*CHIPTemperatureMeasurementClusterMinMeasuredValueAttributeCallbackType)(
    void *, chip::app::Clusters::TemperatureMeasurement::Attributes::MinMeasuredValue::TypeInfo::DecodableArgType);
typedef void (*CHIPTemperatureMeasurementClusterMaxMeasuredValueAttributeCallbackType)(
    void *, chip::app::Clusters::TemperatureMeasurement::Attributes::MaxMeasuredValue::TypeInfo::DecodableArgType);
typedef void (*CHIPTemperatureMeasurementClusterToleranceAttributeCallbackType)(
    void *, chip::app::Clusters::TemperatureMeasurement::Attributes::Tolerance::TypeInfo::DecodableArgType);
typedef void (*CHIPTemperatureMeasurementClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::TemperatureMeasurement::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPTemperatureMeasurementClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::TemperatureMeasurement::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPTemperatureMeasurementClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::TemperatureMeasurement::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPPressureMeasurementClusterMeasuredValueAttributeCallbackType)(
    void *, chip::app::Clusters::PressureMeasurement::Attributes::MeasuredValue::TypeInfo::DecodableArgType);
typedef void (*CHIPPressureMeasurementClusterMinMeasuredValueAttributeCallbackType)(
    void *, chip::app::Clusters::PressureMeasurement::Attributes::MinMeasuredValue::TypeInfo::DecodableArgType);
typedef void (*CHIPPressureMeasurementClusterMaxMeasuredValueAttributeCallbackType)(
    void *, chip::app::Clusters::PressureMeasurement::Attributes::MaxMeasuredValue::TypeInfo::DecodableArgType);
typedef void (*CHIPPressureMeasurementClusterToleranceAttributeCallbackType)(
    void *, chip::app::Clusters::PressureMeasurement::Attributes::Tolerance::TypeInfo::DecodableArgType);
typedef void (*CHIPPressureMeasurementClusterScaledValueAttributeCallbackType)(
    void *, chip::app::Clusters::PressureMeasurement::Attributes::ScaledValue::TypeInfo::DecodableArgType);
typedef void (*CHIPPressureMeasurementClusterMinScaledValueAttributeCallbackType)(
    void *, chip::app::Clusters::PressureMeasurement::Attributes::MinScaledValue::TypeInfo::DecodableArgType);
typedef void (*CHIPPressureMeasurementClusterMaxScaledValueAttributeCallbackType)(
    void *, chip::app::Clusters::PressureMeasurement::Attributes::MaxScaledValue::TypeInfo::DecodableArgType);
typedef void (*CHIPPressureMeasurementClusterScaledToleranceAttributeCallbackType)(
    void *, chip::app::Clusters::PressureMeasurement::Attributes::ScaledTolerance::TypeInfo::DecodableArgType);
typedef void (*CHIPPressureMeasurementClusterScaleAttributeCallbackType)(
    void *, chip::app::Clusters::PressureMeasurement::Attributes::Scale::TypeInfo::DecodableArgType);
typedef void (*CHIPPressureMeasurementClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::PressureMeasurement::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPPressureMeasurementClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::PressureMeasurement::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPPressureMeasurementClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::PressureMeasurement::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPFlowMeasurementClusterMeasuredValueAttributeCallbackType)(
    void *, chip::app::Clusters::FlowMeasurement::Attributes::MeasuredValue::TypeInfo::DecodableArgType);
typedef void (*CHIPFlowMeasurementClusterMinMeasuredValueAttributeCallbackType)(
    void *, chip::app::Clusters::FlowMeasurement::Attributes::MinMeasuredValue::TypeInfo::DecodableArgType);
typedef void (*CHIPFlowMeasurementClusterMaxMeasuredValueAttributeCallbackType)(
    void *, chip::app::Clusters::FlowMeasurement::Attributes::MaxMeasuredValue::TypeInfo::DecodableArgType);
typedef void (*CHIPFlowMeasurementClusterToleranceAttributeCallbackType)(
    void *, chip::app::Clusters::FlowMeasurement::Attributes::Tolerance::TypeInfo::DecodableArgType);
typedef void (*CHIPFlowMeasurementClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::FlowMeasurement::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPFlowMeasurementClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::FlowMeasurement::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPFlowMeasurementClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::FlowMeasurement::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPFlowMeasurementClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::FlowMeasurement::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPFlowMeasurementClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::FlowMeasurement::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPRelativeHumidityMeasurementClusterMeasuredValueAttributeCallbackType)(
    void *, chip::app::Clusters::RelativeHumidityMeasurement::Attributes::MeasuredValue::TypeInfo::DecodableArgType);
typedef void (*CHIPRelativeHumidityMeasurementClusterMinMeasuredValueAttributeCallbackType)(
    void *, chip::app::Clusters::RelativeHumidityMeasurement::Attributes::MinMeasuredValue::TypeInfo::DecodableArgType);
typedef void (*CHIPRelativeHumidityMeasurementClusterMaxMeasuredValueAttributeCallbackType)(
    void *, chip::app::Clusters::RelativeHumidityMeasurement::Attributes::MaxMeasuredValue::TypeInfo::DecodableArgType);
typedef void (*CHIPRelativeHumidityMeasurementClusterToleranceAttributeCallbackType)(
    void *, chip::app::Clusters::RelativeHumidityMeasurement::Attributes::Tolerance::TypeInfo::DecodableArgType);
typedef void (*CHIPRelativeHumidityMeasurementClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::RelativeHumidityMeasurement::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPRelativeHumidityMeasurementClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::RelativeHumidityMeasurement::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPRelativeHumidityMeasurementClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::RelativeHumidityMeasurement::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPRelativeHumidityMeasurementClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::RelativeHumidityMeasurement::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPRelativeHumidityMeasurementClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::RelativeHumidityMeasurement::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPOccupancySensingClusterOccupancyAttributeCallbackType)(
    void *, chip::app::Clusters::OccupancySensing::Attributes::Occupancy::TypeInfo::DecodableArgType);
typedef void (*CHIPOccupancySensingClusterOccupancySensorTypeAttributeCallbackType)(
    void *, chip::app::Clusters::OccupancySensing::Attributes::OccupancySensorType::TypeInfo::DecodableArgType);
typedef void (*CHIPOccupancySensingClusterOccupancySensorTypeBitmapAttributeCallbackType)(
    void *, chip::app::Clusters::OccupancySensing::Attributes::OccupancySensorTypeBitmap::TypeInfo::DecodableArgType);
typedef void (*CHIPOccupancySensingClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::OccupancySensing::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPOccupancySensingClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::OccupancySensing::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPOccupancySensingClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::OccupancySensing::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPOccupancySensingClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::OccupancySensing::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPOccupancySensingClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::OccupancySensing::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPWakeOnLanClusterMACAddressAttributeCallbackType)(
    void *, chip::app::Clusters::WakeOnLan::Attributes::MACAddress::TypeInfo::DecodableArgType);
typedef void (*CHIPWakeOnLanClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::WakeOnLan::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPWakeOnLanClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::WakeOnLan::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPWakeOnLanClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::WakeOnLan::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPWakeOnLanClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::WakeOnLan::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPWakeOnLanClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::WakeOnLan::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPChannelClusterChangeChannelResponseCallbackType)(
    void *, const chip::app::Clusters::Channel::Commands::ChangeChannelResponse::DecodableType &);

typedef void (*CHIPChannelClusterChannelListAttributeCallbackType)(
    void *, const chip::app::Clusters::Channel::Attributes::ChannelList::TypeInfo::DecodableType &);
typedef void (*CHIPChannelClusterLineupAttributeCallbackType)(
    void *, chip::app::Clusters::Channel::Attributes::Lineup::TypeInfo::DecodableArgType);
typedef void (*CHIPChannelClusterCurrentChannelAttributeCallbackType)(
    void *, chip::app::Clusters::Channel::Attributes::CurrentChannel::TypeInfo::DecodableArgType);
typedef void (*CHIPChannelClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Channel::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPChannelClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::Channel::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPChannelClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::Channel::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPChannelClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::Channel::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPChannelClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::Channel::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPTargetNavigatorClusterNavigateTargetResponseCallbackType)(
    void *, const chip::app::Clusters::TargetNavigator::Commands::NavigateTargetResponse::DecodableType &);

typedef void (*CHIPTargetNavigatorClusterTargetListAttributeCallbackType)(
    void *, const chip::app::Clusters::TargetNavigator::Attributes::TargetList::TypeInfo::DecodableType &);
typedef void (*CHIPTargetNavigatorClusterCurrentTargetAttributeCallbackType)(
    void *, chip::app::Clusters::TargetNavigator::Attributes::CurrentTarget::TypeInfo::DecodableArgType);
typedef void (*CHIPTargetNavigatorClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::TargetNavigator::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPTargetNavigatorClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::TargetNavigator::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPTargetNavigatorClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::TargetNavigator::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPTargetNavigatorClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::TargetNavigator::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPTargetNavigatorClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::TargetNavigator::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPMediaPlaybackClusterPlaybackResponseCallbackType)(
    void *, const chip::app::Clusters::MediaPlayback::Commands::PlaybackResponse::DecodableType &);

typedef void (*CHIPMediaPlaybackClusterCurrentStateAttributeCallbackType)(
    void *, chip::app::Clusters::MediaPlayback::Attributes::CurrentState::TypeInfo::DecodableArgType);
typedef void (*CHIPMediaPlaybackClusterStartTimeAttributeCallbackType)(
    void *, chip::app::Clusters::MediaPlayback::Attributes::StartTime::TypeInfo::DecodableArgType);
typedef void (*CHIPMediaPlaybackClusterDurationAttributeCallbackType)(
    void *, chip::app::Clusters::MediaPlayback::Attributes::Duration::TypeInfo::DecodableArgType);
typedef void (*CHIPMediaPlaybackClusterSampledPositionAttributeCallbackType)(
    void *, chip::app::Clusters::MediaPlayback::Attributes::SampledPosition::TypeInfo::DecodableArgType);
typedef void (*CHIPMediaPlaybackClusterPlaybackSpeedAttributeCallbackType)(
    void *, chip::app::Clusters::MediaPlayback::Attributes::PlaybackSpeed::TypeInfo::DecodableArgType);
typedef void (*CHIPMediaPlaybackClusterSeekRangeEndAttributeCallbackType)(
    void *, chip::app::Clusters::MediaPlayback::Attributes::SeekRangeEnd::TypeInfo::DecodableArgType);
typedef void (*CHIPMediaPlaybackClusterSeekRangeStartAttributeCallbackType)(
    void *, chip::app::Clusters::MediaPlayback::Attributes::SeekRangeStart::TypeInfo::DecodableArgType);
typedef void (*CHIPMediaPlaybackClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::MediaPlayback::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPMediaPlaybackClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::MediaPlayback::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPMediaPlaybackClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::MediaPlayback::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPMediaPlaybackClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::MediaPlayback::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPMediaPlaybackClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::MediaPlayback::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPMediaInputClusterInputListAttributeCallbackType)(
    void *, const chip::app::Clusters::MediaInput::Attributes::InputList::TypeInfo::DecodableType &);
typedef void (*CHIPMediaInputClusterCurrentInputAttributeCallbackType)(
    void *, chip::app::Clusters::MediaInput::Attributes::CurrentInput::TypeInfo::DecodableArgType);
typedef void (*CHIPMediaInputClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::MediaInput::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPMediaInputClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::MediaInput::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPMediaInputClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::MediaInput::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPMediaInputClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::MediaInput::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPMediaInputClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::MediaInput::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPLowPowerClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::LowPower::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPLowPowerClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::LowPower::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPLowPowerClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::LowPower::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPLowPowerClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::LowPower::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPLowPowerClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::LowPower::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPKeypadInputClusterSendKeyResponseCallbackType)(
    void *, const chip::app::Clusters::KeypadInput::Commands::SendKeyResponse::DecodableType &);

typedef void (*CHIPKeypadInputClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::KeypadInput::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPKeypadInputClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::KeypadInput::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPKeypadInputClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::KeypadInput::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPKeypadInputClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::KeypadInput::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPKeypadInputClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::KeypadInput::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPContentLauncherClusterLauncherResponseCallbackType)(
    void *, const chip::app::Clusters::ContentLauncher::Commands::LauncherResponse::DecodableType &);

typedef void (*CHIPContentLauncherClusterAcceptHeaderAttributeCallbackType)(
    void *, const chip::app::Clusters::ContentLauncher::Attributes::AcceptHeader::TypeInfo::DecodableType &);
typedef void (*CHIPContentLauncherClusterSupportedStreamingProtocolsAttributeCallbackType)(
    void *, chip::app::Clusters::ContentLauncher::Attributes::SupportedStreamingProtocols::TypeInfo::DecodableArgType);
typedef void (*CHIPContentLauncherClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ContentLauncher::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPContentLauncherClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ContentLauncher::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPContentLauncherClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::ContentLauncher::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPContentLauncherClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::ContentLauncher::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPContentLauncherClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::ContentLauncher::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPAudioOutputClusterOutputListAttributeCallbackType)(
    void *, const chip::app::Clusters::AudioOutput::Attributes::OutputList::TypeInfo::DecodableType &);
typedef void (*CHIPAudioOutputClusterCurrentOutputAttributeCallbackType)(
    void *, chip::app::Clusters::AudioOutput::Attributes::CurrentOutput::TypeInfo::DecodableArgType);
typedef void (*CHIPAudioOutputClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::AudioOutput::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPAudioOutputClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::AudioOutput::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPAudioOutputClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::AudioOutput::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPAudioOutputClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::AudioOutput::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPAudioOutputClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::AudioOutput::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPApplicationLauncherClusterLauncherResponseCallbackType)(
    void *, const chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType &);

typedef void (*CHIPApplicationLauncherClusterCatalogListAttributeCallbackType)(
    void *, const chip::app::Clusters::ApplicationLauncher::Attributes::CatalogList::TypeInfo::DecodableType &);
typedef void (*CHIPApplicationLauncherClusterCurrentAppAttributeCallbackType)(
    void *, chip::app::Clusters::ApplicationLauncher::Attributes::CurrentApp::TypeInfo::DecodableArgType);
typedef void (*CHIPApplicationLauncherClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ApplicationLauncher::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPApplicationLauncherClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ApplicationLauncher::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPApplicationLauncherClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::ApplicationLauncher::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPApplicationLauncherClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::ApplicationLauncher::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPApplicationLauncherClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::ApplicationLauncher::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPApplicationBasicClusterVendorNameAttributeCallbackType)(
    void *, chip::app::Clusters::ApplicationBasic::Attributes::VendorName::TypeInfo::DecodableArgType);
typedef void (*CHIPApplicationBasicClusterVendorIDAttributeCallbackType)(
    void *, chip::app::Clusters::ApplicationBasic::Attributes::VendorID::TypeInfo::DecodableArgType);
typedef void (*CHIPApplicationBasicClusterApplicationNameAttributeCallbackType)(
    void *, chip::app::Clusters::ApplicationBasic::Attributes::ApplicationName::TypeInfo::DecodableArgType);
typedef void (*CHIPApplicationBasicClusterProductIDAttributeCallbackType)(
    void *, chip::app::Clusters::ApplicationBasic::Attributes::ProductID::TypeInfo::DecodableArgType);
typedef void (*CHIPApplicationBasicClusterApplicationAttributeCallbackType)(
    void *, chip::app::Clusters::ApplicationBasic::Attributes::Application::TypeInfo::DecodableArgType);
typedef void (*CHIPApplicationBasicClusterStatusAttributeCallbackType)(
    void *, chip::app::Clusters::ApplicationBasic::Attributes::Status::TypeInfo::DecodableArgType);
typedef void (*CHIPApplicationBasicClusterApplicationVersionAttributeCallbackType)(
    void *, chip::app::Clusters::ApplicationBasic::Attributes::ApplicationVersion::TypeInfo::DecodableArgType);
typedef void (*CHIPApplicationBasicClusterAllowedVendorListAttributeCallbackType)(
    void *, const chip::app::Clusters::ApplicationBasic::Attributes::AllowedVendorList::TypeInfo::DecodableType &);
typedef void (*CHIPApplicationBasicClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ApplicationBasic::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPApplicationBasicClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ApplicationBasic::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPApplicationBasicClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::ApplicationBasic::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPApplicationBasicClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::ApplicationBasic::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPApplicationBasicClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::ApplicationBasic::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPAccountLoginClusterGetSetupPINResponseCallbackType)(
    void *, const chip::app::Clusters::AccountLogin::Commands::GetSetupPINResponse::DecodableType &);

typedef void (*CHIPAccountLoginClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::AccountLogin::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPAccountLoginClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::AccountLogin::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPAccountLoginClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::AccountLogin::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPAccountLoginClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::AccountLogin::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPAccountLoginClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::AccountLogin::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPElectricalMeasurementClusterMeasurementTypeAttributeCallbackType)(
    void *, chip::app::Clusters::ElectricalMeasurement::Attributes::MeasurementType::TypeInfo::DecodableArgType);
typedef void (*CHIPElectricalMeasurementClusterTotalActivePowerAttributeCallbackType)(
    void *, chip::app::Clusters::ElectricalMeasurement::Attributes::TotalActivePower::TypeInfo::DecodableArgType);
typedef void (*CHIPElectricalMeasurementClusterRmsVoltageAttributeCallbackType)(
    void *, chip::app::Clusters::ElectricalMeasurement::Attributes::RmsVoltage::TypeInfo::DecodableArgType);
typedef void (*CHIPElectricalMeasurementClusterRmsVoltageMinAttributeCallbackType)(
    void *, chip::app::Clusters::ElectricalMeasurement::Attributes::RmsVoltageMin::TypeInfo::DecodableArgType);
typedef void (*CHIPElectricalMeasurementClusterRmsVoltageMaxAttributeCallbackType)(
    void *, chip::app::Clusters::ElectricalMeasurement::Attributes::RmsVoltageMax::TypeInfo::DecodableArgType);
typedef void (*CHIPElectricalMeasurementClusterRmsCurrentAttributeCallbackType)(
    void *, chip::app::Clusters::ElectricalMeasurement::Attributes::RmsCurrent::TypeInfo::DecodableArgType);
typedef void (*CHIPElectricalMeasurementClusterRmsCurrentMinAttributeCallbackType)(
    void *, chip::app::Clusters::ElectricalMeasurement::Attributes::RmsCurrentMin::TypeInfo::DecodableArgType);
typedef void (*CHIPElectricalMeasurementClusterRmsCurrentMaxAttributeCallbackType)(
    void *, chip::app::Clusters::ElectricalMeasurement::Attributes::RmsCurrentMax::TypeInfo::DecodableArgType);
typedef void (*CHIPElectricalMeasurementClusterActivePowerAttributeCallbackType)(
    void *, chip::app::Clusters::ElectricalMeasurement::Attributes::ActivePower::TypeInfo::DecodableArgType);
typedef void (*CHIPElectricalMeasurementClusterActivePowerMinAttributeCallbackType)(
    void *, chip::app::Clusters::ElectricalMeasurement::Attributes::ActivePowerMin::TypeInfo::DecodableArgType);
typedef void (*CHIPElectricalMeasurementClusterActivePowerMaxAttributeCallbackType)(
    void *, chip::app::Clusters::ElectricalMeasurement::Attributes::ActivePowerMax::TypeInfo::DecodableArgType);
typedef void (*CHIPElectricalMeasurementClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ElectricalMeasurement::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPElectricalMeasurementClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ElectricalMeasurement::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPElectricalMeasurementClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::ElectricalMeasurement::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPElectricalMeasurementClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::ElectricalMeasurement::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPElectricalMeasurementClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::ElectricalMeasurement::Attributes::ClusterRevision::TypeInfo::DecodableArgType);

typedef void (*CHIPClientMonitoringClusterIdleModeIntervalAttributeCallbackType)(
    void *, chip::app::Clusters::ClientMonitoring::Attributes::IdleModeInterval::TypeInfo::DecodableArgType);
typedef void (*CHIPClientMonitoringClusterActiveModeIntervalAttributeCallbackType)(
    void *, chip::app::Clusters::ClientMonitoring::Attributes::ActiveModeInterval::TypeInfo::DecodableArgType);
typedef void (*CHIPClientMonitoringClusterActiveModeThresholdAttributeCallbackType)(
    void *, chip::app::Clusters::ClientMonitoring::Attributes::ActiveModeThreshold::TypeInfo::DecodableArgType);
typedef void (*CHIPClientMonitoringClusterExpectedClientsAttributeCallbackType)(
    void *, const chip::app::Clusters::ClientMonitoring::Attributes::ExpectedClients::TypeInfo::DecodableType &);
typedef void (*CHIPClientMonitoringClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ClientMonitoring::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPClientMonitoringClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::ClientMonitoring::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPClientMonitoringClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::ClientMonitoring::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPClientMonitoringClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::ClientMonitoring::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPClientMonitoringClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::ClientMonitoring::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterTestSpecificResponseCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Commands::TestSpecificResponse::DecodableType &);
typedef void (*CHIPUnitTestingClusterTestAddArgumentsResponseCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Commands::TestAddArgumentsResponse::DecodableType &);
typedef void (*CHIPUnitTestingClusterTestListInt8UReverseResponseCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseResponse::DecodableType &);
typedef void (*CHIPUnitTestingClusterTestEnumsResponseCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Commands::TestEnumsResponse::DecodableType &);
typedef void (*CHIPUnitTestingClusterTestNullableOptionalResponseCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalResponse::DecodableType &);
typedef void (*CHIPUnitTestingClusterBooleanResponseCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Commands::BooleanResponse::DecodableType &);
typedef void (*CHIPUnitTestingClusterSimpleStructResponseCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Commands::SimpleStructResponse::DecodableType &);
typedef void (*CHIPUnitTestingClusterTestEmitTestEventResponseCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventResponse::DecodableType &);

typedef void (*CHIPUnitTestingClusterBooleanAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Boolean::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterBitmap8AttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Bitmap8::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterBitmap16AttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Bitmap16::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterBitmap32AttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Bitmap32::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterBitmap64AttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Bitmap64::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt8uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int8u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt16uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int16u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt24uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int24u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt32uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int32u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt40uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int40u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt48uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int48u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt56uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int56u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt64uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int64u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt8sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int8s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt16sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int16s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt24sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int24s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt32sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int32s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt40sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int40s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt48sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int48s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt56sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int56s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterInt64sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Int64s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterEnum8AttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Enum8::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterEnum16AttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Enum16::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterFloatSingleAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::FloatSingle::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterFloatDoubleAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::FloatDouble::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterOctetStringAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::OctetString::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterListInt8uAttributeCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Attributes::ListInt8u::TypeInfo::DecodableType &);
typedef void (*CHIPUnitTestingClusterListOctetStringAttributeCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Attributes::ListOctetString::TypeInfo::DecodableType &);
typedef void (*CHIPUnitTestingClusterListStructOctetStringAttributeCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Attributes::ListStructOctetString::TypeInfo::DecodableType &);
typedef void (*CHIPUnitTestingClusterLongOctetStringAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::LongOctetString::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterCharStringAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::CharString::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterLongCharStringAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::LongCharString::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterEpochUsAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::EpochUs::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterEpochSAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::EpochS::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterVendorIdAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::VendorId::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterListNullablesAndOptionalsStructAttributeCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Attributes::ListNullablesAndOptionalsStruct::TypeInfo::DecodableType &);
typedef void (*CHIPUnitTestingClusterEnumAttrAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::EnumAttr::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterStructAttrAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::StructAttr::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterRangeRestrictedInt8uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::RangeRestrictedInt8u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterRangeRestrictedInt8sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::RangeRestrictedInt8s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterRangeRestrictedInt16uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::RangeRestrictedInt16u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterRangeRestrictedInt16sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::RangeRestrictedInt16s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterListLongOctetStringAttributeCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Attributes::ListLongOctetString::TypeInfo::DecodableType &);
typedef void (*CHIPUnitTestingClusterListFabricScopedAttributeCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Attributes::ListFabricScoped::TypeInfo::DecodableType &);
typedef void (*CHIPUnitTestingClusterTimedWriteBooleanAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::TimedWriteBoolean::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterGeneralErrorBooleanAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::GeneralErrorBoolean::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterClusterErrorBooleanAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::ClusterErrorBoolean::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterUnsupportedAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::Unsupported::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableBooleanAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableBoolean::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableBitmap8AttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableBitmap8::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableBitmap16AttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableBitmap16::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableBitmap32AttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableBitmap32::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableBitmap64AttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableBitmap64::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt8uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt8u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt16uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt16u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt24uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt24u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt32uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt32u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt40uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt40u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt48uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt48u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt56uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt56u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt64uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt64u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt8sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt8s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt16sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt16s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt24sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt24s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt32sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt32s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt40sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt40s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt48sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt48s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt56sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt56s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableInt64sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableInt64s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableEnum8AttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableEnum8::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableEnum16AttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableEnum16::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableFloatSingleAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableFloatSingle::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableFloatDoubleAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableFloatDouble::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableOctetStringAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableOctetString::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableCharStringAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableCharString::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableEnumAttrAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableEnumAttr::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableStructAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableStruct::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableRangeRestrictedInt8uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableRangeRestrictedInt8u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableRangeRestrictedInt8sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableRangeRestrictedInt8s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableRangeRestrictedInt16uAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableRangeRestrictedInt16u::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterNullableRangeRestrictedInt16sAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::NullableRangeRestrictedInt16s::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterGeneratedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPUnitTestingClusterAcceptedCommandListAttributeCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Attributes::AcceptedCommandList::TypeInfo::DecodableType &);
typedef void (*CHIPUnitTestingClusterAttributeListAttributeCallbackType)(
    void *, const chip::app::Clusters::UnitTesting::Attributes::AttributeList::TypeInfo::DecodableType &);
typedef void (*CHIPUnitTestingClusterFeatureMapAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::FeatureMap::TypeInfo::DecodableArgType);
typedef void (*CHIPUnitTestingClusterClusterRevisionAttributeCallbackType)(
    void *, chip::app::Clusters::UnitTesting::Attributes::ClusterRevision::TypeInfo::DecodableArgType);
