> ## Documentation Index
> Fetch the complete documentation index at: https://thrackle.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Reference TOC

* [client](/v2/reference/client/toc)
  * [IRulesEngine](/v2/reference/client/IRulesEngine.sol/interface.IRulesEngine)
  * [RulesEngineClient](/v2/reference/client/RulesEngineClient.sol/abstract.RulesEngineClient)
  * [RulesEngineClientERC1155](/v2/reference/client/RulesEngineClientERC1155.sol/abstract.RulesEngineClientERC1155)
  * [RulesEngineClientERC20](/v2/reference/client/RulesEngineClientERC20.sol/abstract.RulesEngineClientERC20)
  * [RulesEngineClientERC721](/v2/reference/client/RulesEngineClientERC721.sol/abstract.RulesEngineClientERC721)
  * [RulesEngineClientERC721A](/v2/reference/client/RulesEngineClientERC721A.sol/abstract.RulesEngineClientERC721A)
* [engine](/v2/reference/engine/toc)
  * [facets](/v2/reference/engine/facets/toc)
    * [AdminRoles constants](/v2/reference/engine/facets/AdminRoles.sol/constants.AdminRoles)
    * [FacetCommonImports](/v2/reference/engine/facets/FacetCommonImports.sol/abstract.FacetCommonImports)
    * [FacetUtils](/v2/reference/engine/facets/FacetUtils.sol/contract.FacetUtils)
    * [NativeFacet](/v2/reference/engine/facets/NativeFacet.sol/contract.NativeFacet)
    * [RulesEngineAdminRolesFacet](/v2/reference/engine/facets/RulesEngineAdminRolesFacet.sol/contract.RulesEngineAdminRolesFacet)
    * [RulesEngineComponentFacet](/v2/reference/engine/facets/RulesEngineComponentFacet.sol/contract.RulesEngineComponentFacet)
    * [RulesEngineInitialFacet](/v2/reference/engine/facets/RulesEngineInitialFacet.sol/contract.RulesEngineInitialFacet)
    * [RulesEnginePolicyFacet](/v2/reference/engine/facets/RulesEnginePolicyFacet.sol/contract.RulesEnginePolicyFacet)
    * [RulesEngineProcessorFacet](/v2/reference/engine/facets/RulesEngineProcessorFacet.sol/contract.RulesEngineProcessorFacet)
    * [RulesEngineProcessorLib](/v2/reference/engine/facets/RulesEngineProcessorLib.sol/library.RulesEngineProcessorLib)
    * [RulesEngineRuleFacet](/v2/reference/engine/facets/RulesEngineRuleFacet.sol/contract.RulesEngineRuleFacet)
    * [RulesEngineStorageLib](/v2/reference/engine/facets/RulesEngineStorageLib.sol/library.RulesEngineStorageLib)
  * [AccessModifiers](/v2/reference/engine/AccessModifiers.sol/contract.AccessModifiers)
  * [FunctionNotFound](/v2/reference/engine/RulesEngineDiamond.sol/error.FunctionNotFound)
  * [FacetHasNoCodeOrHasBeenDestroyed](/v2/reference/engine/RulesEngineDiamond.sol/error.FacetHasNoCodeOrHasBeenDestroyed)
  * [BatchError](/v2/reference/engine/RulesEngineDiamond.sol/error.BatchError)
  * [RulesEngineDiamondArgs](/v2/reference/engine/RulesEngineDiamond.sol/struct.RulesEngineDiamondArgs)
  * [RulesEngineDiamond](/v2/reference/engine/RulesEngineDiamond.sol/contract.RulesEngineDiamond)
  * [NoSelectorsGivenToAdd](/v2/reference/engine/RulesEngineDiamondLib.sol/error.NoSelectorsGivenToAdd)
  * [NotContractOwner](/v2/reference/engine/RulesEngineDiamondLib.sol/error.NotContractOwner)
  * [NoSelectorsProvidedForFacetForCut](/v2/reference/engine/RulesEngineDiamondLib.sol/error.NoSelectorsProvidedForFacetForCut)
  * [CannotAddSelectorsToZeroAddress](/v2/reference/engine/RulesEngineDiamondLib.sol/error.CannotAddSelectorsToZeroAddress)
  * [NoBytecodeAtAddress](/v2/reference/engine/RulesEngineDiamondLib.sol/error.NoBytecodeAtAddress)
  * [IncorrectFacetCutAction](/v2/reference/engine/RulesEngineDiamondLib.sol/error.IncorrectFacetCutAction)
  * [CannotAddFunctionToDiamondThatAlreadyExists](/v2/reference/engine/RulesEngineDiamondLib.sol/error.CannotAddFunctionToDiamondThatAlreadyExists)
  * [CannotReplaceFunctionsFromFacetWithZeroAddress](/v2/reference/engine/RulesEngineDiamondLib.sol/error.CannotReplaceFunctionsFromFacetWithZeroAddress)
  * [CannotReplaceImmutableFunction](/v2/reference/engine/RulesEngineDiamondLib.sol/error.CannotReplaceImmutableFunction)
  * [CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet](/v2/reference/engine/RulesEngineDiamondLib.sol/error.CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet)
  * [CannotReplaceFunctionThatDoesNotExists](/v2/reference/engine/RulesEngineDiamondLib.sol/error.CannotReplaceFunctionThatDoesNotExists)
  * [RemoveFacetAddressMustBeZeroAddress](/v2/reference/engine/RulesEngineDiamondLib.sol/error.RemoveFacetAddressMustBeZeroAddress)
  * [CannotRemoveFunctionThatDoesNotExist](/v2/reference/engine/RulesEngineDiamondLib.sol/error.CannotRemoveFunctionThatDoesNotExist)
  * [CannotRemoveImmutableFunction](/v2/reference/engine/RulesEngineDiamondLib.sol/error.CannotRemoveImmutableFunction)
  * [InitializationFunctionReverted](/v2/reference/engine/RulesEngineDiamondLib.sol/error.InitializationFunctionReverted)
  * [FacetAddressAndSelectorPosition](/v2/reference/engine/RulesEngineDiamondLib.sol/struct.FacetAddressAndSelectorPosition)
  * [RulesEngineDiamondStorage](/v2/reference/engine/RulesEngineDiamondLib.sol/struct.RulesEngineDiamondStorage)
  * [RulesEngineDiamondLib](/v2/reference/engine/RulesEngineDiamondLib.sol/library.RulesEngineDiamondLib)
  * [RulesEngineErrors constants](/v2/reference/engine/RulesEngineErrors.sol/constants.RulesEngineErrors)
  * [RulesEngineEvent](/v2/reference/engine/RulesEngineEvents.sol/event.RulesEngineEvent)
  * [RulesEngineEvent](/v2/reference/engine/RulesEngineEvents.sol/event.RulesEngineEvent)
  * [RulesEngineEvent](/v2/reference/engine/RulesEngineEvents.sol/event.RulesEngineEvent)
  * [RulesEngineEvent](/v2/reference/engine/RulesEngineEvents.sol/event.RulesEngineEvent)
  * [RulesEngineEvent](/v2/reference/engine/RulesEngineEvents.sol/event.RulesEngineEvent)
  * [ForeignCallCreated](/v2/reference/engine/RulesEngineEvents.sol/event.ForeignCallCreated)
  * [ForeignCallUpdated](/v2/reference/engine/RulesEngineEvents.sol/event.ForeignCallUpdated)
  * [ForeignCallDeleted](/v2/reference/engine/RulesEngineEvents.sol/event.ForeignCallDeleted)
  * [AssociatedRuleDeleted](/v2/reference/engine/RulesEngineEvents.sol/event.AssociatedRuleDeleted)
  * [TrackerCreated](/v2/reference/engine/RulesEngineEvents.sol/event.TrackerCreated)
  * [TrackerUpdated](/v2/reference/engine/RulesEngineEvents.sol/event.TrackerUpdated)
  * [TrackerDeleted](/v2/reference/engine/RulesEngineEvents.sol/event.TrackerDeleted)
  * [RuleCreated](/v2/reference/engine/RulesEngineEvents.sol/event.RuleCreated)
  * [RuleUpdated](/v2/reference/engine/RulesEngineEvents.sol/event.RuleUpdated)
  * [RuleDeleted](/v2/reference/engine/RulesEngineEvents.sol/event.RuleDeleted)
  * [PolicyCreated](/v2/reference/engine/RulesEngineEvents.sol/event.PolicyCreated)
  * [PolicyUpdated](/v2/reference/engine/RulesEngineEvents.sol/event.PolicyUpdated)
  * [PolicyDeleted](/v2/reference/engine/RulesEngineEvents.sol/event.PolicyDeleted)
  * [PolicyCemented](/v2/reference/engine/RulesEngineEvents.sol/event.PolicyCemented)
  * [PolicyOpened](/v2/reference/engine/RulesEngineEvents.sol/event.PolicyOpened)
  * [PolicyClosed](/v2/reference/engine/RulesEngineEvents.sol/event.PolicyClosed)
  * [PolicyApplied](/v2/reference/engine/RulesEngineEvents.sol/event.PolicyApplied)
  * [PolicyUnapplied](/v2/reference/engine/RulesEngineEvents.sol/event.PolicyUnapplied)
  * [PolicyRemoved](/v2/reference/engine/RulesEngineEvents.sol/event.PolicyRemoved)
  * [PolicySubsciberAdded](/v2/reference/engine/RulesEngineEvents.sol/event.PolicySubsciberAdded)
  * [PolicySubsciberRemoved](/v2/reference/engine/RulesEngineEvents.sol/event.PolicySubsciberRemoved)
  * [CallingFunctionCreated](/v2/reference/engine/RulesEngineEvents.sol/event.CallingFunctionCreated)
  * [CallingFunctionUpdated](/v2/reference/engine/RulesEngineEvents.sol/event.CallingFunctionUpdated)
  * [CallingFunctionDeleted](/v2/reference/engine/RulesEngineEvents.sol/event.CallingFunctionDeleted)
  * [PolicyAdminRoleGranted](/v2/reference/engine/RulesEngineEvents.sol/event.PolicyAdminRoleGranted)
  * [PolicyAdminRoleProposed](/v2/reference/engine/RulesEngineEvents.sol/event.PolicyAdminRoleProposed)
  * [PolicyAdminRoleConfirmed](/v2/reference/engine/RulesEngineEvents.sol/event.PolicyAdminRoleConfirmed)
  * [PolicyAdminRoleRenounced](/v2/reference/engine/RulesEngineEvents.sol/event.PolicyAdminRoleRenounced)
  * [PolicyAdminRoleRevoked](/v2/reference/engine/RulesEngineEvents.sol/event.PolicyAdminRoleRevoked)
  * [CallingContractAdminRoleGranted](/v2/reference/engine/RulesEngineEvents.sol/event.CallingContractAdminRoleGranted)
  * [CallingContractAdminRoleProposed](/v2/reference/engine/RulesEngineEvents.sol/event.CallingContractAdminRoleProposed)
  * [CallingContractAdminRoleConfirmed](/v2/reference/engine/RulesEngineEvents.sol/event.CallingContractAdminRoleConfirmed)
  * [RulesEngineStoragePositionLib](/v2/reference/engine/RulesEngineStoragePositionLib.sol/library.RulesEngineStoragePositionLib)
  * [InitializedStorage](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.InitializedStorage)
  * [LogicalOp](/v2/reference/engine/RulesEngineStorageStructure.sol/enum.LogicalOp)
  * [ParamTypes](/v2/reference/engine/RulesEngineStorageStructure.sol/enum.ParamTypes)
  * [EffectTypes](/v2/reference/engine/RulesEngineStorageStructure.sol/enum.EffectTypes)
  * [Placeholder](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.Placeholder)
  * [TrackerTypes](/v2/reference/engine/RulesEngineStorageStructure.sol/enum.TrackerTypes)
  * [Effect](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.Effect)
  * [ForeignCallStorage](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.ForeignCallStorage)
  * [ForeignCallMetadataStruct](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.ForeignCallMetadataStruct)
  * [TrackerMetadataStruct](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.TrackerMetadataStruct)
  * [CallingFunctionHashMapping](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.CallingFunctionHashMapping)
  * [CallingFunctionMetadataStruct](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.CallingFunctionMetadataStruct)
  * [ForeignCallReturnValue](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.ForeignCallReturnValue)
  * [Arguments](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.Arguments)
  * [ForeignCall](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.ForeignCall)
  * [TrackerStorage](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.TrackerStorage)
  * [Trackers](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.Trackers)
  * [CallingFunctionStruct](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.CallingFunctionStruct)
  * [CallingFunctionStorageSet](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.CallingFunctionStorageSet)
  * [RuleStorage](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.RuleStorage)
  * [RuleStorageSet](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.RuleStorageSet)
  * [Rule](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.Rule)
  * [RawData](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.RawData)
  * [StringVerificationStruct](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.StringVerificationStruct)
  * [AddressVerificationStruct](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.AddressVerificationStruct)
  * [PolicyStorage](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.PolicyStorage)
  * [PolicyType](/v2/reference/engine/RulesEngineStorageStructure.sol/enum.PolicyType)
  * [PolicyStorageSet](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.PolicyStorageSet)
  * [Policy](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.Policy)
  * [PolicyAssociationStorage](/v2/reference/engine/RulesEngineStorageStructure.sol/struct.PolicyAssociationStorage)
* [example](/v2/reference/example/toc)
  * [ERC721A](/v2/reference/example/ERC721A/toc)
    * [ERC721A\_\_IERC721Receiver](/v2/reference/example/ERC721A/ERC721A.sol/interface.ERC721A__IERC721Receiver)
    * [ERC721A](/v2/reference/example/ERC721A/ERC721A.sol/contract.ERC721A)
    * [ExampleERC721A](/v2/reference/example/ERC721A/ExampleERC721A.sol/contract.ExampleERC721A)
    * [IERC721A](/v2/reference/example/ERC721A/IERC721A.sol/interface.IERC721A)
  * [ExampleERC1155](/v2/reference/example/ExampleERC1155.sol/contract.ExampleERC1155)
  * [ExampleERC20](/v2/reference/example/ExampleERC20.sol/contract.ExampleERC20)
  * [ExampleERC721](/v2/reference/example/ExampleERC721.sol/contract.ExampleERC721)
  * [ExampleUserAccessControl](/v2/reference/example/ExampleUserAccessControl.sol/contract.ExampleUserAccessControl)
  * [ExampleUserContract](/v2/reference/example/ExampleUserContract.sol/contract.ExampleUserContract)
  * [ExampleUserContractExtraParams](/v2/reference/example/ExampleUserContract.sol/contract.ExampleUserContractExtraParams)
  * [ExampleUserOwnableContract](/v2/reference/example/ExampleUserOwnableContract.sol/contract.ExampleUserOwnableContract)
* [utils](/v2/reference/utils/toc)
  * [DiamondMine](/v2/reference/utils/DiamondMine.sol/contract.DiamondMine)
