/* 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 XAllocationVotingStorageTypes {
  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 interface XAllocationVotingInterface extends Interface {
  getFunction(
    nameOrSignature:
      | "CLOCK_MODE"
      | "CONTRACTS_ADDRESS_MANAGER_ROLE"
      | "DEFAULT_ADMIN_ROLE"
      | "GOVERNANCE_ROLE"
      | "ROUND_STARTER_ROLE"
      | "UPGRADER_ROLE"
      | "UPGRADE_INTERFACE_VERSION"
      | "appSharesCap"
      | "baseAllocationPercentage"
      | "castNavigatorVote"
      | "castVote"
      | "castVoteOnBehalfOf"
      | "citizenSkipWindowBlocks"
      | "clock"
      | "currentRoundDeadline"
      | "currentRoundId"
      | "currentRoundSnapshot"
      | "disableAutoVotingFor"
      | "finalizeRound"
      | "getAppIdsOfRound"
      | "getAppVotes"
      | "getAppVotesQF"
      | "getAppsOfRound"
      | "getDepositVotingPower"
      | "getRoleAdmin"
      | "getRound"
      | "getRoundAppSharesCap"
      | "getRoundBaseAllocationPercentage"
      | "getTotalAutoVotingUsersAtRoundStart"
      | "getTotalAutoVotingUsersAtTimepoint"
      | "getTotalVotingPower"
      | "getUserVotingPreferences"
      | "getVotes"
      | "grantRole"
      | "hasRole"
      | "hasUserVotedForApp"
      | "hasVoted"
      | "hasVotedOnce"
      | "initializeV9"
      | "isActive"
      | "isEligibleForVote"
      | "isFinalized"
      | "isUserAutoVotingEnabled"
      | "isUserAutoVotingEnabledAtTimepoint"
      | "isUserAutoVotingEnabledForRound"
      | "isUserAutoVotingEnabledInCurrentRound"
      | "latestSucceededRoundId"
      | "navigatorRegistry"
      | "proxiableUUID"
      | "quorum"
      | "quorumDenominator"
      | "quorumNumerator(uint256)"
      | "quorumNumerator()"
      | "quorumPercentage"
      | "quorumReached"
      | "renounceRole"
      | "revokeRole"
      | "roundDeadline"
      | "roundQuorum"
      | "roundSnapshot"
      | "setAppSharesCap"
      | "setB3TRGovernor"
      | "setBaseAllocationPercentage"
      | "setCitizenSkipWindowBlocks"
      | "setEmissionsAddress"
      | "setNavigatorRegistry"
      | "setRelayerRewardsPoolAddress"
      | "setUserVotingPreferences"
      | "setVeBetterPassport"
      | "setVoterRewardsAddress"
      | "setVotingPeriod"
      | "setVotingThreshold"
      | "setX2EarnAppsAddress"
      | "startNewRound"
      | "state"
      | "supportsInterface"
      | "toggleAutoVoting"
      | "totalVoters"
      | "totalVotes"
      | "totalVotesQF"
      | "updateQuorumNumerator"
      | "upgradeToAndCall"
      | "validatePersonhoodForCurrentRound"
      | "version"
      | "votingPeriod"
      | "votingThreshold"
  ): FunctionFragment;

  getEvent(
    nameOrSignatureOrTopic:
      | "AllocationAutoVoteCast"
      | "AllocationVoteCast"
      | "AutoVoteSkipped"
      | "AutoVotingToggled"
      | "FreshnessMultiplierApplied"
      | "Initialized"
      | "NavigatorVoteCast"
      | "NavigatorVoteSkipped"
      | "PreferredAppsUpdated"
      | "RoleAdminChanged"
      | "RoleGranted"
      | "RoleRevoked"
      | "RoundCreated"
      | "Upgraded"
  ): EventFragment;

  encodeFunctionData(
    functionFragment: "CLOCK_MODE",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "CONTRACTS_ADDRESS_MANAGER_ROLE",
    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: "baseAllocationPercentage",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "castNavigatorVote",
    values: [AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "castVote",
    values: [BigNumberish, BytesLike[], BigNumberish[]]
  ): string;
  encodeFunctionData(
    functionFragment: "castVoteOnBehalfOf",
    values: [AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "citizenSkipWindowBlocks",
    values?: undefined
  ): 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: "disableAutoVotingFor",
    values: [AddressLike]
  ): 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: "getTotalAutoVotingUsersAtRoundStart",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getTotalAutoVotingUsersAtTimepoint",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getTotalVotingPower",
    values: [AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getUserVotingPreferences",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getVotes",
    values: [AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "grantRole",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "hasRole",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "hasUserVotedForApp",
    values: [BigNumberish, AddressLike, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "hasVoted",
    values: [BigNumberish, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "hasVotedOnce",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "initializeV9",
    values: [AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "isActive",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "isEligibleForVote",
    values: [BytesLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "isFinalized",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "isUserAutoVotingEnabled",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "isUserAutoVotingEnabledAtTimepoint",
    values: [AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "isUserAutoVotingEnabledForRound",
    values: [AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "isUserAutoVotingEnabledInCurrentRound",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "latestSucceededRoundId",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "navigatorRegistry",
    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: "quorumPercentage",
    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: "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: "setCitizenSkipWindowBlocks",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setEmissionsAddress",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setNavigatorRegistry",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setRelayerRewardsPoolAddress",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setUserVotingPreferences",
    values: [BytesLike[]]
  ): 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: "toggleAutoVoting",
    values: [AddressLike]
  ): 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: "validatePersonhoodForCurrentRound",
    values: [AddressLike]
  ): string;
  encodeFunctionData(functionFragment: "version", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "votingPeriod",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "votingThreshold",
    values?: undefined
  ): string;

  decodeFunctionResult(functionFragment: "CLOCK_MODE", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "CONTRACTS_ADDRESS_MANAGER_ROLE",
    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: "baseAllocationPercentage",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "castNavigatorVote",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "castVote", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "castVoteOnBehalfOf",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "citizenSkipWindowBlocks",
    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: "disableAutoVotingFor",
    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: "getTotalAutoVotingUsersAtRoundStart",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getTotalAutoVotingUsersAtTimepoint",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getTotalVotingPower",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getUserVotingPreferences",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "getVotes", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "hasUserVotedForApp",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "hasVoted", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "hasVotedOnce",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "initializeV9",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "isActive", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "isEligibleForVote",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "isFinalized",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "isUserAutoVotingEnabled",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "isUserAutoVotingEnabledAtTimepoint",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "isUserAutoVotingEnabledForRound",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "isUserAutoVotingEnabledInCurrentRound",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "latestSucceededRoundId",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "navigatorRegistry",
    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: "quorumPercentage",
    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: "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: "setCitizenSkipWindowBlocks",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setEmissionsAddress",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setNavigatorRegistry",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setRelayerRewardsPoolAddress",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setUserVotingPreferences",
    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: "toggleAutoVoting",
    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: "validatePersonhoodForCurrentRound",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "version", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "votingPeriod",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "votingThreshold",
    data: BytesLike
  ): Result;
}

export namespace AllocationAutoVoteCastEvent {
  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 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 AutoVoteSkippedEvent {
  export type InputTuple = [
    voter: AddressLike,
    roundId: BigNumberish,
    isPerson: boolean,
    appCount: BigNumberish,
    votingPower: BigNumberish
  ];
  export type OutputTuple = [
    voter: string,
    roundId: bigint,
    isPerson: boolean,
    appCount: bigint,
    votingPower: bigint
  ];
  export interface OutputObject {
    voter: string;
    roundId: bigint;
    isPerson: boolean;
    appCount: bigint;
    votingPower: 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 AutoVotingToggledEvent {
  export type InputTuple = [account: AddressLike, enabled: boolean];
  export type OutputTuple = [account: string, enabled: boolean];
  export interface OutputObject {
    account: string;
    enabled: 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 FreshnessMultiplierAppliedEvent {
  export type InputTuple = [
    voter: AddressLike,
    roundId: BigNumberish,
    fingerprint: BytesLike,
    lastChangedRound: BigNumberish,
    multiplier: BigNumberish
  ];
  export type OutputTuple = [
    voter: string,
    roundId: bigint,
    fingerprint: string,
    lastChangedRound: bigint,
    multiplier: bigint
  ];
  export interface OutputObject {
    voter: string;
    roundId: bigint;
    fingerprint: string;
    lastChangedRound: bigint;
    multiplier: 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 NavigatorVoteCastEvent {
  export type InputTuple = [
    citizen: AddressLike,
    navigator: AddressLike,
    roundId: BigNumberish,
    appsIds: BytesLike[],
    voteWeights: BigNumberish[]
  ];
  export type OutputTuple = [
    citizen: string,
    navigator: string,
    roundId: bigint,
    appsIds: string[],
    voteWeights: bigint[]
  ];
  export interface OutputObject {
    citizen: string;
    navigator: 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 NavigatorVoteSkippedEvent {
  export type InputTuple = [
    citizen: AddressLike,
    navigator: AddressLike,
    roundId: BigNumberish
  ];
  export type OutputTuple = [
    citizen: string,
    navigator: string,
    roundId: bigint
  ];
  export interface OutputObject {
    citizen: string;
    navigator: string;
    roundId: 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 PreferredAppsUpdatedEvent {
  export type InputTuple = [account: AddressLike, apps: BytesLike[]];
  export type OutputTuple = [account: string, apps: string[]];
  export interface OutputObject {
    account: string;
    apps: 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 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 interface XAllocationVoting extends BaseContract {
  connect(runner?: ContractRunner | null): XAllocationVoting;
  waitForDeployment(): Promise<this>;

  interface: XAllocationVotingInterface;

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

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

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

  castNavigatorVote: TypedContractMethod<
    [citizen: AddressLike, roundId: BigNumberish],
    [void],
    "nonpayable"
  >;

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

  castVoteOnBehalfOf: TypedContractMethod<
    [voter: AddressLike, roundId: BigNumberish],
    [void],
    "nonpayable"
  >;

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

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

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

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

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

  disableAutoVotingFor: TypedContractMethod<
    [user: AddressLike],
    [void],
    "nonpayable"
  >;

  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],
    [XAllocationVotingStorageTypes.RoundCoreStructOutput],
    "view"
  >;

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

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

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

  getTotalAutoVotingUsersAtTimepoint: TypedContractMethod<
    [timepoint: BigNumberish],
    [bigint],
    "view"
  >;

  getTotalVotingPower: TypedContractMethod<
    [voter: AddressLike, roundStart: BigNumberish],
    [bigint],
    "view"
  >;

  getUserVotingPreferences: TypedContractMethod<
    [account: AddressLike],
    [string[]],
    "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"
  >;

  hasUserVotedForApp: TypedContractMethod<
    [roundId: BigNumberish, user: AddressLike, appId: BytesLike],
    [boolean],
    "view"
  >;

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

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

  initializeV9: TypedContractMethod<
    [_navigatorRegistry: AddressLike, _citizenSkipWindowBlocks: BigNumberish],
    [void],
    "nonpayable"
  >;

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

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

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

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

  isUserAutoVotingEnabledAtTimepoint: TypedContractMethod<
    [account: AddressLike, timepoint: BigNumberish],
    [boolean],
    "view"
  >;

  isUserAutoVotingEnabledForRound: TypedContractMethod<
    [account: AddressLike, roundId: BigNumberish],
    [boolean],
    "view"
  >;

  isUserAutoVotingEnabledInCurrentRound: TypedContractMethod<
    [account: AddressLike],
    [boolean],
    "view"
  >;

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

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

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

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

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

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

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

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

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

  setCitizenSkipWindowBlocks: TypedContractMethod<
    [newValue: BigNumberish],
    [void],
    "nonpayable"
  >;

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

  setNavigatorRegistry: TypedContractMethod<
    [newNavigatorRegistry: AddressLike],
    [void],
    "nonpayable"
  >;

  setRelayerRewardsPoolAddress: TypedContractMethod<
    [newRelayerRewardsPool: AddressLike],
    [void],
    "nonpayable"
  >;

  setUserVotingPreferences: TypedContractMethod<
    [appIds: BytesLike[]],
    [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"
  >;

  toggleAutoVoting: TypedContractMethod<
    [user: AddressLike],
    [void],
    "nonpayable"
  >;

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

  validatePersonhoodForCurrentRound: TypedContractMethod<
    [voter: AddressLike],
    [boolean],
    "view"
  >;

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

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

  votingThreshold: TypedContractMethod<[], [bigint], "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: "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: "baseAllocationPercentage"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "castNavigatorVote"
  ): TypedContractMethod<
    [citizen: AddressLike, roundId: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "castVote"
  ): TypedContractMethod<
    [roundId: BigNumberish, appIds: BytesLike[], voteWeights: BigNumberish[]],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "castVoteOnBehalfOf"
  ): TypedContractMethod<
    [voter: AddressLike, roundId: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "citizenSkipWindowBlocks"
  ): TypedContractMethod<[], [bigint], "view">;
  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: "disableAutoVotingFor"
  ): TypedContractMethod<[user: AddressLike], [void], "nonpayable">;
  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],
    [XAllocationVotingStorageTypes.RoundCoreStructOutput],
    "view"
  >;
  getFunction(
    nameOrSignature: "getRoundAppSharesCap"
  ): TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "getRoundBaseAllocationPercentage"
  ): TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "getTotalAutoVotingUsersAtRoundStart"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getTotalAutoVotingUsersAtTimepoint"
  ): TypedContractMethod<[timepoint: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "getTotalVotingPower"
  ): TypedContractMethod<
    [voter: AddressLike, roundStart: BigNumberish],
    [bigint],
    "view"
  >;
  getFunction(
    nameOrSignature: "getUserVotingPreferences"
  ): TypedContractMethod<[account: AddressLike], [string[]], "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: "hasUserVotedForApp"
  ): TypedContractMethod<
    [roundId: BigNumberish, user: AddressLike, appId: BytesLike],
    [boolean],
    "view"
  >;
  getFunction(
    nameOrSignature: "hasVoted"
  ): TypedContractMethod<
    [roundId: BigNumberish, user: AddressLike],
    [boolean],
    "view"
  >;
  getFunction(
    nameOrSignature: "hasVotedOnce"
  ): TypedContractMethod<[user: AddressLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "initializeV9"
  ): TypedContractMethod<
    [_navigatorRegistry: AddressLike, _citizenSkipWindowBlocks: BigNumberish],
    [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: "isUserAutoVotingEnabled"
  ): TypedContractMethod<[user: AddressLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "isUserAutoVotingEnabledAtTimepoint"
  ): TypedContractMethod<
    [account: AddressLike, timepoint: BigNumberish],
    [boolean],
    "view"
  >;
  getFunction(
    nameOrSignature: "isUserAutoVotingEnabledForRound"
  ): TypedContractMethod<
    [account: AddressLike, roundId: BigNumberish],
    [boolean],
    "view"
  >;
  getFunction(
    nameOrSignature: "isUserAutoVotingEnabledInCurrentRound"
  ): TypedContractMethod<[account: AddressLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "latestSucceededRoundId"
  ): TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "navigatorRegistry"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "proxiableUUID"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "quorum"
  ): TypedContractMethod<[timepoint: 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: "quorumPercentage"
  ): 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: "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: "setCitizenSkipWindowBlocks"
  ): TypedContractMethod<[newValue: BigNumberish], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "setEmissionsAddress"
  ): TypedContractMethod<[newEmissions: AddressLike], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "setNavigatorRegistry"
  ): TypedContractMethod<
    [newNavigatorRegistry: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setRelayerRewardsPoolAddress"
  ): TypedContractMethod<
    [newRelayerRewardsPool: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setUserVotingPreferences"
  ): TypedContractMethod<[appIds: BytesLike[]], [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: "toggleAutoVoting"
  ): TypedContractMethod<[user: AddressLike], [void], "nonpayable">;
  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: "validatePersonhoodForCurrentRound"
  ): TypedContractMethod<[voter: AddressLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "version"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "votingPeriod"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "votingThreshold"
  ): TypedContractMethod<[], [bigint], "view">;

  getEvent(
    key: "AllocationAutoVoteCast"
  ): TypedContractEvent<
    AllocationAutoVoteCastEvent.InputTuple,
    AllocationAutoVoteCastEvent.OutputTuple,
    AllocationAutoVoteCastEvent.OutputObject
  >;
  getEvent(
    key: "AllocationVoteCast"
  ): TypedContractEvent<
    AllocationVoteCastEvent.InputTuple,
    AllocationVoteCastEvent.OutputTuple,
    AllocationVoteCastEvent.OutputObject
  >;
  getEvent(
    key: "AutoVoteSkipped"
  ): TypedContractEvent<
    AutoVoteSkippedEvent.InputTuple,
    AutoVoteSkippedEvent.OutputTuple,
    AutoVoteSkippedEvent.OutputObject
  >;
  getEvent(
    key: "AutoVotingToggled"
  ): TypedContractEvent<
    AutoVotingToggledEvent.InputTuple,
    AutoVotingToggledEvent.OutputTuple,
    AutoVotingToggledEvent.OutputObject
  >;
  getEvent(
    key: "FreshnessMultiplierApplied"
  ): TypedContractEvent<
    FreshnessMultiplierAppliedEvent.InputTuple,
    FreshnessMultiplierAppliedEvent.OutputTuple,
    FreshnessMultiplierAppliedEvent.OutputObject
  >;
  getEvent(
    key: "Initialized"
  ): TypedContractEvent<
    InitializedEvent.InputTuple,
    InitializedEvent.OutputTuple,
    InitializedEvent.OutputObject
  >;
  getEvent(
    key: "NavigatorVoteCast"
  ): TypedContractEvent<
    NavigatorVoteCastEvent.InputTuple,
    NavigatorVoteCastEvent.OutputTuple,
    NavigatorVoteCastEvent.OutputObject
  >;
  getEvent(
    key: "NavigatorVoteSkipped"
  ): TypedContractEvent<
    NavigatorVoteSkippedEvent.InputTuple,
    NavigatorVoteSkippedEvent.OutputTuple,
    NavigatorVoteSkippedEvent.OutputObject
  >;
  getEvent(
    key: "PreferredAppsUpdated"
  ): TypedContractEvent<
    PreferredAppsUpdatedEvent.InputTuple,
    PreferredAppsUpdatedEvent.OutputTuple,
    PreferredAppsUpdatedEvent.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
  >;

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

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

    "AutoVoteSkipped(address,uint256,bool,uint256,uint256)": TypedContractEvent<
      AutoVoteSkippedEvent.InputTuple,
      AutoVoteSkippedEvent.OutputTuple,
      AutoVoteSkippedEvent.OutputObject
    >;
    AutoVoteSkipped: TypedContractEvent<
      AutoVoteSkippedEvent.InputTuple,
      AutoVoteSkippedEvent.OutputTuple,
      AutoVoteSkippedEvent.OutputObject
    >;

    "AutoVotingToggled(address,bool)": TypedContractEvent<
      AutoVotingToggledEvent.InputTuple,
      AutoVotingToggledEvent.OutputTuple,
      AutoVotingToggledEvent.OutputObject
    >;
    AutoVotingToggled: TypedContractEvent<
      AutoVotingToggledEvent.InputTuple,
      AutoVotingToggledEvent.OutputTuple,
      AutoVotingToggledEvent.OutputObject
    >;

    "FreshnessMultiplierApplied(address,uint256,bytes32,uint256,uint256)": TypedContractEvent<
      FreshnessMultiplierAppliedEvent.InputTuple,
      FreshnessMultiplierAppliedEvent.OutputTuple,
      FreshnessMultiplierAppliedEvent.OutputObject
    >;
    FreshnessMultiplierApplied: TypedContractEvent<
      FreshnessMultiplierAppliedEvent.InputTuple,
      FreshnessMultiplierAppliedEvent.OutputTuple,
      FreshnessMultiplierAppliedEvent.OutputObject
    >;

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

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

    "NavigatorVoteSkipped(address,address,uint256)": TypedContractEvent<
      NavigatorVoteSkippedEvent.InputTuple,
      NavigatorVoteSkippedEvent.OutputTuple,
      NavigatorVoteSkippedEvent.OutputObject
    >;
    NavigatorVoteSkipped: TypedContractEvent<
      NavigatorVoteSkippedEvent.InputTuple,
      NavigatorVoteSkippedEvent.OutputTuple,
      NavigatorVoteSkippedEvent.OutputObject
    >;

    "PreferredAppsUpdated(address,bytes32[])": TypedContractEvent<
      PreferredAppsUpdatedEvent.InputTuple,
      PreferredAppsUpdatedEvent.OutputTuple,
      PreferredAppsUpdatedEvent.OutputObject
    >;
    PreferredAppsUpdated: TypedContractEvent<
      PreferredAppsUpdatedEvent.InputTuple,
      PreferredAppsUpdatedEvent.OutputTuple,
      PreferredAppsUpdatedEvent.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
    >;
  };
}
