/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import type {
  BaseContract,
  BigNumberish,
  BytesLike,
  FunctionFragment,
  Result,
  Interface,
  EventFragment,
  AddressLike,
  ContractRunner,
  ContractMethod,
  Listener,
} from "ethers";
import type {
  TypedContractEvent,
  TypedDeferredTopicFilter,
  TypedEventLog,
  TypedLogDescription,
  TypedListener,
  TypedContractMethod,
} from "../../../common";

export declare namespace VechainNodesDataTypes {
  export type NodeStrengthScoresStruct = {
    strength: BigNumberish;
    thunder: BigNumberish;
    mjolnir: BigNumberish;
    veThorX: BigNumberish;
    strengthX: BigNumberish;
    thunderX: BigNumberish;
    mjolnirX: BigNumberish;
  };

  export type NodeStrengthScoresStructOutput = [
    strength: bigint,
    thunder: bigint,
    mjolnir: bigint,
    veThorX: bigint,
    strengthX: bigint,
    thunderX: bigint,
    mjolnirX: bigint
  ] & {
    strength: bigint;
    thunder: bigint;
    mjolnir: bigint;
    veThorX: bigint;
    strengthX: bigint;
    thunderX: bigint;
    mjolnirX: bigint;
  };
}

export declare namespace X2EarnAppsDataTypes {
  export type AppWithDetailsReturnTypeStruct = {
    id: BytesLike;
    teamWalletAddress: AddressLike;
    name: string;
    metadataURI: string;
    createdAtTimestamp: BigNumberish;
    appAvailableForAllocationVoting: boolean;
  };

  export type AppWithDetailsReturnTypeStructOutput = [
    id: string,
    teamWalletAddress: string,
    name: string,
    metadataURI: string,
    createdAtTimestamp: bigint,
    appAvailableForAllocationVoting: boolean
  ] & {
    id: string;
    teamWalletAddress: string;
    name: string;
    metadataURI: string;
    createdAtTimestamp: bigint;
    appAvailableForAllocationVoting: boolean;
  };

  export type AppStruct = {
    id: BytesLike;
    name: string;
    createdAtTimestamp: BigNumberish;
  };

  export type AppStructOutput = [
    id: string,
    name: string,
    createdAtTimestamp: bigint
  ] & { id: string; name: string; createdAtTimestamp: bigint };
}

export interface X2EarnAppsV3Interface extends Interface {
  getFunction(
    nameOrSignature:
      | "CLOCK_MODE"
      | "DEFAULT_ADMIN_ROLE"
      | "GOVERNANCE_ROLE"
      | "MAX_CREATORS"
      | "MAX_MODERATORS"
      | "MAX_REWARD_DISTRIBUTORS"
      | "UPGRADER_ROLE"
      | "UPGRADE_INTERFACE_VERSION"
      | "addAppModerator"
      | "addCreator"
      | "addRewardDistributor"
      | "allEligibleApps"
      | "app"
      | "appAdmin"
      | "appCreators"
      | "appExists"
      | "appModerators"
      | "appURI"
      | "apps"
      | "appsCount"
      | "baseURI"
      | "checkCooldown"
      | "checkEndorsement"
      | "clock"
      | "cooldownPeriod"
      | "creatorApps"
      | "endorseApp"
      | "endorsementScoreThreshold"
      | "getEndorsers"
      | "getNodeEndorsementScore"
      | "getNodeManagementContract"
      | "getPaginatedApps"
      | "getRoleAdmin"
      | "getScore"
      | "getUsersEndorsementScore"
      | "getVeBetterPassportContract"
      | "getXAllocationVotingGovernor"
      | "gracePeriod"
      | "grantRole"
      | "hasRole"
      | "hashAppName"
      | "initializeV3"
      | "isAppAdmin"
      | "isAppCreator"
      | "isAppModerator"
      | "isAppUnendorsed"
      | "isBlacklisted"
      | "isEligible"
      | "isEligibleNow"
      | "isRewardDistributor"
      | "metadataURI"
      | "nodeLevelEndorsementScore"
      | "nodeToEndorsedApp"
      | "proxiableUUID"
      | "removeAppCreator"
      | "removeAppModerator"
      | "removeNodeEndorsement"
      | "removeRewardDistributor"
      | "removeXAppSubmission"
      | "renounceRole"
      | "revokeRole"
      | "rewardDistributors"
      | "setAppAdmin"
      | "setBaseURI"
      | "setNodeManagementContract"
      | "setTeamAllocationPercentage"
      | "setVeBetterPassportContract"
      | "setVotingEligibility"
      | "setX2EarnCreatorContract"
      | "setXAllocationVotingGovernor"
      | "submitApp"
      | "supportsInterface"
      | "teamAllocationPercentage"
      | "teamWalletAddress"
      | "unendorseApp"
      | "unendorsedAppIds"
      | "unendorsedApps"
      | "updateAppMetadata"
      | "updateCooldownPeriod"
      | "updateEndorsementScoreThreshold"
      | "updateGracePeriod"
      | "updateNodeEndorsementScores"
      | "updateTeamWalletAddress"
      | "upgradeToAndCall"
      | "version"
      | "x2EarnCreatorContract"
  ): FunctionFragment;

  getEvent(
    nameOrSignatureOrTopic:
      | "AppAdded"
      | "AppAdminUpdated"
      | "AppEndorsed"
      | "AppEndorsementStatusUpdated"
      | "AppMetadataURIUpdated"
      | "AppUnendorsedGracePeriodStarted"
      | "BaseURIUpdated"
      | "BlacklistUpdated"
      | "CooldownPeriodUpdated"
      | "CreatorAddedToApp"
      | "EndorsementScoreThresholdUpdated"
      | "GracePeriodUpdated"
      | "Initialized"
      | "ModeratorAddedToApp"
      | "ModeratorRemovedFromApp"
      | "NodeStrengthScoresUpdated"
      | "RewardDistributorAddedToApp"
      | "RewardDistributorRemovedFromApp"
      | "RoleAdminChanged"
      | "RoleGranted"
      | "RoleRevoked"
      | "TeamAllocationPercentageUpdated"
      | "TeamWalletAddressUpdated"
      | "Upgraded"
      | "VotingEligibilityUpdated"
  ): EventFragment;

  encodeFunctionData(
    functionFragment: "CLOCK_MODE",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "DEFAULT_ADMIN_ROLE",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "GOVERNANCE_ROLE",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "MAX_CREATORS",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "MAX_MODERATORS",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "MAX_REWARD_DISTRIBUTORS",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "UPGRADER_ROLE",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "UPGRADE_INTERFACE_VERSION",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "addAppModerator",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "addCreator",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "addRewardDistributor",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "allEligibleApps",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "app", values: [BytesLike]): string;
  encodeFunctionData(functionFragment: "appAdmin", values: [BytesLike]): string;
  encodeFunctionData(
    functionFragment: "appCreators",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "appExists",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "appModerators",
    values: [BytesLike]
  ): string;
  encodeFunctionData(functionFragment: "appURI", values: [BytesLike]): string;
  encodeFunctionData(functionFragment: "apps", values?: undefined): string;
  encodeFunctionData(functionFragment: "appsCount", values?: undefined): string;
  encodeFunctionData(functionFragment: "baseURI", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "checkCooldown",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "checkEndorsement",
    values: [BytesLike]
  ): string;
  encodeFunctionData(functionFragment: "clock", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "cooldownPeriod",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "creatorApps",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "endorseApp",
    values: [BytesLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "endorsementScoreThreshold",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getEndorsers",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getNodeEndorsementScore",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getNodeManagementContract",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getPaginatedApps",
    values: [BigNumberish, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getRoleAdmin",
    values: [BytesLike]
  ): string;
  encodeFunctionData(functionFragment: "getScore", values: [BytesLike]): string;
  encodeFunctionData(
    functionFragment: "getUsersEndorsementScore",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getVeBetterPassportContract",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getXAllocationVotingGovernor",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "gracePeriod",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "grantRole",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "hasRole",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(functionFragment: "hashAppName", values: [string]): string;
  encodeFunctionData(
    functionFragment: "initializeV3",
    values: [BigNumberish, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "isAppAdmin",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "isAppCreator",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "isAppModerator",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "isAppUnendorsed",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "isBlacklisted",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "isEligible",
    values: [BytesLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "isEligibleNow",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "isRewardDistributor",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "metadataURI",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "nodeLevelEndorsementScore",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "nodeToEndorsedApp",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "proxiableUUID",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "removeAppCreator",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "removeAppModerator",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "removeNodeEndorsement",
    values: [BytesLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "removeRewardDistributor",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "removeXAppSubmission",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "renounceRole",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "revokeRole",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "rewardDistributors",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setAppAdmin",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(functionFragment: "setBaseURI", values: [string]): string;
  encodeFunctionData(
    functionFragment: "setNodeManagementContract",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setTeamAllocationPercentage",
    values: [BytesLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setVeBetterPassportContract",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setVotingEligibility",
    values: [BytesLike, boolean]
  ): string;
  encodeFunctionData(
    functionFragment: "setX2EarnCreatorContract",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setXAllocationVotingGovernor",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "submitApp",
    values: [AddressLike, AddressLike, string, string]
  ): string;
  encodeFunctionData(
    functionFragment: "supportsInterface",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "teamAllocationPercentage",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "teamWalletAddress",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "unendorseApp",
    values: [BytesLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "unendorsedAppIds",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "unendorsedApps",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "updateAppMetadata",
    values: [BytesLike, string]
  ): string;
  encodeFunctionData(
    functionFragment: "updateCooldownPeriod",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "updateEndorsementScoreThreshold",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "updateGracePeriod",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "updateNodeEndorsementScores",
    values: [VechainNodesDataTypes.NodeStrengthScoresStruct]
  ): string;
  encodeFunctionData(
    functionFragment: "updateTeamWalletAddress",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "upgradeToAndCall",
    values: [AddressLike, BytesLike]
  ): string;
  encodeFunctionData(functionFragment: "version", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "x2EarnCreatorContract",
    values?: undefined
  ): string;

  decodeFunctionResult(functionFragment: "CLOCK_MODE", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "DEFAULT_ADMIN_ROLE",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "GOVERNANCE_ROLE",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "MAX_CREATORS",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "MAX_MODERATORS",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "MAX_REWARD_DISTRIBUTORS",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "UPGRADER_ROLE",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "UPGRADE_INTERFACE_VERSION",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "addAppModerator",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "addCreator", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "addRewardDistributor",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "allEligibleApps",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "app", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "appAdmin", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "appCreators",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "appExists", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "appModerators",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "appURI", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "apps", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "appsCount", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "baseURI", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "checkCooldown",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "checkEndorsement",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "clock", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "cooldownPeriod",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "creatorApps",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "endorseApp", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "endorsementScoreThreshold",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getEndorsers",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getNodeEndorsementScore",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getNodeManagementContract",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getPaginatedApps",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getRoleAdmin",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "getScore", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "getUsersEndorsementScore",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getVeBetterPassportContract",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getXAllocationVotingGovernor",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "gracePeriod",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "hashAppName",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "initializeV3",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "isAppAdmin", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "isAppCreator",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "isAppModerator",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "isAppUnendorsed",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "isBlacklisted",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "isEligible", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "isEligibleNow",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "isRewardDistributor",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "metadataURI",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "nodeLevelEndorsementScore",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "nodeToEndorsedApp",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "proxiableUUID",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "removeAppCreator",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "removeAppModerator",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "removeNodeEndorsement",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "removeRewardDistributor",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "removeXAppSubmission",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "renounceRole",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "rewardDistributors",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setAppAdmin",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "setBaseURI", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "setNodeManagementContract",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setTeamAllocationPercentage",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setVeBetterPassportContract",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setVotingEligibility",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setX2EarnCreatorContract",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setXAllocationVotingGovernor",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "submitApp", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "supportsInterface",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "teamAllocationPercentage",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "teamWalletAddress",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "unendorseApp",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "unendorsedAppIds",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "unendorsedApps",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "updateAppMetadata",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "updateCooldownPeriod",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "updateEndorsementScoreThreshold",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "updateGracePeriod",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "updateNodeEndorsementScores",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "updateTeamWalletAddress",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "upgradeToAndCall",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "version", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "x2EarnCreatorContract",
    data: BytesLike
  ): Result;
}

export namespace AppAddedEvent {
  export type InputTuple = [
    id: BytesLike,
    addr: AddressLike,
    name: string,
    appAvailableForAllocationVoting: boolean
  ];
  export type OutputTuple = [
    id: string,
    addr: string,
    name: string,
    appAvailableForAllocationVoting: boolean
  ];
  export interface OutputObject {
    id: string;
    addr: string;
    name: string;
    appAvailableForAllocationVoting: boolean;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace AppAdminUpdatedEvent {
  export type InputTuple = [
    appId: BytesLike,
    oldAdmin: AddressLike,
    newAdmin: AddressLike
  ];
  export type OutputTuple = [appId: string, oldAdmin: string, newAdmin: string];
  export interface OutputObject {
    appId: string;
    oldAdmin: string;
    newAdmin: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace AppEndorsedEvent {
  export type InputTuple = [
    id: BytesLike,
    nodeId: BigNumberish,
    endorsed: boolean
  ];
  export type OutputTuple = [id: string, nodeId: bigint, endorsed: boolean];
  export interface OutputObject {
    id: string;
    nodeId: bigint;
    endorsed: boolean;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace AppEndorsementStatusUpdatedEvent {
  export type InputTuple = [appId: BytesLike, endorsed: boolean];
  export type OutputTuple = [appId: string, endorsed: boolean];
  export interface OutputObject {
    appId: string;
    endorsed: boolean;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace AppMetadataURIUpdatedEvent {
  export type InputTuple = [
    appId: BytesLike,
    oldMetadataURI: string,
    newMetadataURI: string
  ];
  export type OutputTuple = [
    appId: string,
    oldMetadataURI: string,
    newMetadataURI: string
  ];
  export interface OutputObject {
    appId: string;
    oldMetadataURI: string;
    newMetadataURI: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace AppUnendorsedGracePeriodStartedEvent {
  export type InputTuple = [
    appId: BytesLike,
    startBlock: BigNumberish,
    endBlock: BigNumberish
  ];
  export type OutputTuple = [
    appId: string,
    startBlock: bigint,
    endBlock: bigint
  ];
  export interface OutputObject {
    appId: string;
    startBlock: bigint;
    endBlock: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace BaseURIUpdatedEvent {
  export type InputTuple = [oldBaseURI: string, newBaseURI: string];
  export type OutputTuple = [oldBaseURI: string, newBaseURI: string];
  export interface OutputObject {
    oldBaseURI: string;
    newBaseURI: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace BlacklistUpdatedEvent {
  export type InputTuple = [appId: BytesLike, isBlacklisted: boolean];
  export type OutputTuple = [appId: string, isBlacklisted: boolean];
  export interface OutputObject {
    appId: string;
    isBlacklisted: boolean;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace CooldownPeriodUpdatedEvent {
  export type InputTuple = [
    oldCooldownPeriod: BigNumberish,
    newCooldownPeriod: BigNumberish
  ];
  export type OutputTuple = [
    oldCooldownPeriod: bigint,
    newCooldownPeriod: bigint
  ];
  export interface OutputObject {
    oldCooldownPeriod: bigint;
    newCooldownPeriod: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace CreatorAddedToAppEvent {
  export type InputTuple = [appId: BytesLike, creatorAddress: AddressLike];
  export type OutputTuple = [appId: string, creatorAddress: string];
  export interface OutputObject {
    appId: string;
    creatorAddress: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace EndorsementScoreThresholdUpdatedEvent {
  export type InputTuple = [
    oldThreshold: BigNumberish,
    newThreshold: BigNumberish
  ];
  export type OutputTuple = [oldThreshold: bigint, newThreshold: bigint];
  export interface OutputObject {
    oldThreshold: bigint;
    newThreshold: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace GracePeriodUpdatedEvent {
  export type InputTuple = [
    oldGracePeriod: BigNumberish,
    newGracePeriod: BigNumberish
  ];
  export type OutputTuple = [oldGracePeriod: bigint, newGracePeriod: bigint];
  export interface OutputObject {
    oldGracePeriod: bigint;
    newGracePeriod: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace InitializedEvent {
  export type InputTuple = [version: BigNumberish];
  export type OutputTuple = [version: bigint];
  export interface OutputObject {
    version: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace ModeratorAddedToAppEvent {
  export type InputTuple = [appId: BytesLike, moderator: AddressLike];
  export type OutputTuple = [appId: string, moderator: string];
  export interface OutputObject {
    appId: string;
    moderator: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace ModeratorRemovedFromAppEvent {
  export type InputTuple = [appId: BytesLike, moderator: AddressLike];
  export type OutputTuple = [appId: string, moderator: string];
  export interface OutputObject {
    appId: string;
    moderator: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace NodeStrengthScoresUpdatedEvent {
  export type InputTuple = [
    nodeStrengthScores: VechainNodesDataTypes.NodeStrengthScoresStruct
  ];
  export type OutputTuple = [
    nodeStrengthScores: VechainNodesDataTypes.NodeStrengthScoresStructOutput
  ];
  export interface OutputObject {
    nodeStrengthScores: VechainNodesDataTypes.NodeStrengthScoresStructOutput;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace RewardDistributorAddedToAppEvent {
  export type InputTuple = [appId: BytesLike, distributorAddress: AddressLike];
  export type OutputTuple = [appId: string, distributorAddress: string];
  export interface OutputObject {
    appId: string;
    distributorAddress: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace RewardDistributorRemovedFromAppEvent {
  export type InputTuple = [appId: BytesLike, distributorAddress: AddressLike];
  export type OutputTuple = [appId: string, distributorAddress: string];
  export interface OutputObject {
    appId: string;
    distributorAddress: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace RoleAdminChangedEvent {
  export type InputTuple = [
    role: BytesLike,
    previousAdminRole: BytesLike,
    newAdminRole: BytesLike
  ];
  export type OutputTuple = [
    role: string,
    previousAdminRole: string,
    newAdminRole: string
  ];
  export interface OutputObject {
    role: string;
    previousAdminRole: string;
    newAdminRole: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace RoleGrantedEvent {
  export type InputTuple = [
    role: BytesLike,
    account: AddressLike,
    sender: AddressLike
  ];
  export type OutputTuple = [role: string, account: string, sender: string];
  export interface OutputObject {
    role: string;
    account: string;
    sender: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace RoleRevokedEvent {
  export type InputTuple = [
    role: BytesLike,
    account: AddressLike,
    sender: AddressLike
  ];
  export type OutputTuple = [role: string, account: string, sender: string];
  export interface OutputObject {
    role: string;
    account: string;
    sender: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace TeamAllocationPercentageUpdatedEvent {
  export type InputTuple = [
    appId: BytesLike,
    oldPercentage: BigNumberish,
    newPercentage: BigNumberish
  ];
  export type OutputTuple = [
    appId: string,
    oldPercentage: bigint,
    newPercentage: bigint
  ];
  export interface OutputObject {
    appId: string;
    oldPercentage: bigint;
    newPercentage: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace TeamWalletAddressUpdatedEvent {
  export type InputTuple = [
    appId: BytesLike,
    oldTeamWalletAddress: AddressLike,
    newTeamWalletAddress: AddressLike
  ];
  export type OutputTuple = [
    appId: string,
    oldTeamWalletAddress: string,
    newTeamWalletAddress: string
  ];
  export interface OutputObject {
    appId: string;
    oldTeamWalletAddress: string;
    newTeamWalletAddress: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace UpgradedEvent {
  export type InputTuple = [implementation: AddressLike];
  export type OutputTuple = [implementation: string];
  export interface OutputObject {
    implementation: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace VotingEligibilityUpdatedEvent {
  export type InputTuple = [appId: BytesLike, isAvailable: boolean];
  export type OutputTuple = [appId: string, isAvailable: boolean];
  export interface OutputObject {
    appId: string;
    isAvailable: boolean;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export interface X2EarnAppsV3 extends BaseContract {
  connect(runner?: ContractRunner | null): X2EarnAppsV3;
  waitForDeployment(): Promise<this>;

  interface: X2EarnAppsV3Interface;

  queryFilter<TCEvent extends TypedContractEvent>(
    event: TCEvent,
    fromBlockOrBlockhash?: string | number | undefined,
    toBlock?: string | number | undefined
  ): Promise<Array<TypedEventLog<TCEvent>>>;
  queryFilter<TCEvent extends TypedContractEvent>(
    filter: TypedDeferredTopicFilter<TCEvent>,
    fromBlockOrBlockhash?: string | number | undefined,
    toBlock?: string | number | undefined
  ): Promise<Array<TypedEventLog<TCEvent>>>;

  on<TCEvent extends TypedContractEvent>(
    event: TCEvent,
    listener: TypedListener<TCEvent>
  ): Promise<this>;
  on<TCEvent extends TypedContractEvent>(
    filter: TypedDeferredTopicFilter<TCEvent>,
    listener: TypedListener<TCEvent>
  ): Promise<this>;

  once<TCEvent extends TypedContractEvent>(
    event: TCEvent,
    listener: TypedListener<TCEvent>
  ): Promise<this>;
  once<TCEvent extends TypedContractEvent>(
    filter: TypedDeferredTopicFilter<TCEvent>,
    listener: TypedListener<TCEvent>
  ): Promise<this>;

  listeners<TCEvent extends TypedContractEvent>(
    event: TCEvent
  ): Promise<Array<TypedListener<TCEvent>>>;
  listeners(eventName?: string): Promise<Array<Listener>>;
  removeAllListeners<TCEvent extends TypedContractEvent>(
    event?: TCEvent
  ): Promise<this>;

  CLOCK_MODE: TypedContractMethod<[], [string], "view">;

  DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">;

  GOVERNANCE_ROLE: TypedContractMethod<[], [string], "view">;

  MAX_CREATORS: TypedContractMethod<[], [bigint], "view">;

  MAX_MODERATORS: TypedContractMethod<[], [bigint], "view">;

  MAX_REWARD_DISTRIBUTORS: TypedContractMethod<[], [bigint], "view">;

  UPGRADER_ROLE: TypedContractMethod<[], [string], "view">;

  UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">;

  addAppModerator: TypedContractMethod<
    [_appId: BytesLike, _moderator: AddressLike],
    [void],
    "nonpayable"
  >;

  addCreator: TypedContractMethod<
    [_appId: BytesLike, _creator: AddressLike],
    [void],
    "nonpayable"
  >;

  addRewardDistributor: TypedContractMethod<
    [_appId: BytesLike, _distributor: AddressLike],
    [void],
    "nonpayable"
  >;

  allEligibleApps: TypedContractMethod<[], [string[]], "view">;

  app: TypedContractMethod<
    [appId: BytesLike],
    [X2EarnAppsDataTypes.AppWithDetailsReturnTypeStructOutput],
    "view"
  >;

  appAdmin: TypedContractMethod<[appId: BytesLike], [string], "view">;

  appCreators: TypedContractMethod<[appId: BytesLike], [string[]], "view">;

  appExists: TypedContractMethod<[appId: BytesLike], [boolean], "view">;

  appModerators: TypedContractMethod<[appId: BytesLike], [string[]], "view">;

  appURI: TypedContractMethod<[appId: BytesLike], [string], "view">;

  apps: TypedContractMethod<
    [],
    [X2EarnAppsDataTypes.AppWithDetailsReturnTypeStructOutput[]],
    "view"
  >;

  appsCount: TypedContractMethod<[], [bigint], "view">;

  baseURI: TypedContractMethod<[], [string], "view">;

  checkCooldown: TypedContractMethod<[nodeId: BigNumberish], [boolean], "view">;

  checkEndorsement: TypedContractMethod<
    [appId: BytesLike],
    [boolean],
    "nonpayable"
  >;

  clock: TypedContractMethod<[], [bigint], "view">;

  cooldownPeriod: TypedContractMethod<[], [bigint], "view">;

  creatorApps: TypedContractMethod<[creator: AddressLike], [bigint], "view">;

  endorseApp: TypedContractMethod<
    [appId: BytesLike, nodeId: BigNumberish],
    [void],
    "nonpayable"
  >;

  endorsementScoreThreshold: TypedContractMethod<[], [bigint], "view">;

  getEndorsers: TypedContractMethod<[appId: BytesLike], [string[]], "view">;

  getNodeEndorsementScore: TypedContractMethod<
    [nodeId: BigNumberish],
    [bigint],
    "view"
  >;

  getNodeManagementContract: TypedContractMethod<[], [string], "view">;

  getPaginatedApps: TypedContractMethod<
    [startIndex: BigNumberish, count: BigNumberish],
    [X2EarnAppsDataTypes.AppStructOutput[]],
    "view"
  >;

  getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">;

  getScore: TypedContractMethod<[appId: BytesLike], [bigint], "view">;

  getUsersEndorsementScore: TypedContractMethod<
    [user: AddressLike],
    [bigint],
    "view"
  >;

  getVeBetterPassportContract: TypedContractMethod<[], [string], "view">;

  getXAllocationVotingGovernor: TypedContractMethod<[], [string], "view">;

  gracePeriod: TypedContractMethod<[], [bigint], "view">;

  grantRole: TypedContractMethod<
    [role: BytesLike, account: AddressLike],
    [void],
    "nonpayable"
  >;

  hasRole: TypedContractMethod<
    [role: BytesLike, account: AddressLike],
    [boolean],
    "view"
  >;

  hashAppName: TypedContractMethod<[appName: string], [string], "view">;

  initializeV3: TypedContractMethod<
    [_cooldownPeriod: BigNumberish, _xAllocationVotingGovernor: AddressLike],
    [void],
    "nonpayable"
  >;

  isAppAdmin: TypedContractMethod<
    [appId: BytesLike, account: AddressLike],
    [boolean],
    "view"
  >;

  isAppCreator: TypedContractMethod<
    [appId: BytesLike, account: AddressLike],
    [boolean],
    "view"
  >;

  isAppModerator: TypedContractMethod<
    [appId: BytesLike, account: AddressLike],
    [boolean],
    "view"
  >;

  isAppUnendorsed: TypedContractMethod<[appId: BytesLike], [boolean], "view">;

  isBlacklisted: TypedContractMethod<[appId: BytesLike], [boolean], "view">;

  isEligible: TypedContractMethod<
    [appId: BytesLike, timepoint: BigNumberish],
    [boolean],
    "view"
  >;

  isEligibleNow: TypedContractMethod<[appId: BytesLike], [boolean], "view">;

  isRewardDistributor: TypedContractMethod<
    [appId: BytesLike, account: AddressLike],
    [boolean],
    "view"
  >;

  metadataURI: TypedContractMethod<[appId: BytesLike], [string], "view">;

  nodeLevelEndorsementScore: TypedContractMethod<
    [nodeLevel: BigNumberish],
    [bigint],
    "view"
  >;

  nodeToEndorsedApp: TypedContractMethod<
    [nodeId: BigNumberish],
    [string],
    "view"
  >;

  proxiableUUID: TypedContractMethod<[], [string], "view">;

  removeAppCreator: TypedContractMethod<
    [_appId: BytesLike, _creator: AddressLike],
    [void],
    "nonpayable"
  >;

  removeAppModerator: TypedContractMethod<
    [_appId: BytesLike, _moderator: AddressLike],
    [void],
    "nonpayable"
  >;

  removeNodeEndorsement: TypedContractMethod<
    [_appId: BytesLike, _nodeId: BigNumberish],
    [void],
    "nonpayable"
  >;

  removeRewardDistributor: TypedContractMethod<
    [_appId: BytesLike, _distributor: AddressLike],
    [void],
    "nonpayable"
  >;

  removeXAppSubmission: TypedContractMethod<
    [_appId: BytesLike],
    [void],
    "nonpayable"
  >;

  renounceRole: TypedContractMethod<
    [role: BytesLike, callerConfirmation: AddressLike],
    [void],
    "nonpayable"
  >;

  revokeRole: TypedContractMethod<
    [role: BytesLike, account: AddressLike],
    [void],
    "nonpayable"
  >;

  rewardDistributors: TypedContractMethod<
    [appId: BytesLike],
    [string[]],
    "view"
  >;

  setAppAdmin: TypedContractMethod<
    [_appId: BytesLike, _newAdmin: AddressLike],
    [void],
    "nonpayable"
  >;

  setBaseURI: TypedContractMethod<[_baseURI: string], [void], "nonpayable">;

  setNodeManagementContract: TypedContractMethod<
    [_nodeManagementContract: AddressLike],
    [void],
    "nonpayable"
  >;

  setTeamAllocationPercentage: TypedContractMethod<
    [_appId: BytesLike, _percentage: BigNumberish],
    [void],
    "nonpayable"
  >;

  setVeBetterPassportContract: TypedContractMethod<
    [_veBetterPassportContract: AddressLike],
    [void],
    "nonpayable"
  >;

  setVotingEligibility: TypedContractMethod<
    [_appId: BytesLike, _isEligible: boolean],
    [void],
    "nonpayable"
  >;

  setX2EarnCreatorContract: TypedContractMethod<
    [_x2EarnCreatorContract: AddressLike],
    [void],
    "nonpayable"
  >;

  setXAllocationVotingGovernor: TypedContractMethod<
    [_xAllocationVotingGovernor: AddressLike],
    [void],
    "nonpayable"
  >;

  submitApp: TypedContractMethod<
    [
      _teamWalletAddress: AddressLike,
      _admin: AddressLike,
      _appName: string,
      _appMetadataURI: string
    ],
    [void],
    "nonpayable"
  >;

  supportsInterface: TypedContractMethod<
    [interfaceId: BytesLike],
    [boolean],
    "view"
  >;

  teamAllocationPercentage: TypedContractMethod<
    [appId: BytesLike],
    [bigint],
    "view"
  >;

  teamWalletAddress: TypedContractMethod<[appId: BytesLike], [string], "view">;

  unendorseApp: TypedContractMethod<
    [appId: BytesLike, nodeId: BigNumberish],
    [void],
    "nonpayable"
  >;

  unendorsedAppIds: TypedContractMethod<[], [string[]], "view">;

  unendorsedApps: TypedContractMethod<
    [],
    [X2EarnAppsDataTypes.AppWithDetailsReturnTypeStructOutput[]],
    "view"
  >;

  updateAppMetadata: TypedContractMethod<
    [_appId: BytesLike, _newMetadataURI: string],
    [void],
    "nonpayable"
  >;

  updateCooldownPeriod: TypedContractMethod<
    [_newCooldownPeriod: BigNumberish],
    [void],
    "nonpayable"
  >;

  updateEndorsementScoreThreshold: TypedContractMethod<
    [_scoreThreshold: BigNumberish],
    [void],
    "nonpayable"
  >;

  updateGracePeriod: TypedContractMethod<
    [_newGracePeriod: BigNumberish],
    [void],
    "nonpayable"
  >;

  updateNodeEndorsementScores: TypedContractMethod<
    [_nodeStrengthScores: VechainNodesDataTypes.NodeStrengthScoresStruct],
    [void],
    "nonpayable"
  >;

  updateTeamWalletAddress: TypedContractMethod<
    [_appId: BytesLike, _newReceiverAddress: AddressLike],
    [void],
    "nonpayable"
  >;

  upgradeToAndCall: TypedContractMethod<
    [newImplementation: AddressLike, data: BytesLike],
    [void],
    "payable"
  >;

  version: TypedContractMethod<[], [string], "view">;

  x2EarnCreatorContract: TypedContractMethod<[], [string], "view">;

  getFunction<T extends ContractMethod = ContractMethod>(
    key: string | FunctionFragment
  ): T;

  getFunction(
    nameOrSignature: "CLOCK_MODE"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "DEFAULT_ADMIN_ROLE"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "GOVERNANCE_ROLE"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "MAX_CREATORS"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "MAX_MODERATORS"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "MAX_REWARD_DISTRIBUTORS"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "UPGRADER_ROLE"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "UPGRADE_INTERFACE_VERSION"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "addAppModerator"
  ): TypedContractMethod<
    [_appId: BytesLike, _moderator: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "addCreator"
  ): TypedContractMethod<
    [_appId: BytesLike, _creator: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "addRewardDistributor"
  ): TypedContractMethod<
    [_appId: BytesLike, _distributor: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "allEligibleApps"
  ): TypedContractMethod<[], [string[]], "view">;
  getFunction(
    nameOrSignature: "app"
  ): TypedContractMethod<
    [appId: BytesLike],
    [X2EarnAppsDataTypes.AppWithDetailsReturnTypeStructOutput],
    "view"
  >;
  getFunction(
    nameOrSignature: "appAdmin"
  ): TypedContractMethod<[appId: BytesLike], [string], "view">;
  getFunction(
    nameOrSignature: "appCreators"
  ): TypedContractMethod<[appId: BytesLike], [string[]], "view">;
  getFunction(
    nameOrSignature: "appExists"
  ): TypedContractMethod<[appId: BytesLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "appModerators"
  ): TypedContractMethod<[appId: BytesLike], [string[]], "view">;
  getFunction(
    nameOrSignature: "appURI"
  ): TypedContractMethod<[appId: BytesLike], [string], "view">;
  getFunction(
    nameOrSignature: "apps"
  ): TypedContractMethod<
    [],
    [X2EarnAppsDataTypes.AppWithDetailsReturnTypeStructOutput[]],
    "view"
  >;
  getFunction(
    nameOrSignature: "appsCount"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "baseURI"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "checkCooldown"
  ): TypedContractMethod<[nodeId: BigNumberish], [boolean], "view">;
  getFunction(
    nameOrSignature: "checkEndorsement"
  ): TypedContractMethod<[appId: BytesLike], [boolean], "nonpayable">;
  getFunction(
    nameOrSignature: "clock"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "cooldownPeriod"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "creatorApps"
  ): TypedContractMethod<[creator: AddressLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "endorseApp"
  ): TypedContractMethod<
    [appId: BytesLike, nodeId: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "endorsementScoreThreshold"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getEndorsers"
  ): TypedContractMethod<[appId: BytesLike], [string[]], "view">;
  getFunction(
    nameOrSignature: "getNodeEndorsementScore"
  ): TypedContractMethod<[nodeId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "getNodeManagementContract"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "getPaginatedApps"
  ): TypedContractMethod<
    [startIndex: BigNumberish, count: BigNumberish],
    [X2EarnAppsDataTypes.AppStructOutput[]],
    "view"
  >;
  getFunction(
    nameOrSignature: "getRoleAdmin"
  ): TypedContractMethod<[role: BytesLike], [string], "view">;
  getFunction(
    nameOrSignature: "getScore"
  ): TypedContractMethod<[appId: BytesLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "getUsersEndorsementScore"
  ): TypedContractMethod<[user: AddressLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "getVeBetterPassportContract"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "getXAllocationVotingGovernor"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "gracePeriod"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "grantRole"
  ): TypedContractMethod<
    [role: BytesLike, account: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "hasRole"
  ): TypedContractMethod<
    [role: BytesLike, account: AddressLike],
    [boolean],
    "view"
  >;
  getFunction(
    nameOrSignature: "hashAppName"
  ): TypedContractMethod<[appName: string], [string], "view">;
  getFunction(
    nameOrSignature: "initializeV3"
  ): TypedContractMethod<
    [_cooldownPeriod: BigNumberish, _xAllocationVotingGovernor: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "isAppAdmin"
  ): TypedContractMethod<
    [appId: BytesLike, account: AddressLike],
    [boolean],
    "view"
  >;
  getFunction(
    nameOrSignature: "isAppCreator"
  ): TypedContractMethod<
    [appId: BytesLike, account: AddressLike],
    [boolean],
    "view"
  >;
  getFunction(
    nameOrSignature: "isAppModerator"
  ): TypedContractMethod<
    [appId: BytesLike, account: AddressLike],
    [boolean],
    "view"
  >;
  getFunction(
    nameOrSignature: "isAppUnendorsed"
  ): TypedContractMethod<[appId: BytesLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "isBlacklisted"
  ): TypedContractMethod<[appId: BytesLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "isEligible"
  ): TypedContractMethod<
    [appId: BytesLike, timepoint: BigNumberish],
    [boolean],
    "view"
  >;
  getFunction(
    nameOrSignature: "isEligibleNow"
  ): TypedContractMethod<[appId: BytesLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "isRewardDistributor"
  ): TypedContractMethod<
    [appId: BytesLike, account: AddressLike],
    [boolean],
    "view"
  >;
  getFunction(
    nameOrSignature: "metadataURI"
  ): TypedContractMethod<[appId: BytesLike], [string], "view">;
  getFunction(
    nameOrSignature: "nodeLevelEndorsementScore"
  ): TypedContractMethod<[nodeLevel: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "nodeToEndorsedApp"
  ): TypedContractMethod<[nodeId: BigNumberish], [string], "view">;
  getFunction(
    nameOrSignature: "proxiableUUID"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "removeAppCreator"
  ): TypedContractMethod<
    [_appId: BytesLike, _creator: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "removeAppModerator"
  ): TypedContractMethod<
    [_appId: BytesLike, _moderator: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "removeNodeEndorsement"
  ): TypedContractMethod<
    [_appId: BytesLike, _nodeId: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "removeRewardDistributor"
  ): TypedContractMethod<
    [_appId: BytesLike, _distributor: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "removeXAppSubmission"
  ): TypedContractMethod<[_appId: BytesLike], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "renounceRole"
  ): TypedContractMethod<
    [role: BytesLike, callerConfirmation: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "revokeRole"
  ): TypedContractMethod<
    [role: BytesLike, account: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "rewardDistributors"
  ): TypedContractMethod<[appId: BytesLike], [string[]], "view">;
  getFunction(
    nameOrSignature: "setAppAdmin"
  ): TypedContractMethod<
    [_appId: BytesLike, _newAdmin: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setBaseURI"
  ): TypedContractMethod<[_baseURI: string], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "setNodeManagementContract"
  ): TypedContractMethod<
    [_nodeManagementContract: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setTeamAllocationPercentage"
  ): TypedContractMethod<
    [_appId: BytesLike, _percentage: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setVeBetterPassportContract"
  ): TypedContractMethod<
    [_veBetterPassportContract: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setVotingEligibility"
  ): TypedContractMethod<
    [_appId: BytesLike, _isEligible: boolean],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setX2EarnCreatorContract"
  ): TypedContractMethod<
    [_x2EarnCreatorContract: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setXAllocationVotingGovernor"
  ): TypedContractMethod<
    [_xAllocationVotingGovernor: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "submitApp"
  ): TypedContractMethod<
    [
      _teamWalletAddress: AddressLike,
      _admin: AddressLike,
      _appName: string,
      _appMetadataURI: string
    ],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "supportsInterface"
  ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "teamAllocationPercentage"
  ): TypedContractMethod<[appId: BytesLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "teamWalletAddress"
  ): TypedContractMethod<[appId: BytesLike], [string], "view">;
  getFunction(
    nameOrSignature: "unendorseApp"
  ): TypedContractMethod<
    [appId: BytesLike, nodeId: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "unendorsedAppIds"
  ): TypedContractMethod<[], [string[]], "view">;
  getFunction(
    nameOrSignature: "unendorsedApps"
  ): TypedContractMethod<
    [],
    [X2EarnAppsDataTypes.AppWithDetailsReturnTypeStructOutput[]],
    "view"
  >;
  getFunction(
    nameOrSignature: "updateAppMetadata"
  ): TypedContractMethod<
    [_appId: BytesLike, _newMetadataURI: string],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "updateCooldownPeriod"
  ): TypedContractMethod<
    [_newCooldownPeriod: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "updateEndorsementScoreThreshold"
  ): TypedContractMethod<[_scoreThreshold: BigNumberish], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "updateGracePeriod"
  ): TypedContractMethod<[_newGracePeriod: BigNumberish], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "updateNodeEndorsementScores"
  ): TypedContractMethod<
    [_nodeStrengthScores: VechainNodesDataTypes.NodeStrengthScoresStruct],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "updateTeamWalletAddress"
  ): TypedContractMethod<
    [_appId: BytesLike, _newReceiverAddress: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "upgradeToAndCall"
  ): TypedContractMethod<
    [newImplementation: AddressLike, data: BytesLike],
    [void],
    "payable"
  >;
  getFunction(
    nameOrSignature: "version"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "x2EarnCreatorContract"
  ): TypedContractMethod<[], [string], "view">;

  getEvent(
    key: "AppAdded"
  ): TypedContractEvent<
    AppAddedEvent.InputTuple,
    AppAddedEvent.OutputTuple,
    AppAddedEvent.OutputObject
  >;
  getEvent(
    key: "AppAdminUpdated"
  ): TypedContractEvent<
    AppAdminUpdatedEvent.InputTuple,
    AppAdminUpdatedEvent.OutputTuple,
    AppAdminUpdatedEvent.OutputObject
  >;
  getEvent(
    key: "AppEndorsed"
  ): TypedContractEvent<
    AppEndorsedEvent.InputTuple,
    AppEndorsedEvent.OutputTuple,
    AppEndorsedEvent.OutputObject
  >;
  getEvent(
    key: "AppEndorsementStatusUpdated"
  ): TypedContractEvent<
    AppEndorsementStatusUpdatedEvent.InputTuple,
    AppEndorsementStatusUpdatedEvent.OutputTuple,
    AppEndorsementStatusUpdatedEvent.OutputObject
  >;
  getEvent(
    key: "AppMetadataURIUpdated"
  ): TypedContractEvent<
    AppMetadataURIUpdatedEvent.InputTuple,
    AppMetadataURIUpdatedEvent.OutputTuple,
    AppMetadataURIUpdatedEvent.OutputObject
  >;
  getEvent(
    key: "AppUnendorsedGracePeriodStarted"
  ): TypedContractEvent<
    AppUnendorsedGracePeriodStartedEvent.InputTuple,
    AppUnendorsedGracePeriodStartedEvent.OutputTuple,
    AppUnendorsedGracePeriodStartedEvent.OutputObject
  >;
  getEvent(
    key: "BaseURIUpdated"
  ): TypedContractEvent<
    BaseURIUpdatedEvent.InputTuple,
    BaseURIUpdatedEvent.OutputTuple,
    BaseURIUpdatedEvent.OutputObject
  >;
  getEvent(
    key: "BlacklistUpdated"
  ): TypedContractEvent<
    BlacklistUpdatedEvent.InputTuple,
    BlacklistUpdatedEvent.OutputTuple,
    BlacklistUpdatedEvent.OutputObject
  >;
  getEvent(
    key: "CooldownPeriodUpdated"
  ): TypedContractEvent<
    CooldownPeriodUpdatedEvent.InputTuple,
    CooldownPeriodUpdatedEvent.OutputTuple,
    CooldownPeriodUpdatedEvent.OutputObject
  >;
  getEvent(
    key: "CreatorAddedToApp"
  ): TypedContractEvent<
    CreatorAddedToAppEvent.InputTuple,
    CreatorAddedToAppEvent.OutputTuple,
    CreatorAddedToAppEvent.OutputObject
  >;
  getEvent(
    key: "EndorsementScoreThresholdUpdated"
  ): TypedContractEvent<
    EndorsementScoreThresholdUpdatedEvent.InputTuple,
    EndorsementScoreThresholdUpdatedEvent.OutputTuple,
    EndorsementScoreThresholdUpdatedEvent.OutputObject
  >;
  getEvent(
    key: "GracePeriodUpdated"
  ): TypedContractEvent<
    GracePeriodUpdatedEvent.InputTuple,
    GracePeriodUpdatedEvent.OutputTuple,
    GracePeriodUpdatedEvent.OutputObject
  >;
  getEvent(
    key: "Initialized"
  ): TypedContractEvent<
    InitializedEvent.InputTuple,
    InitializedEvent.OutputTuple,
    InitializedEvent.OutputObject
  >;
  getEvent(
    key: "ModeratorAddedToApp"
  ): TypedContractEvent<
    ModeratorAddedToAppEvent.InputTuple,
    ModeratorAddedToAppEvent.OutputTuple,
    ModeratorAddedToAppEvent.OutputObject
  >;
  getEvent(
    key: "ModeratorRemovedFromApp"
  ): TypedContractEvent<
    ModeratorRemovedFromAppEvent.InputTuple,
    ModeratorRemovedFromAppEvent.OutputTuple,
    ModeratorRemovedFromAppEvent.OutputObject
  >;
  getEvent(
    key: "NodeStrengthScoresUpdated"
  ): TypedContractEvent<
    NodeStrengthScoresUpdatedEvent.InputTuple,
    NodeStrengthScoresUpdatedEvent.OutputTuple,
    NodeStrengthScoresUpdatedEvent.OutputObject
  >;
  getEvent(
    key: "RewardDistributorAddedToApp"
  ): TypedContractEvent<
    RewardDistributorAddedToAppEvent.InputTuple,
    RewardDistributorAddedToAppEvent.OutputTuple,
    RewardDistributorAddedToAppEvent.OutputObject
  >;
  getEvent(
    key: "RewardDistributorRemovedFromApp"
  ): TypedContractEvent<
    RewardDistributorRemovedFromAppEvent.InputTuple,
    RewardDistributorRemovedFromAppEvent.OutputTuple,
    RewardDistributorRemovedFromAppEvent.OutputObject
  >;
  getEvent(
    key: "RoleAdminChanged"
  ): TypedContractEvent<
    RoleAdminChangedEvent.InputTuple,
    RoleAdminChangedEvent.OutputTuple,
    RoleAdminChangedEvent.OutputObject
  >;
  getEvent(
    key: "RoleGranted"
  ): TypedContractEvent<
    RoleGrantedEvent.InputTuple,
    RoleGrantedEvent.OutputTuple,
    RoleGrantedEvent.OutputObject
  >;
  getEvent(
    key: "RoleRevoked"
  ): TypedContractEvent<
    RoleRevokedEvent.InputTuple,
    RoleRevokedEvent.OutputTuple,
    RoleRevokedEvent.OutputObject
  >;
  getEvent(
    key: "TeamAllocationPercentageUpdated"
  ): TypedContractEvent<
    TeamAllocationPercentageUpdatedEvent.InputTuple,
    TeamAllocationPercentageUpdatedEvent.OutputTuple,
    TeamAllocationPercentageUpdatedEvent.OutputObject
  >;
  getEvent(
    key: "TeamWalletAddressUpdated"
  ): TypedContractEvent<
    TeamWalletAddressUpdatedEvent.InputTuple,
    TeamWalletAddressUpdatedEvent.OutputTuple,
    TeamWalletAddressUpdatedEvent.OutputObject
  >;
  getEvent(
    key: "Upgraded"
  ): TypedContractEvent<
    UpgradedEvent.InputTuple,
    UpgradedEvent.OutputTuple,
    UpgradedEvent.OutputObject
  >;
  getEvent(
    key: "VotingEligibilityUpdated"
  ): TypedContractEvent<
    VotingEligibilityUpdatedEvent.InputTuple,
    VotingEligibilityUpdatedEvent.OutputTuple,
    VotingEligibilityUpdatedEvent.OutputObject
  >;

  filters: {
    "AppAdded(bytes32,address,string,bool)": TypedContractEvent<
      AppAddedEvent.InputTuple,
      AppAddedEvent.OutputTuple,
      AppAddedEvent.OutputObject
    >;
    AppAdded: TypedContractEvent<
      AppAddedEvent.InputTuple,
      AppAddedEvent.OutputTuple,
      AppAddedEvent.OutputObject
    >;

    "AppAdminUpdated(bytes32,address,address)": TypedContractEvent<
      AppAdminUpdatedEvent.InputTuple,
      AppAdminUpdatedEvent.OutputTuple,
      AppAdminUpdatedEvent.OutputObject
    >;
    AppAdminUpdated: TypedContractEvent<
      AppAdminUpdatedEvent.InputTuple,
      AppAdminUpdatedEvent.OutputTuple,
      AppAdminUpdatedEvent.OutputObject
    >;

    "AppEndorsed(bytes32,uint256,bool)": TypedContractEvent<
      AppEndorsedEvent.InputTuple,
      AppEndorsedEvent.OutputTuple,
      AppEndorsedEvent.OutputObject
    >;
    AppEndorsed: TypedContractEvent<
      AppEndorsedEvent.InputTuple,
      AppEndorsedEvent.OutputTuple,
      AppEndorsedEvent.OutputObject
    >;

    "AppEndorsementStatusUpdated(bytes32,bool)": TypedContractEvent<
      AppEndorsementStatusUpdatedEvent.InputTuple,
      AppEndorsementStatusUpdatedEvent.OutputTuple,
      AppEndorsementStatusUpdatedEvent.OutputObject
    >;
    AppEndorsementStatusUpdated: TypedContractEvent<
      AppEndorsementStatusUpdatedEvent.InputTuple,
      AppEndorsementStatusUpdatedEvent.OutputTuple,
      AppEndorsementStatusUpdatedEvent.OutputObject
    >;

    "AppMetadataURIUpdated(bytes32,string,string)": TypedContractEvent<
      AppMetadataURIUpdatedEvent.InputTuple,
      AppMetadataURIUpdatedEvent.OutputTuple,
      AppMetadataURIUpdatedEvent.OutputObject
    >;
    AppMetadataURIUpdated: TypedContractEvent<
      AppMetadataURIUpdatedEvent.InputTuple,
      AppMetadataURIUpdatedEvent.OutputTuple,
      AppMetadataURIUpdatedEvent.OutputObject
    >;

    "AppUnendorsedGracePeriodStarted(bytes32,uint48,uint48)": TypedContractEvent<
      AppUnendorsedGracePeriodStartedEvent.InputTuple,
      AppUnendorsedGracePeriodStartedEvent.OutputTuple,
      AppUnendorsedGracePeriodStartedEvent.OutputObject
    >;
    AppUnendorsedGracePeriodStarted: TypedContractEvent<
      AppUnendorsedGracePeriodStartedEvent.InputTuple,
      AppUnendorsedGracePeriodStartedEvent.OutputTuple,
      AppUnendorsedGracePeriodStartedEvent.OutputObject
    >;

    "BaseURIUpdated(string,string)": TypedContractEvent<
      BaseURIUpdatedEvent.InputTuple,
      BaseURIUpdatedEvent.OutputTuple,
      BaseURIUpdatedEvent.OutputObject
    >;
    BaseURIUpdated: TypedContractEvent<
      BaseURIUpdatedEvent.InputTuple,
      BaseURIUpdatedEvent.OutputTuple,
      BaseURIUpdatedEvent.OutputObject
    >;

    "BlacklistUpdated(bytes32,bool)": TypedContractEvent<
      BlacklistUpdatedEvent.InputTuple,
      BlacklistUpdatedEvent.OutputTuple,
      BlacklistUpdatedEvent.OutputObject
    >;
    BlacklistUpdated: TypedContractEvent<
      BlacklistUpdatedEvent.InputTuple,
      BlacklistUpdatedEvent.OutputTuple,
      BlacklistUpdatedEvent.OutputObject
    >;

    "CooldownPeriodUpdated(uint256,uint256)": TypedContractEvent<
      CooldownPeriodUpdatedEvent.InputTuple,
      CooldownPeriodUpdatedEvent.OutputTuple,
      CooldownPeriodUpdatedEvent.OutputObject
    >;
    CooldownPeriodUpdated: TypedContractEvent<
      CooldownPeriodUpdatedEvent.InputTuple,
      CooldownPeriodUpdatedEvent.OutputTuple,
      CooldownPeriodUpdatedEvent.OutputObject
    >;

    "CreatorAddedToApp(bytes32,address)": TypedContractEvent<
      CreatorAddedToAppEvent.InputTuple,
      CreatorAddedToAppEvent.OutputTuple,
      CreatorAddedToAppEvent.OutputObject
    >;
    CreatorAddedToApp: TypedContractEvent<
      CreatorAddedToAppEvent.InputTuple,
      CreatorAddedToAppEvent.OutputTuple,
      CreatorAddedToAppEvent.OutputObject
    >;

    "EndorsementScoreThresholdUpdated(uint256,uint256)": TypedContractEvent<
      EndorsementScoreThresholdUpdatedEvent.InputTuple,
      EndorsementScoreThresholdUpdatedEvent.OutputTuple,
      EndorsementScoreThresholdUpdatedEvent.OutputObject
    >;
    EndorsementScoreThresholdUpdated: TypedContractEvent<
      EndorsementScoreThresholdUpdatedEvent.InputTuple,
      EndorsementScoreThresholdUpdatedEvent.OutputTuple,
      EndorsementScoreThresholdUpdatedEvent.OutputObject
    >;

    "GracePeriodUpdated(uint256,uint256)": TypedContractEvent<
      GracePeriodUpdatedEvent.InputTuple,
      GracePeriodUpdatedEvent.OutputTuple,
      GracePeriodUpdatedEvent.OutputObject
    >;
    GracePeriodUpdated: TypedContractEvent<
      GracePeriodUpdatedEvent.InputTuple,
      GracePeriodUpdatedEvent.OutputTuple,
      GracePeriodUpdatedEvent.OutputObject
    >;

    "Initialized(uint64)": TypedContractEvent<
      InitializedEvent.InputTuple,
      InitializedEvent.OutputTuple,
      InitializedEvent.OutputObject
    >;
    Initialized: TypedContractEvent<
      InitializedEvent.InputTuple,
      InitializedEvent.OutputTuple,
      InitializedEvent.OutputObject
    >;

    "ModeratorAddedToApp(bytes32,address)": TypedContractEvent<
      ModeratorAddedToAppEvent.InputTuple,
      ModeratorAddedToAppEvent.OutputTuple,
      ModeratorAddedToAppEvent.OutputObject
    >;
    ModeratorAddedToApp: TypedContractEvent<
      ModeratorAddedToAppEvent.InputTuple,
      ModeratorAddedToAppEvent.OutputTuple,
      ModeratorAddedToAppEvent.OutputObject
    >;

    "ModeratorRemovedFromApp(bytes32,address)": TypedContractEvent<
      ModeratorRemovedFromAppEvent.InputTuple,
      ModeratorRemovedFromAppEvent.OutputTuple,
      ModeratorRemovedFromAppEvent.OutputObject
    >;
    ModeratorRemovedFromApp: TypedContractEvent<
      ModeratorRemovedFromAppEvent.InputTuple,
      ModeratorRemovedFromAppEvent.OutputTuple,
      ModeratorRemovedFromAppEvent.OutputObject
    >;

    "NodeStrengthScoresUpdated(tuple)": TypedContractEvent<
      NodeStrengthScoresUpdatedEvent.InputTuple,
      NodeStrengthScoresUpdatedEvent.OutputTuple,
      NodeStrengthScoresUpdatedEvent.OutputObject
    >;
    NodeStrengthScoresUpdated: TypedContractEvent<
      NodeStrengthScoresUpdatedEvent.InputTuple,
      NodeStrengthScoresUpdatedEvent.OutputTuple,
      NodeStrengthScoresUpdatedEvent.OutputObject
    >;

    "RewardDistributorAddedToApp(bytes32,address)": TypedContractEvent<
      RewardDistributorAddedToAppEvent.InputTuple,
      RewardDistributorAddedToAppEvent.OutputTuple,
      RewardDistributorAddedToAppEvent.OutputObject
    >;
    RewardDistributorAddedToApp: TypedContractEvent<
      RewardDistributorAddedToAppEvent.InputTuple,
      RewardDistributorAddedToAppEvent.OutputTuple,
      RewardDistributorAddedToAppEvent.OutputObject
    >;

    "RewardDistributorRemovedFromApp(bytes32,address)": TypedContractEvent<
      RewardDistributorRemovedFromAppEvent.InputTuple,
      RewardDistributorRemovedFromAppEvent.OutputTuple,
      RewardDistributorRemovedFromAppEvent.OutputObject
    >;
    RewardDistributorRemovedFromApp: TypedContractEvent<
      RewardDistributorRemovedFromAppEvent.InputTuple,
      RewardDistributorRemovedFromAppEvent.OutputTuple,
      RewardDistributorRemovedFromAppEvent.OutputObject
    >;

    "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent<
      RoleAdminChangedEvent.InputTuple,
      RoleAdminChangedEvent.OutputTuple,
      RoleAdminChangedEvent.OutputObject
    >;
    RoleAdminChanged: TypedContractEvent<
      RoleAdminChangedEvent.InputTuple,
      RoleAdminChangedEvent.OutputTuple,
      RoleAdminChangedEvent.OutputObject
    >;

    "RoleGranted(bytes32,address,address)": TypedContractEvent<
      RoleGrantedEvent.InputTuple,
      RoleGrantedEvent.OutputTuple,
      RoleGrantedEvent.OutputObject
    >;
    RoleGranted: TypedContractEvent<
      RoleGrantedEvent.InputTuple,
      RoleGrantedEvent.OutputTuple,
      RoleGrantedEvent.OutputObject
    >;

    "RoleRevoked(bytes32,address,address)": TypedContractEvent<
      RoleRevokedEvent.InputTuple,
      RoleRevokedEvent.OutputTuple,
      RoleRevokedEvent.OutputObject
    >;
    RoleRevoked: TypedContractEvent<
      RoleRevokedEvent.InputTuple,
      RoleRevokedEvent.OutputTuple,
      RoleRevokedEvent.OutputObject
    >;

    "TeamAllocationPercentageUpdated(bytes32,uint256,uint256)": TypedContractEvent<
      TeamAllocationPercentageUpdatedEvent.InputTuple,
      TeamAllocationPercentageUpdatedEvent.OutputTuple,
      TeamAllocationPercentageUpdatedEvent.OutputObject
    >;
    TeamAllocationPercentageUpdated: TypedContractEvent<
      TeamAllocationPercentageUpdatedEvent.InputTuple,
      TeamAllocationPercentageUpdatedEvent.OutputTuple,
      TeamAllocationPercentageUpdatedEvent.OutputObject
    >;

    "TeamWalletAddressUpdated(bytes32,address,address)": TypedContractEvent<
      TeamWalletAddressUpdatedEvent.InputTuple,
      TeamWalletAddressUpdatedEvent.OutputTuple,
      TeamWalletAddressUpdatedEvent.OutputObject
    >;
    TeamWalletAddressUpdated: TypedContractEvent<
      TeamWalletAddressUpdatedEvent.InputTuple,
      TeamWalletAddressUpdatedEvent.OutputTuple,
      TeamWalletAddressUpdatedEvent.OutputObject
    >;

    "Upgraded(address)": TypedContractEvent<
      UpgradedEvent.InputTuple,
      UpgradedEvent.OutputTuple,
      UpgradedEvent.OutputObject
    >;
    Upgraded: TypedContractEvent<
      UpgradedEvent.InputTuple,
      UpgradedEvent.OutputTuple,
      UpgradedEvent.OutputObject
    >;

    "VotingEligibilityUpdated(bytes32,bool)": TypedContractEvent<
      VotingEligibilityUpdatedEvent.InputTuple,
      VotingEligibilityUpdatedEvent.OutputTuple,
      VotingEligibilityUpdatedEvent.OutputObject
    >;
    VotingEligibilityUpdated: TypedContractEvent<
      VotingEligibilityUpdatedEvent.InputTuple,
      VotingEligibilityUpdatedEvent.OutputTuple,
      VotingEligibilityUpdatedEvent.OutputObject
    >;
  };
}
