[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_registry",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [],
    "name": "AlreadyVoted",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "AssessmentAlreadyExists",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "claimId",
        "type": "uint256"
      }
    ],
    "name": "HasNotVoted",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidAssessor",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidClaimId",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidGroupId",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidMemberId",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidProductType",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotEverybodyVoted",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "OnlyAdvisoryBoard",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "OnlyMember",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "currentState",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "checks",
        "type": "uint256"
      }
    ],
    "name": "Paused",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "RevertedWithoutReason",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "caller",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "callerIndex",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "authorizedBitmap",
        "type": "uint256"
      }
    ],
    "name": "Unauthorized",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "VotingAlreadyClosed",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "VotingPeriodEnded",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "productTypeId",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "groupId",
        "type": "uint256"
      }
    ],
    "name": "AssessingGroupForProductTypeSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "claimId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "assessorGroupId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "start",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "end",
        "type": "uint256"
      }
    ],
    "name": "AssessmentStarted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "groupId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "assessorMemberId",
        "type": "uint256"
      }
    ],
    "name": "AssessorAddedToGroup",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "groupId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "assessorMemberId",
        "type": "uint256"
      }
    ],
    "name": "AssessorRemovedFromGroup",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "groupId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "ipfsMetadata",
        "type": "bytes32"
      }
    ],
    "name": "GroupMetadataSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "claimId",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "assessor",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "assessorMemberId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "support",
        "type": "bool"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "ipfsHash",
        "type": "bytes32"
      }
    ],
    "name": "VoteCast",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "claimId",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "assessorMemberId",
        "type": "uint256"
      }
    ],
    "name": "VoteUndone",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "claimId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "newEnd",
        "type": "uint256"
      }
    ],
    "name": "VotingEndChanged",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "uint256[]",
        "name": "assessorMemberIds",
        "type": "uint256[]"
      },
      {
        "internalType": "uint256",
        "name": "groupId",
        "type": "uint256"
      }
    ],
    "name": "addAssessorsToGroup",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "claimId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "assessorMemberId",
        "type": "uint256"
      }
    ],
    "name": "ballotOf",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint32",
            "name": "timestamp",
            "type": "uint32"
          },
          {
            "internalType": "bool",
            "name": "support",
            "type": "bool"
          }
        ],
        "internalType": "struct IAssessments.Ballot",
        "name": "",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "claimId",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "voteSupport",
        "type": "bool"
      },
      {
        "internalType": "bytes32",
        "name": "ipfsHash",
        "type": "bytes32"
      }
    ],
    "name": "castVote",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "claimId",
        "type": "uint256"
      }
    ],
    "name": "closeVotingEarly",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "claimId",
        "type": "uint256"
      }
    ],
    "name": "extendVotingPeriod",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "productTypeId",
        "type": "uint256"
      }
    ],
    "name": "getAssessingGroupIdForProductType",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "assessingGroupId",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "claimId",
        "type": "uint256"
      }
    ],
    "name": "getAssessment",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint16",
            "name": "assessingGroupId",
            "type": "uint16"
          },
          {
            "internalType": "uint32",
            "name": "cooldownPeriod",
            "type": "uint32"
          },
          {
            "internalType": "uint32",
            "name": "start",
            "type": "uint32"
          },
          {
            "internalType": "uint32",
            "name": "votingEnd",
            "type": "uint32"
          },
          {
            "internalType": "uint8",
            "name": "acceptVotes",
            "type": "uint8"
          },
          {
            "internalType": "uint8",
            "name": "denyVotes",
            "type": "uint8"
          }
        ],
        "internalType": "struct Assessment",
        "name": "assessment",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "claimId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "assessorMemberId",
        "type": "uint256"
      }
    ],
    "name": "getBallotsMetadata",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "groupId",
        "type": "uint256"
      }
    ],
    "name": "getGroupAssessorCount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "assessorCount",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "groupId",
        "type": "uint256"
      }
    ],
    "name": "getGroupAssessors",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "assessorMemberIds",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getGroupsCount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "groupCount",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256[]",
        "name": "groupIds",
        "type": "uint256[]"
      }
    ],
    "name": "getGroupsData",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "id",
            "type": "uint256"
          },
          {
            "internalType": "bytes32",
            "name": "ipfsMetadata",
            "type": "bytes32"
          },
          {
            "internalType": "uint256[]",
            "name": "assessors",
            "type": "uint256[]"
          }
        ],
        "internalType": "struct IAssessments.AssessmentGroupView[]",
        "name": "groups",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "assessorMemberId",
        "type": "uint256"
      }
    ],
    "name": "getGroupsForAssessor",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "groupIds",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "assessorMemberId",
        "type": "uint256"
      }
    ],
    "name": "isAssessor",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "assessorMemberId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "groupId",
        "type": "uint256"
      }
    ],
    "name": "isAssessorInGroup",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "minVotingPeriod",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes[]",
        "name": "data",
        "type": "bytes[]"
      }
    ],
    "name": "multicall",
    "outputs": [
      {
        "internalType": "bytes[]",
        "name": "results",
        "type": "bytes[]"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "registry",
    "outputs": [
      {
        "internalType": "contract IRegistry",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "assessorMemberId",
        "type": "uint256"
      }
    ],
    "name": "removeAssessorFromAllGroups",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "assessorMemberId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "groupId",
        "type": "uint256"
      }
    ],
    "name": "removeAssessorFromGroup",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256[]",
        "name": "productTypeIds",
        "type": "uint256[]"
      },
      {
        "internalType": "uint256",
        "name": "groupId",
        "type": "uint256"
      }
    ],
    "name": "setAssessingGroupIdForProductTypes",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "groupId",
        "type": "uint256"
      },
      {
        "internalType": "bytes32",
        "name": "ipfsMetadata",
        "type": "bytes32"
      }
    ],
    "name": "setGroupMetadata",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "claimId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "productTypeId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "cooldownPeriod",
        "type": "uint256"
      }
    ],
    "name": "startAssessment",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "assessorMemberId",
        "type": "uint256"
      },
      {
        "internalType": "uint256[]",
        "name": "claimIds",
        "type": "uint256[]"
      }
    ],
    "name": "undoVotes",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]