/* 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 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 declare namespace RoundsStorageUpgradeableV7 {
  export type RoundCoreStruct = {
    proposer: AddressLike;
    voteStart: BigNumberish;
    voteDuration: BigNumberish;
  };

  export type RoundCoreStructOutput = [
    proposer: string,
    voteStart: bigint,
    voteDuration: bigint
  ] & { proposer: string; voteStart: bigint; voteDuration: bigint };
}

export declare namespace XAllocationVotingV7 {
  export type InitializationDataStruct = {
    vot3Token: AddressLike;
    quorumPercentage: BigNumberish;
    initialVotingPeriod: BigNumberish;
    timeLock: AddressLike;
    voterRewards: AddressLike;
    emissions: AddressLike;
    admins: AddressLike[];
    upgrader: AddressLike;
    contractsAddressManager: AddressLike;
    x2EarnAppsAddress: AddressLike;
    baseAllocationPercentage: BigNumberish;
    appSharesCap: BigNumberish;
    votingThreshold: BigNumberish;
  };

  export type InitializationDataStructOutput = [
    vot3Token: string,
    quorumPercentage: bigint,
    initialVotingPeriod: bigint,
    timeLock: string,
    voterRewards: string,
    emissions: string,
    admins: string[],
    upgrader: string,
    contractsAddressManager: string,
    x2EarnAppsAddress: string,
    baseAllocationPercentage: bigint,
    appSharesCap: bigint,
    votingThreshold: bigint
  ] & {
    vot3Token: string;
    quorumPercentage: bigint;
    initialVotingPeriod: bigint;
    timeLock: string;
    voterRewards: string;
    emissions: string;
    admins: string[];
    upgrader: string;
    contractsAddressManager: string;
    x2EarnAppsAddress: string;
    baseAllocationPercentage: bigint;
    appSharesCap: bigint;
    votingThreshold: bigint;
  };
}

export interface XAllocationVotingV7Interface extends Interface {
  getFunction(
    nameOrSignature:
      | "CLOCK_MODE"
      | "CONTRACTS_ADDRESS_MANAGER_ROLE"
      | "COUNTING_MODE"
      | "DEFAULT_ADMIN_ROLE"
      | "GOVERNANCE_ROLE"
      | "ROUND_STARTER_ROLE"
      | "UPGRADER_ROLE"
      | "UPGRADE_INTERFACE_VERSION"
      | "appSharesCap"
      | "b3trGovernor"
      | "baseAllocationPercentage"
      | "castVote"
      | "clock"
      | "currentRoundDeadline"
      | "currentRoundId"
      | "currentRoundSnapshot"
      | "emissions"
      | "finalizeRound"
      | "getAppIdsOfRound"
      | "getAppVotes"
      | "getAppVotesQF"
      | "getAppsOfRound"
      | "getDepositVotingPower"
      | "getRoleAdmin"
      | "getRound"
      | "getRoundAppSharesCap"
      | "getRoundBaseAllocationPercentage"
      | "getVotes"
      | "grantRole"
      | "hasRole"
      | "hasVoted"
      | "hasVotedOnce"
      | "initialize"
      | "initializeV2"
      | "initializeV7"
      | "isActive"
      | "isEligibleForVote"
      | "isFinalized"
      | "latestSucceededRoundId"
      | "name"
      | "proxiableUUID"
      | "quorum"
      | "quorumDenominator"
      | "quorumNumerator(uint256)"
      | "quorumNumerator()"
      | "quorumReached"
      | "renounceRole"
      | "revokeRole"
      | "roundDeadline"
      | "roundProposer"
      | "roundQuorum"
      | "roundSnapshot"
      | "setAppSharesCap"
      | "setB3TRGovernor"
      | "setBaseAllocationPercentage"
      | "setEmissionsAddress"
      | "setVeBetterPassport"
      | "setVoterRewardsAddress"
      | "setVotingPeriod"
      | "setVotingThreshold"
      | "setX2EarnAppsAddress"
      | "startNewRound"
      | "state"
      | "supportsInterface"
      | "token"
      | "totalVoters"
      | "totalVotes"
      | "totalVotesQF"
      | "updateQuorumNumerator"
      | "upgradeToAndCall"
      | "veBetterPassport"
      | "version"
      | "voterRewards"
      | "votingPeriod"
      | "votingThreshold"
      | "x2EarnApps"
  ): FunctionFragment;

  getEvent(
    nameOrSignatureOrTopic:
      | "AllocationVoteCast"
      | "EmissionsSet"
      | "Initialized"
      | "QuorumNumeratorUpdated"
      | "RoleAdminChanged"
      | "RoleGranted"
      | "RoleRevoked"
      | "RoundCreated"
      | "Upgraded"
      | "VeBetterPassportSet"
      | "VoterRewardsSet"
      | "VotingPeriodSet"
      | "VotingThresholdSet"
      | "X2EarnAppsSet"
  ): EventFragment;

  encodeFunctionData(
    functionFragment: "CLOCK_MODE",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "CONTRACTS_ADDRESS_MANAGER_ROLE",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "COUNTING_MODE",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "DEFAULT_ADMIN_ROLE",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "GOVERNANCE_ROLE",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "ROUND_STARTER_ROLE",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "UPGRADER_ROLE",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "UPGRADE_INTERFACE_VERSION",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "appSharesCap",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "b3trGovernor",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "baseAllocationPercentage",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "castVote",
    values: [BigNumberish, BytesLike[], BigNumberish[]]
  ): string;
  encodeFunctionData(functionFragment: "clock", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "currentRoundDeadline",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "currentRoundId",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "currentRoundSnapshot",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "emissions", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "finalizeRound",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getAppIdsOfRound",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getAppVotes",
    values: [BigNumberish, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getAppVotesQF",
    values: [BigNumberish, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getAppsOfRound",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getDepositVotingPower",
    values: [AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getRoleAdmin",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getRound",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getRoundAppSharesCap",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getRoundBaseAllocationPercentage",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getVotes",
    values: [AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "grantRole",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "hasRole",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "hasVoted",
    values: [BigNumberish, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "hasVotedOnce",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "initialize",
    values: [XAllocationVotingV7.InitializationDataStruct]
  ): string;
  encodeFunctionData(
    functionFragment: "initializeV2",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "initializeV7",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "isActive",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "isEligibleForVote",
    values: [BytesLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "isFinalized",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "latestSucceededRoundId",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(functionFragment: "name", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "proxiableUUID",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "quorum",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "quorumDenominator",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "quorumNumerator(uint256)",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "quorumNumerator()",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "quorumReached",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "renounceRole",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "revokeRole",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "roundDeadline",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "roundProposer",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "roundQuorum",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "roundSnapshot",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setAppSharesCap",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setB3TRGovernor",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setBaseAllocationPercentage",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setEmissionsAddress",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setVeBetterPassport",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setVoterRewardsAddress",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setVotingPeriod",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setVotingThreshold",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setX2EarnAppsAddress",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "startNewRound",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "state", values: [BigNumberish]): string;
  encodeFunctionData(
    functionFragment: "supportsInterface",
    values: [BytesLike]
  ): string;
  encodeFunctionData(functionFragment: "token", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "totalVoters",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "totalVotes",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "totalVotesQF",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "updateQuorumNumerator",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "upgradeToAndCall",
    values: [AddressLike, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "veBetterPassport",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "version", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "voterRewards",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "votingPeriod",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "votingThreshold",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "x2EarnApps",
    values?: undefined
  ): string;

  decodeFunctionResult(functionFragment: "CLOCK_MODE", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "CONTRACTS_ADDRESS_MANAGER_ROLE",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "COUNTING_MODE",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "DEFAULT_ADMIN_ROLE",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "GOVERNANCE_ROLE",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "ROUND_STARTER_ROLE",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "UPGRADER_ROLE",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "UPGRADE_INTERFACE_VERSION",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "appSharesCap",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "b3trGovernor",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "baseAllocationPercentage",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "castVote", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "clock", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "currentRoundDeadline",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "currentRoundId",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "currentRoundSnapshot",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "emissions", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "finalizeRound",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getAppIdsOfRound",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getAppVotes",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getAppVotesQF",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getAppsOfRound",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getDepositVotingPower",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getRoleAdmin",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "getRound", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "getRoundAppSharesCap",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getRoundBaseAllocationPercentage",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "getVotes", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "hasVoted", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "hasVotedOnce",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "initializeV2",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "initializeV7",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "isActive", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "isEligibleForVote",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "isFinalized",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "latestSucceededRoundId",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "proxiableUUID",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "quorum", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "quorumDenominator",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "quorumNumerator(uint256)",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "quorumNumerator()",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "quorumReached",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "renounceRole",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "roundDeadline",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "roundProposer",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "roundQuorum",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "roundSnapshot",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setAppSharesCap",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setB3TRGovernor",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setBaseAllocationPercentage",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setEmissionsAddress",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setVeBetterPassport",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setVoterRewardsAddress",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setVotingPeriod",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setVotingThreshold",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setX2EarnAppsAddress",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "startNewRound",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "state", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "supportsInterface",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "token", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "totalVoters",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "totalVotes", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "totalVotesQF",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "updateQuorumNumerator",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "upgradeToAndCall",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "veBetterPassport",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "version", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "voterRewards",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "votingPeriod",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "votingThreshold",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "x2EarnApps", data: BytesLike): Result;
}

export namespace AllocationVoteCastEvent {
  export type InputTuple = [
    voter: AddressLike,
    roundId: BigNumberish,
    appsIds: BytesLike[],
    voteWeights: BigNumberish[]
  ];
  export type OutputTuple = [
    voter: string,
    roundId: bigint,
    appsIds: string[],
    voteWeights: bigint[]
  ];
  export interface OutputObject {
    voter: string;
    roundId: bigint;
    appsIds: string[];
    voteWeights: 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 EmissionsSetEvent {
  export type InputTuple = [
    oldContractAddress: AddressLike,
    newContractAddress: AddressLike
  ];
  export type OutputTuple = [
    oldContractAddress: string,
    newContractAddress: string
  ];
  export interface OutputObject {
    oldContractAddress: string;
    newContractAddress: 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 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 QuorumNumeratorUpdatedEvent {
  export type InputTuple = [
    oldQuorumNumerator: BigNumberish,
    newQuorumNumerator: BigNumberish
  ];
  export type OutputTuple = [
    oldQuorumNumerator: bigint,
    newQuorumNumerator: bigint
  ];
  export interface OutputObject {
    oldQuorumNumerator: bigint;
    newQuorumNumerator: 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 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 RoundCreatedEvent {
  export type InputTuple = [
    roundId: BigNumberish,
    proposer: AddressLike,
    voteStart: BigNumberish,
    voteEnd: BigNumberish,
    appsIds: BytesLike[]
  ];
  export type OutputTuple = [
    roundId: bigint,
    proposer: string,
    voteStart: bigint,
    voteEnd: bigint,
    appsIds: string[]
  ];
  export interface OutputObject {
    roundId: bigint;
    proposer: string;
    voteStart: bigint;
    voteEnd: bigint;
    appsIds: 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 VeBetterPassportSetEvent {
  export type InputTuple = [
    oldContractAddress: AddressLike,
    newContractAddress: AddressLike
  ];
  export type OutputTuple = [
    oldContractAddress: string,
    newContractAddress: string
  ];
  export interface OutputObject {
    oldContractAddress: string;
    newContractAddress: 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 VoterRewardsSetEvent {
  export type InputTuple = [
    oldContractAddress: AddressLike,
    newContractAddress: AddressLike
  ];
  export type OutputTuple = [
    oldContractAddress: string,
    newContractAddress: string
  ];
  export interface OutputObject {
    oldContractAddress: string;
    newContractAddress: 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 VotingPeriodSetEvent {
  export type InputTuple = [
    oldVotingPeriod: BigNumberish,
    newVotingPeriod: BigNumberish
  ];
  export type OutputTuple = [oldVotingPeriod: bigint, newVotingPeriod: bigint];
  export interface OutputObject {
    oldVotingPeriod: bigint;
    newVotingPeriod: 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 VotingThresholdSetEvent {
  export type InputTuple = [
    oldVotingThreshold: BigNumberish,
    newVotingThreshold: BigNumberish
  ];
  export type OutputTuple = [
    oldVotingThreshold: bigint,
    newVotingThreshold: bigint
  ];
  export interface OutputObject {
    oldVotingThreshold: bigint;
    newVotingThreshold: 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 X2EarnAppsSetEvent {
  export type InputTuple = [
    oldContractAddress: AddressLike,
    newContractAddress: AddressLike
  ];
  export type OutputTuple = [
    oldContractAddress: string,
    newContractAddress: string
  ];
  export interface OutputObject {
    oldContractAddress: string;
    newContractAddress: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

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

  interface: XAllocationVotingV7Interface;

  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">;

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

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

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

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

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

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

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

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

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

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

  castVote: TypedContractMethod<
    [roundId: BigNumberish, appIds: BytesLike[], voteWeights: BigNumberish[]],
    [void],
    "nonpayable"
  >;

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

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

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

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

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

  finalizeRound: TypedContractMethod<
    [roundId: BigNumberish],
    [void],
    "nonpayable"
  >;

  getAppIdsOfRound: TypedContractMethod<
    [roundId: BigNumberish],
    [string[]],
    "view"
  >;

  getAppVotes: TypedContractMethod<
    [roundId: BigNumberish, app: BytesLike],
    [bigint],
    "view"
  >;

  getAppVotesQF: TypedContractMethod<
    [roundId: BigNumberish, app: BytesLike],
    [bigint],
    "view"
  >;

  getAppsOfRound: TypedContractMethod<
    [roundId: BigNumberish],
    [X2EarnAppsDataTypes.AppWithDetailsReturnTypeStructOutput[]],
    "view"
  >;

  getDepositVotingPower: TypedContractMethod<
    [account: AddressLike, timepoint: BigNumberish],
    [bigint],
    "view"
  >;

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

  getRound: TypedContractMethod<
    [roundId: BigNumberish],
    [RoundsStorageUpgradeableV7.RoundCoreStructOutput],
    "view"
  >;

  getRoundAppSharesCap: TypedContractMethod<
    [roundId: BigNumberish],
    [bigint],
    "view"
  >;

  getRoundBaseAllocationPercentage: TypedContractMethod<
    [roundId: BigNumberish],
    [bigint],
    "view"
  >;

  getVotes: TypedContractMethod<
    [account: AddressLike, timepoint: BigNumberish],
    [bigint],
    "view"
  >;

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

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

  hasVoted: TypedContractMethod<
    [roundId: BigNumberish, user: AddressLike],
    [boolean],
    "view"
  >;

  hasVotedOnce: TypedContractMethod<[user: AddressLike], [boolean], "view">;

  initialize: TypedContractMethod<
    [data: XAllocationVotingV7.InitializationDataStruct],
    [void],
    "nonpayable"
  >;

  initializeV2: TypedContractMethod<
    [_veBetterPassport: AddressLike],
    [void],
    "nonpayable"
  >;

  initializeV7: TypedContractMethod<
    [_b3trGovernor: AddressLike],
    [void],
    "nonpayable"
  >;

  isActive: TypedContractMethod<[roundId: BigNumberish], [boolean], "view">;

  isEligibleForVote: TypedContractMethod<
    [appId: BytesLike, roundId: BigNumberish],
    [boolean],
    "view"
  >;

  isFinalized: TypedContractMethod<[roundId: BigNumberish], [boolean], "view">;

  latestSucceededRoundId: TypedContractMethod<
    [roundId: BigNumberish],
    [bigint],
    "view"
  >;

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

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

  quorum: TypedContractMethod<[blockNumber: BigNumberish], [bigint], "view">;

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

  "quorumNumerator(uint256)": TypedContractMethod<
    [timepoint: BigNumberish],
    [bigint],
    "view"
  >;

  "quorumNumerator()": TypedContractMethod<[], [bigint], "view">;

  quorumReached: TypedContractMethod<
    [roundId: BigNumberish],
    [boolean],
    "view"
  >;

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

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

  roundDeadline: TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;

  roundProposer: TypedContractMethod<[roundId: BigNumberish], [string], "view">;

  roundQuorum: TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;

  roundSnapshot: TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;

  setAppSharesCap: TypedContractMethod<
    [appSharesCap_: BigNumberish],
    [void],
    "nonpayable"
  >;

  setB3TRGovernor: TypedContractMethod<
    [newB3TRGovernor: AddressLike],
    [void],
    "nonpayable"
  >;

  setBaseAllocationPercentage: TypedContractMethod<
    [baseAllocationPercentage_: BigNumberish],
    [void],
    "nonpayable"
  >;

  setEmissionsAddress: TypedContractMethod<
    [newEmissions: AddressLike],
    [void],
    "nonpayable"
  >;

  setVeBetterPassport: TypedContractMethod<
    [newVeBetterPassport: AddressLike],
    [void],
    "nonpayable"
  >;

  setVoterRewardsAddress: TypedContractMethod<
    [newVoterRewards: AddressLike],
    [void],
    "nonpayable"
  >;

  setVotingPeriod: TypedContractMethod<
    [newVotingPeriod: BigNumberish],
    [void],
    "nonpayable"
  >;

  setVotingThreshold: TypedContractMethod<
    [newVotingThreshold: BigNumberish],
    [void],
    "nonpayable"
  >;

  setX2EarnAppsAddress: TypedContractMethod<
    [newX2EarnApps: AddressLike],
    [void],
    "nonpayable"
  >;

  startNewRound: TypedContractMethod<[], [bigint], "nonpayable">;

  state: TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;

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

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

  totalVoters: TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;

  totalVotes: TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;

  totalVotesQF: TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;

  updateQuorumNumerator: TypedContractMethod<
    [newQuorumNumerator: BigNumberish],
    [void],
    "nonpayable"
  >;

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

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

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

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

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

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

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

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

  getFunction(
    nameOrSignature: "CLOCK_MODE"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "CONTRACTS_ADDRESS_MANAGER_ROLE"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "COUNTING_MODE"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "DEFAULT_ADMIN_ROLE"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "GOVERNANCE_ROLE"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "ROUND_STARTER_ROLE"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "UPGRADER_ROLE"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "UPGRADE_INTERFACE_VERSION"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "appSharesCap"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "b3trGovernor"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "baseAllocationPercentage"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "castVote"
  ): TypedContractMethod<
    [roundId: BigNumberish, appIds: BytesLike[], voteWeights: BigNumberish[]],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "clock"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "currentRoundDeadline"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "currentRoundId"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "currentRoundSnapshot"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "emissions"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "finalizeRound"
  ): TypedContractMethod<[roundId: BigNumberish], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "getAppIdsOfRound"
  ): TypedContractMethod<[roundId: BigNumberish], [string[]], "view">;
  getFunction(
    nameOrSignature: "getAppVotes"
  ): TypedContractMethod<
    [roundId: BigNumberish, app: BytesLike],
    [bigint],
    "view"
  >;
  getFunction(
    nameOrSignature: "getAppVotesQF"
  ): TypedContractMethod<
    [roundId: BigNumberish, app: BytesLike],
    [bigint],
    "view"
  >;
  getFunction(
    nameOrSignature: "getAppsOfRound"
  ): TypedContractMethod<
    [roundId: BigNumberish],
    [X2EarnAppsDataTypes.AppWithDetailsReturnTypeStructOutput[]],
    "view"
  >;
  getFunction(
    nameOrSignature: "getDepositVotingPower"
  ): TypedContractMethod<
    [account: AddressLike, timepoint: BigNumberish],
    [bigint],
    "view"
  >;
  getFunction(
    nameOrSignature: "getRoleAdmin"
  ): TypedContractMethod<[role: BytesLike], [string], "view">;
  getFunction(
    nameOrSignature: "getRound"
  ): TypedContractMethod<
    [roundId: BigNumberish],
    [RoundsStorageUpgradeableV7.RoundCoreStructOutput],
    "view"
  >;
  getFunction(
    nameOrSignature: "getRoundAppSharesCap"
  ): TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "getRoundBaseAllocationPercentage"
  ): TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "getVotes"
  ): TypedContractMethod<
    [account: AddressLike, timepoint: BigNumberish],
    [bigint],
    "view"
  >;
  getFunction(
    nameOrSignature: "grantRole"
  ): TypedContractMethod<
    [role: BytesLike, account: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "hasRole"
  ): TypedContractMethod<
    [role: BytesLike, account: AddressLike],
    [boolean],
    "view"
  >;
  getFunction(
    nameOrSignature: "hasVoted"
  ): TypedContractMethod<
    [roundId: BigNumberish, user: AddressLike],
    [boolean],
    "view"
  >;
  getFunction(
    nameOrSignature: "hasVotedOnce"
  ): TypedContractMethod<[user: AddressLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "initialize"
  ): TypedContractMethod<
    [data: XAllocationVotingV7.InitializationDataStruct],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "initializeV2"
  ): TypedContractMethod<
    [_veBetterPassport: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "initializeV7"
  ): TypedContractMethod<[_b3trGovernor: AddressLike], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "isActive"
  ): TypedContractMethod<[roundId: BigNumberish], [boolean], "view">;
  getFunction(
    nameOrSignature: "isEligibleForVote"
  ): TypedContractMethod<
    [appId: BytesLike, roundId: BigNumberish],
    [boolean],
    "view"
  >;
  getFunction(
    nameOrSignature: "isFinalized"
  ): TypedContractMethod<[roundId: BigNumberish], [boolean], "view">;
  getFunction(
    nameOrSignature: "latestSucceededRoundId"
  ): TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "name"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "proxiableUUID"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "quorum"
  ): TypedContractMethod<[blockNumber: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "quorumDenominator"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "quorumNumerator(uint256)"
  ): TypedContractMethod<[timepoint: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "quorumNumerator()"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "quorumReached"
  ): TypedContractMethod<[roundId: BigNumberish], [boolean], "view">;
  getFunction(
    nameOrSignature: "renounceRole"
  ): TypedContractMethod<
    [role: BytesLike, callerConfirmation: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "revokeRole"
  ): TypedContractMethod<
    [role: BytesLike, account: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "roundDeadline"
  ): TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "roundProposer"
  ): TypedContractMethod<[roundId: BigNumberish], [string], "view">;
  getFunction(
    nameOrSignature: "roundQuorum"
  ): TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "roundSnapshot"
  ): TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "setAppSharesCap"
  ): TypedContractMethod<[appSharesCap_: BigNumberish], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "setB3TRGovernor"
  ): TypedContractMethod<[newB3TRGovernor: AddressLike], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "setBaseAllocationPercentage"
  ): TypedContractMethod<
    [baseAllocationPercentage_: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setEmissionsAddress"
  ): TypedContractMethod<[newEmissions: AddressLike], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "setVeBetterPassport"
  ): TypedContractMethod<
    [newVeBetterPassport: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setVoterRewardsAddress"
  ): TypedContractMethod<[newVoterRewards: AddressLike], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "setVotingPeriod"
  ): TypedContractMethod<[newVotingPeriod: BigNumberish], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "setVotingThreshold"
  ): TypedContractMethod<
    [newVotingThreshold: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setX2EarnAppsAddress"
  ): TypedContractMethod<[newX2EarnApps: AddressLike], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "startNewRound"
  ): TypedContractMethod<[], [bigint], "nonpayable">;
  getFunction(
    nameOrSignature: "state"
  ): TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "supportsInterface"
  ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "token"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "totalVoters"
  ): TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "totalVotes"
  ): TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "totalVotesQF"
  ): TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "updateQuorumNumerator"
  ): TypedContractMethod<
    [newQuorumNumerator: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "upgradeToAndCall"
  ): TypedContractMethod<
    [newImplementation: AddressLike, data: BytesLike],
    [void],
    "payable"
  >;
  getFunction(
    nameOrSignature: "veBetterPassport"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "version"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "voterRewards"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "votingPeriod"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "votingThreshold"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "x2EarnApps"
  ): TypedContractMethod<[], [string], "view">;

  getEvent(
    key: "AllocationVoteCast"
  ): TypedContractEvent<
    AllocationVoteCastEvent.InputTuple,
    AllocationVoteCastEvent.OutputTuple,
    AllocationVoteCastEvent.OutputObject
  >;
  getEvent(
    key: "EmissionsSet"
  ): TypedContractEvent<
    EmissionsSetEvent.InputTuple,
    EmissionsSetEvent.OutputTuple,
    EmissionsSetEvent.OutputObject
  >;
  getEvent(
    key: "Initialized"
  ): TypedContractEvent<
    InitializedEvent.InputTuple,
    InitializedEvent.OutputTuple,
    InitializedEvent.OutputObject
  >;
  getEvent(
    key: "QuorumNumeratorUpdated"
  ): TypedContractEvent<
    QuorumNumeratorUpdatedEvent.InputTuple,
    QuorumNumeratorUpdatedEvent.OutputTuple,
    QuorumNumeratorUpdatedEvent.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: "RoundCreated"
  ): TypedContractEvent<
    RoundCreatedEvent.InputTuple,
    RoundCreatedEvent.OutputTuple,
    RoundCreatedEvent.OutputObject
  >;
  getEvent(
    key: "Upgraded"
  ): TypedContractEvent<
    UpgradedEvent.InputTuple,
    UpgradedEvent.OutputTuple,
    UpgradedEvent.OutputObject
  >;
  getEvent(
    key: "VeBetterPassportSet"
  ): TypedContractEvent<
    VeBetterPassportSetEvent.InputTuple,
    VeBetterPassportSetEvent.OutputTuple,
    VeBetterPassportSetEvent.OutputObject
  >;
  getEvent(
    key: "VoterRewardsSet"
  ): TypedContractEvent<
    VoterRewardsSetEvent.InputTuple,
    VoterRewardsSetEvent.OutputTuple,
    VoterRewardsSetEvent.OutputObject
  >;
  getEvent(
    key: "VotingPeriodSet"
  ): TypedContractEvent<
    VotingPeriodSetEvent.InputTuple,
    VotingPeriodSetEvent.OutputTuple,
    VotingPeriodSetEvent.OutputObject
  >;
  getEvent(
    key: "VotingThresholdSet"
  ): TypedContractEvent<
    VotingThresholdSetEvent.InputTuple,
    VotingThresholdSetEvent.OutputTuple,
    VotingThresholdSetEvent.OutputObject
  >;
  getEvent(
    key: "X2EarnAppsSet"
  ): TypedContractEvent<
    X2EarnAppsSetEvent.InputTuple,
    X2EarnAppsSetEvent.OutputTuple,
    X2EarnAppsSetEvent.OutputObject
  >;

  filters: {
    "AllocationVoteCast(address,uint256,bytes32[],uint256[])": TypedContractEvent<
      AllocationVoteCastEvent.InputTuple,
      AllocationVoteCastEvent.OutputTuple,
      AllocationVoteCastEvent.OutputObject
    >;
    AllocationVoteCast: TypedContractEvent<
      AllocationVoteCastEvent.InputTuple,
      AllocationVoteCastEvent.OutputTuple,
      AllocationVoteCastEvent.OutputObject
    >;

    "EmissionsSet(address,address)": TypedContractEvent<
      EmissionsSetEvent.InputTuple,
      EmissionsSetEvent.OutputTuple,
      EmissionsSetEvent.OutputObject
    >;
    EmissionsSet: TypedContractEvent<
      EmissionsSetEvent.InputTuple,
      EmissionsSetEvent.OutputTuple,
      EmissionsSetEvent.OutputObject
    >;

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

    "QuorumNumeratorUpdated(uint256,uint256)": TypedContractEvent<
      QuorumNumeratorUpdatedEvent.InputTuple,
      QuorumNumeratorUpdatedEvent.OutputTuple,
      QuorumNumeratorUpdatedEvent.OutputObject
    >;
    QuorumNumeratorUpdated: TypedContractEvent<
      QuorumNumeratorUpdatedEvent.InputTuple,
      QuorumNumeratorUpdatedEvent.OutputTuple,
      QuorumNumeratorUpdatedEvent.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
    >;

    "RoundCreated(uint256,address,uint256,uint256,bytes32[])": TypedContractEvent<
      RoundCreatedEvent.InputTuple,
      RoundCreatedEvent.OutputTuple,
      RoundCreatedEvent.OutputObject
    >;
    RoundCreated: TypedContractEvent<
      RoundCreatedEvent.InputTuple,
      RoundCreatedEvent.OutputTuple,
      RoundCreatedEvent.OutputObject
    >;

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

    "VeBetterPassportSet(address,address)": TypedContractEvent<
      VeBetterPassportSetEvent.InputTuple,
      VeBetterPassportSetEvent.OutputTuple,
      VeBetterPassportSetEvent.OutputObject
    >;
    VeBetterPassportSet: TypedContractEvent<
      VeBetterPassportSetEvent.InputTuple,
      VeBetterPassportSetEvent.OutputTuple,
      VeBetterPassportSetEvent.OutputObject
    >;

    "VoterRewardsSet(address,address)": TypedContractEvent<
      VoterRewardsSetEvent.InputTuple,
      VoterRewardsSetEvent.OutputTuple,
      VoterRewardsSetEvent.OutputObject
    >;
    VoterRewardsSet: TypedContractEvent<
      VoterRewardsSetEvent.InputTuple,
      VoterRewardsSetEvent.OutputTuple,
      VoterRewardsSetEvent.OutputObject
    >;

    "VotingPeriodSet(uint256,uint256)": TypedContractEvent<
      VotingPeriodSetEvent.InputTuple,
      VotingPeriodSetEvent.OutputTuple,
      VotingPeriodSetEvent.OutputObject
    >;
    VotingPeriodSet: TypedContractEvent<
      VotingPeriodSetEvent.InputTuple,
      VotingPeriodSetEvent.OutputTuple,
      VotingPeriodSetEvent.OutputObject
    >;

    "VotingThresholdSet(uint256,uint256)": TypedContractEvent<
      VotingThresholdSetEvent.InputTuple,
      VotingThresholdSetEvent.OutputTuple,
      VotingThresholdSetEvent.OutputObject
    >;
    VotingThresholdSet: TypedContractEvent<
      VotingThresholdSetEvent.InputTuple,
      VotingThresholdSetEvent.OutputTuple,
      VotingThresholdSetEvent.OutputObject
    >;

    "X2EarnAppsSet(address,address)": TypedContractEvent<
      X2EarnAppsSetEvent.InputTuple,
      X2EarnAppsSetEvent.OutputTuple,
      X2EarnAppsSetEvent.OutputObject
    >;
    X2EarnAppsSet: TypedContractEvent<
      X2EarnAppsSetEvent.InputTuple,
      X2EarnAppsSetEvent.OutputTuple,
      X2EarnAppsSetEvent.OutputObject
    >;
  };
}
