/* 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 interface IXAllocationVotingGovernorInterface extends Interface {
  getFunction(
    nameOrSignature:
      | "CLOCK_MODE"
      | "castVote"
      | "clock"
      | "currentRoundDeadline"
      | "currentRoundId"
      | "currentRoundSnapshot"
      | "disableAutoVotingFor"
      | "getAppIdsOfRound"
      | "getAppVotes"
      | "getAppVotesQF"
      | "getRoundAppSharesCap"
      | "getRoundBaseAllocationPercentage"
      | "getTotalAutoVotingUsersAtRoundStart"
      | "getTotalVotingPower"
      | "getVotes"
      | "hasVoted"
      | "hasVotedOnce"
      | "isActive"
      | "isEligibleForVote"
      | "isUserAutoVotingEnabled"
      | "isUserAutoVotingEnabledAtTimepoint"
      | "isUserAutoVotingEnabledForRound"
      | "isUserAutoVotingEnabledInCurrentRound"
      | "latestSucceededRoundId"
      | "quorum"
      | "quorumReached"
      | "roundDeadline"
      | "roundQuorum"
      | "roundSnapshot"
      | "startNewRound"
      | "state"
      | "supportsInterface"
      | "toggleAutoVoting"
      | "totalVoters"
      | "totalVotes"
      | "totalVotesQF"
      | "validatePersonhoodForCurrentRound"
      | "version"
      | "votingPeriod"
  ): FunctionFragment;

  getEvent(
    nameOrSignatureOrTopic:
      | "AllocationAutoVoteCast"
      | "AllocationVoteCast"
      | "AutoVoteSkipped"
      | "AutoVotingToggled"
      | "FreshnessMultiplierApplied"
      | "NavigatorVoteCast"
      | "NavigatorVoteSkipped"
      | "PreferredAppsUpdated"
      | "RoundCreated"
  ): EventFragment;

  encodeFunctionData(
    functionFragment: "CLOCK_MODE",
    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: "disableAutoVotingFor",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getAppIdsOfRound",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getAppVotes",
    values: [BigNumberish, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getAppVotesQF",
    values: [BigNumberish, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getRoundAppSharesCap",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getRoundBaseAllocationPercentage",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getTotalAutoVotingUsersAtRoundStart",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getTotalVotingPower",
    values: [AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getVotes",
    values: [AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "hasVoted",
    values: [BigNumberish, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "hasVotedOnce",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "isActive",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "isEligibleForVote",
    values: [BytesLike, 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: "quorum",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "quorumReached",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "roundDeadline",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "roundQuorum",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "roundSnapshot",
    values: [BigNumberish]
  ): 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: "validatePersonhoodForCurrentRound",
    values: [AddressLike]
  ): string;
  encodeFunctionData(functionFragment: "version", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "votingPeriod",
    values?: undefined
  ): string;

  decodeFunctionResult(functionFragment: "CLOCK_MODE", 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: "disableAutoVotingFor",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getAppIdsOfRound",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getAppVotes",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getAppVotesQF",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getRoundAppSharesCap",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getRoundBaseAllocationPercentage",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getTotalAutoVotingUsersAtRoundStart",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getTotalVotingPower",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "getVotes", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "hasVoted", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "hasVotedOnce",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "isActive", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "isEligibleForVote",
    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: "quorum", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "quorumReached",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "roundDeadline",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "roundQuorum",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "roundSnapshot",
    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: "validatePersonhoodForCurrentRound",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "version", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "votingPeriod",
    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 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 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 interface IXAllocationVotingGovernor extends BaseContract {
  connect(runner?: ContractRunner | null): IXAllocationVotingGovernor;
  waitForDeployment(): Promise<this>;

  interface: IXAllocationVotingGovernorInterface;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  isEligibleForVote: TypedContractMethod<
    [appId: BytesLike, 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"
  >;

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

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

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

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

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

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

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

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

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

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

  getFunction(
    nameOrSignature: "CLOCK_MODE"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "castVote"
  ): TypedContractMethod<
    [roundId: BigNumberish, appsIds: 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: "disableAutoVotingFor"
  ): TypedContractMethod<[user: AddressLike], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "getAppIdsOfRound"
  ): TypedContractMethod<[roundId: BigNumberish], [string[]], "view">;
  getFunction(
    nameOrSignature: "getAppVotes"
  ): TypedContractMethod<
    [roundId: BigNumberish, appId: BytesLike],
    [bigint],
    "view"
  >;
  getFunction(
    nameOrSignature: "getAppVotesQF"
  ): TypedContractMethod<
    [roundId: BigNumberish, app: BytesLike],
    [bigint],
    "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: "getTotalVotingPower"
  ): TypedContractMethod<
    [voter: AddressLike, roundStart: BigNumberish],
    [bigint],
    "view"
  >;
  getFunction(
    nameOrSignature: "getVotes"
  ): TypedContractMethod<
    [account: AddressLike, timepoint: BigNumberish],
    [bigint],
    "view"
  >;
  getFunction(
    nameOrSignature: "hasVoted"
  ): TypedContractMethod<
    [roundId: BigNumberish, account: AddressLike],
    [boolean],
    "view"
  >;
  getFunction(
    nameOrSignature: "hasVotedOnce"
  ): TypedContractMethod<[user: AddressLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "isActive"
  ): TypedContractMethod<[roundId: BigNumberish], [boolean], "view">;
  getFunction(
    nameOrSignature: "isEligibleForVote"
  ): TypedContractMethod<
    [appId: BytesLike, 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: "quorum"
  ): TypedContractMethod<[timepoint: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "quorumReached"
  ): TypedContractMethod<[roundId: BigNumberish], [boolean], "view">;
  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: "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: "validatePersonhoodForCurrentRound"
  ): TypedContractMethod<[account: AddressLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "version"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "votingPeriod"
  ): 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: "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: "RoundCreated"
  ): TypedContractEvent<
    RoundCreatedEvent.InputTuple,
    RoundCreatedEvent.OutputTuple,
    RoundCreatedEvent.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
    >;

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

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