/* 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 Allocation {
  export type StateStruct = {
    indexer: AddressLike;
    subgraphDeploymentId: BytesLike;
    tokens: BigNumberish;
    createdAt: BigNumberish;
    closedAt: BigNumberish;
    lastPOIPresentedAt: BigNumberish;
    accRewardsPerAllocatedToken: BigNumberish;
    accRewardsPending: BigNumberish;
    createdAtEpoch: BigNumberish;
  };

  export type StateStructOutput = [
    indexer: string,
    subgraphDeploymentId: string,
    tokens: bigint,
    createdAt: bigint,
    closedAt: bigint,
    lastPOIPresentedAt: bigint,
    accRewardsPerAllocatedToken: bigint,
    accRewardsPending: bigint,
    createdAtEpoch: bigint
  ] & {
    indexer: string;
    subgraphDeploymentId: string;
    tokens: bigint;
    createdAt: bigint;
    closedAt: bigint;
    lastPOIPresentedAt: bigint;
    accRewardsPerAllocatedToken: bigint;
    accRewardsPending: bigint;
    createdAtEpoch: bigint;
  };
}

export declare namespace LegacyAllocation {
  export type StateStruct = {
    indexer: AddressLike;
    subgraphDeploymentId: BytesLike;
  };

  export type StateStructOutput = [
    indexer: string,
    subgraphDeploymentId: string
  ] & { indexer: string; subgraphDeploymentId: string };
}

export interface SubgraphServiceInterface extends Interface {
  getFunction(
    nameOrSignature:
      | "acceptProvisionPendingParameters"
      | "allocationProvisionTracker"
      | "claims"
      | "claimsLists"
      | "closeStaleAllocation"
      | "collect"
      | "curationFeesCut"
      | "eip712Domain"
      | "encodeAllocationProof"
      | "feesProvisionTracker"
      | "getAllocation"
      | "getAllocationData"
      | "getCuration"
      | "getDelegationRatio"
      | "getDisputeManager"
      | "getGraphTallyCollector"
      | "getLegacyAllocation"
      | "getProvisionTokensRange"
      | "getSubgraphAllocatedTokens"
      | "getThawingPeriodRange"
      | "getVerifierCutRange"
      | "indexers"
      | "initialize"
      | "isOverAllocated"
      | "maxPOIStaleness"
      | "migrateLegacyAllocation"
      | "multicall"
      | "owner"
      | "pause"
      | "pauseGuardians"
      | "paused"
      | "paymentsDestination"
      | "register"
      | "releaseStake"
      | "renounceOwnership"
      | "resizeAllocation"
      | "setCurationCut"
      | "setDelegationRatio"
      | "setMaxPOIStaleness"
      | "setMinimumProvisionTokens"
      | "setPauseGuardian"
      | "setPaymentsDestination"
      | "setStakeToFeesRatio"
      | "slash"
      | "stakeToFeesRatio"
      | "startService"
      | "stopService"
      | "transferOwnership"
      | "unpause"
  ): FunctionFragment;

  getEvent(
    nameOrSignatureOrTopic:
      | "AllocationClosed"
      | "AllocationCreated"
      | "AllocationResized"
      | "CurationCutSet"
      | "DelegationRatioSet"
      | "EIP712DomainChanged"
      | "GraphDirectoryInitialized"
      | "IndexingRewardsCollected"
      | "Initialized"
      | "LegacyAllocationMigrated"
      | "MaxPOIStalenessSet"
      | "OwnershipTransferred"
      | "PauseGuardianSet"
      | "Paused"
      | "PaymentsDestinationSet"
      | "ProvisionPendingParametersAccepted"
      | "ProvisionTokensRangeSet"
      | "QueryFeesCollected"
      | "ServicePaymentCollected"
      | "ServiceProviderRegistered"
      | "ServiceProviderSlashed"
      | "ServiceStarted"
      | "ServiceStopped"
      | "StakeClaimLocked"
      | "StakeClaimReleased"
      | "StakeClaimsReleased"
      | "StakeToFeesRatioSet"
      | "SubgraphServiceDirectoryInitialized"
      | "ThawingPeriodRangeSet"
      | "Unpaused"
      | "VerifierCutRangeSet"
  ): EventFragment;

  encodeFunctionData(
    functionFragment: "acceptProvisionPendingParameters",
    values: [AddressLike, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "allocationProvisionTracker",
    values: [AddressLike]
  ): string;
  encodeFunctionData(functionFragment: "claims", values: [BytesLike]): string;
  encodeFunctionData(
    functionFragment: "claimsLists",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "closeStaleAllocation",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "collect",
    values: [AddressLike, BigNumberish, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "curationFeesCut",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "eip712Domain",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "encodeAllocationProof",
    values: [AddressLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "feesProvisionTracker",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getAllocation",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getAllocationData",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getCuration",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getDelegationRatio",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getDisputeManager",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getGraphTallyCollector",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getLegacyAllocation",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getProvisionTokensRange",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getSubgraphAllocatedTokens",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getThawingPeriodRange",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getVerifierCutRange",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "indexers",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "initialize",
    values: [AddressLike, BigNumberish, BigNumberish, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "isOverAllocated",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "maxPOIStaleness",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "migrateLegacyAllocation",
    values: [AddressLike, AddressLike, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "multicall",
    values: [BytesLike[]]
  ): string;
  encodeFunctionData(functionFragment: "owner", values?: undefined): string;
  encodeFunctionData(functionFragment: "pause", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "pauseGuardians",
    values: [AddressLike]
  ): string;
  encodeFunctionData(functionFragment: "paused", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "paymentsDestination",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "register",
    values: [AddressLike, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "releaseStake",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "renounceOwnership",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "resizeAllocation",
    values: [AddressLike, AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setCurationCut",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setDelegationRatio",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setMaxPOIStaleness",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setMinimumProvisionTokens",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setPauseGuardian",
    values: [AddressLike, boolean]
  ): string;
  encodeFunctionData(
    functionFragment: "setPaymentsDestination",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setStakeToFeesRatio",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "slash",
    values: [AddressLike, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "stakeToFeesRatio",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "startService",
    values: [AddressLike, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "stopService",
    values: [AddressLike, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "transferOwnership",
    values: [AddressLike]
  ): string;
  encodeFunctionData(functionFragment: "unpause", values?: undefined): string;

  decodeFunctionResult(
    functionFragment: "acceptProvisionPendingParameters",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "allocationProvisionTracker",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "claims", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "claimsLists",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "closeStaleAllocation",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "collect", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "curationFeesCut",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "eip712Domain",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "encodeAllocationProof",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "feesProvisionTracker",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getAllocation",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getAllocationData",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getCuration",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getDelegationRatio",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getDisputeManager",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getGraphTallyCollector",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getLegacyAllocation",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getProvisionTokensRange",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getSubgraphAllocatedTokens",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getThawingPeriodRange",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getVerifierCutRange",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "indexers", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "isOverAllocated",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "maxPOIStaleness",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "migrateLegacyAllocation",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "pauseGuardians",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "paymentsDestination",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "register", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "releaseStake",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "renounceOwnership",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "resizeAllocation",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setCurationCut",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setDelegationRatio",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setMaxPOIStaleness",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setMinimumProvisionTokens",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setPauseGuardian",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setPaymentsDestination",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setStakeToFeesRatio",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "slash", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "stakeToFeesRatio",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "startService",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "stopService",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "transferOwnership",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result;
}

export namespace AllocationClosedEvent {
  export type InputTuple = [
    indexer: AddressLike,
    allocationId: AddressLike,
    subgraphDeploymentId: BytesLike,
    tokens: BigNumberish,
    forceClosed: boolean
  ];
  export type OutputTuple = [
    indexer: string,
    allocationId: string,
    subgraphDeploymentId: string,
    tokens: bigint,
    forceClosed: boolean
  ];
  export interface OutputObject {
    indexer: string;
    allocationId: string;
    subgraphDeploymentId: string;
    tokens: bigint;
    forceClosed: 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 AllocationCreatedEvent {
  export type InputTuple = [
    indexer: AddressLike,
    allocationId: AddressLike,
    subgraphDeploymentId: BytesLike,
    tokens: BigNumberish,
    currentEpoch: BigNumberish
  ];
  export type OutputTuple = [
    indexer: string,
    allocationId: string,
    subgraphDeploymentId: string,
    tokens: bigint,
    currentEpoch: bigint
  ];
  export interface OutputObject {
    indexer: string;
    allocationId: string;
    subgraphDeploymentId: string;
    tokens: bigint;
    currentEpoch: 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 AllocationResizedEvent {
  export type InputTuple = [
    indexer: AddressLike,
    allocationId: AddressLike,
    subgraphDeploymentId: BytesLike,
    newTokens: BigNumberish,
    oldTokens: BigNumberish
  ];
  export type OutputTuple = [
    indexer: string,
    allocationId: string,
    subgraphDeploymentId: string,
    newTokens: bigint,
    oldTokens: bigint
  ];
  export interface OutputObject {
    indexer: string;
    allocationId: string;
    subgraphDeploymentId: string;
    newTokens: bigint;
    oldTokens: 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 CurationCutSetEvent {
  export type InputTuple = [curationCut: BigNumberish];
  export type OutputTuple = [curationCut: bigint];
  export interface OutputObject {
    curationCut: 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 DelegationRatioSetEvent {
  export type InputTuple = [ratio: BigNumberish];
  export type OutputTuple = [ratio: bigint];
  export interface OutputObject {
    ratio: 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 EIP712DomainChangedEvent {
  export type InputTuple = [];
  export type OutputTuple = [];
  export interface OutputObject {}
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace GraphDirectoryInitializedEvent {
  export type InputTuple = [
    graphToken: AddressLike,
    graphStaking: AddressLike,
    graphPayments: AddressLike,
    graphEscrow: AddressLike,
    graphController: AddressLike,
    graphEpochManager: AddressLike,
    graphRewardsManager: AddressLike,
    graphTokenGateway: AddressLike,
    graphProxyAdmin: AddressLike,
    graphCuration: AddressLike
  ];
  export type OutputTuple = [
    graphToken: string,
    graphStaking: string,
    graphPayments: string,
    graphEscrow: string,
    graphController: string,
    graphEpochManager: string,
    graphRewardsManager: string,
    graphTokenGateway: string,
    graphProxyAdmin: string,
    graphCuration: string
  ];
  export interface OutputObject {
    graphToken: string;
    graphStaking: string;
    graphPayments: string;
    graphEscrow: string;
    graphController: string;
    graphEpochManager: string;
    graphRewardsManager: string;
    graphTokenGateway: string;
    graphProxyAdmin: string;
    graphCuration: 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 IndexingRewardsCollectedEvent {
  export type InputTuple = [
    indexer: AddressLike,
    allocationId: AddressLike,
    subgraphDeploymentId: BytesLike,
    tokensRewards: BigNumberish,
    tokensIndexerRewards: BigNumberish,
    tokensDelegationRewards: BigNumberish,
    poi: BytesLike,
    poiMetadata: BytesLike,
    currentEpoch: BigNumberish
  ];
  export type OutputTuple = [
    indexer: string,
    allocationId: string,
    subgraphDeploymentId: string,
    tokensRewards: bigint,
    tokensIndexerRewards: bigint,
    tokensDelegationRewards: bigint,
    poi: string,
    poiMetadata: string,
    currentEpoch: bigint
  ];
  export interface OutputObject {
    indexer: string;
    allocationId: string;
    subgraphDeploymentId: string;
    tokensRewards: bigint;
    tokensIndexerRewards: bigint;
    tokensDelegationRewards: bigint;
    poi: string;
    poiMetadata: string;
    currentEpoch: 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 LegacyAllocationMigratedEvent {
  export type InputTuple = [
    indexer: AddressLike,
    allocationId: AddressLike,
    subgraphDeploymentId: BytesLike
  ];
  export type OutputTuple = [
    indexer: string,
    allocationId: string,
    subgraphDeploymentId: string
  ];
  export interface OutputObject {
    indexer: string;
    allocationId: string;
    subgraphDeploymentId: 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 MaxPOIStalenessSetEvent {
  export type InputTuple = [maxPOIStaleness: BigNumberish];
  export type OutputTuple = [maxPOIStaleness: bigint];
  export interface OutputObject {
    maxPOIStaleness: 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 OwnershipTransferredEvent {
  export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike];
  export type OutputTuple = [previousOwner: string, newOwner: string];
  export interface OutputObject {
    previousOwner: string;
    newOwner: 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 PauseGuardianSetEvent {
  export type InputTuple = [account: AddressLike, allowed: boolean];
  export type OutputTuple = [account: string, allowed: boolean];
  export interface OutputObject {
    account: string;
    allowed: 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 PausedEvent {
  export type InputTuple = [account: AddressLike];
  export type OutputTuple = [account: string];
  export interface OutputObject {
    account: 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 PaymentsDestinationSetEvent {
  export type InputTuple = [
    indexer: AddressLike,
    paymentsDestination: AddressLike
  ];
  export type OutputTuple = [indexer: string, paymentsDestination: string];
  export interface OutputObject {
    indexer: string;
    paymentsDestination: 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 ProvisionPendingParametersAcceptedEvent {
  export type InputTuple = [serviceProvider: AddressLike];
  export type OutputTuple = [serviceProvider: string];
  export interface OutputObject {
    serviceProvider: 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 ProvisionTokensRangeSetEvent {
  export type InputTuple = [min: BigNumberish, max: BigNumberish];
  export type OutputTuple = [min: bigint, max: bigint];
  export interface OutputObject {
    min: bigint;
    max: 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 QueryFeesCollectedEvent {
  export type InputTuple = [
    serviceProvider: AddressLike,
    payer: AddressLike,
    allocationId: AddressLike,
    subgraphDeploymentId: BytesLike,
    tokensCollected: BigNumberish,
    tokensCurators: BigNumberish
  ];
  export type OutputTuple = [
    serviceProvider: string,
    payer: string,
    allocationId: string,
    subgraphDeploymentId: string,
    tokensCollected: bigint,
    tokensCurators: bigint
  ];
  export interface OutputObject {
    serviceProvider: string;
    payer: string;
    allocationId: string;
    subgraphDeploymentId: string;
    tokensCollected: bigint;
    tokensCurators: 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 ServicePaymentCollectedEvent {
  export type InputTuple = [
    serviceProvider: AddressLike,
    feeType: BigNumberish,
    tokens: BigNumberish
  ];
  export type OutputTuple = [
    serviceProvider: string,
    feeType: bigint,
    tokens: bigint
  ];
  export interface OutputObject {
    serviceProvider: string;
    feeType: bigint;
    tokens: 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 ServiceProviderRegisteredEvent {
  export type InputTuple = [serviceProvider: AddressLike, data: BytesLike];
  export type OutputTuple = [serviceProvider: string, data: string];
  export interface OutputObject {
    serviceProvider: string;
    data: 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 ServiceProviderSlashedEvent {
  export type InputTuple = [serviceProvider: AddressLike, tokens: BigNumberish];
  export type OutputTuple = [serviceProvider: string, tokens: bigint];
  export interface OutputObject {
    serviceProvider: string;
    tokens: 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 ServiceStartedEvent {
  export type InputTuple = [serviceProvider: AddressLike, data: BytesLike];
  export type OutputTuple = [serviceProvider: string, data: string];
  export interface OutputObject {
    serviceProvider: string;
    data: 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 ServiceStoppedEvent {
  export type InputTuple = [serviceProvider: AddressLike, data: BytesLike];
  export type OutputTuple = [serviceProvider: string, data: string];
  export interface OutputObject {
    serviceProvider: string;
    data: 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 StakeClaimLockedEvent {
  export type InputTuple = [
    serviceProvider: AddressLike,
    claimId: BytesLike,
    tokens: BigNumberish,
    unlockTimestamp: BigNumberish
  ];
  export type OutputTuple = [
    serviceProvider: string,
    claimId: string,
    tokens: bigint,
    unlockTimestamp: bigint
  ];
  export interface OutputObject {
    serviceProvider: string;
    claimId: string;
    tokens: bigint;
    unlockTimestamp: 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 StakeClaimReleasedEvent {
  export type InputTuple = [
    serviceProvider: AddressLike,
    claimId: BytesLike,
    tokens: BigNumberish,
    releasableAt: BigNumberish
  ];
  export type OutputTuple = [
    serviceProvider: string,
    claimId: string,
    tokens: bigint,
    releasableAt: bigint
  ];
  export interface OutputObject {
    serviceProvider: string;
    claimId: string;
    tokens: bigint;
    releasableAt: 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 StakeClaimsReleasedEvent {
  export type InputTuple = [
    serviceProvider: AddressLike,
    claimsCount: BigNumberish,
    tokensReleased: BigNumberish
  ];
  export type OutputTuple = [
    serviceProvider: string,
    claimsCount: bigint,
    tokensReleased: bigint
  ];
  export interface OutputObject {
    serviceProvider: string;
    claimsCount: bigint;
    tokensReleased: 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 StakeToFeesRatioSetEvent {
  export type InputTuple = [ratio: BigNumberish];
  export type OutputTuple = [ratio: bigint];
  export interface OutputObject {
    ratio: 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 SubgraphServiceDirectoryInitializedEvent {
  export type InputTuple = [
    subgraphService: AddressLike,
    disputeManager: AddressLike,
    graphTallyCollector: AddressLike,
    curation: AddressLike
  ];
  export type OutputTuple = [
    subgraphService: string,
    disputeManager: string,
    graphTallyCollector: string,
    curation: string
  ];
  export interface OutputObject {
    subgraphService: string;
    disputeManager: string;
    graphTallyCollector: string;
    curation: 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 ThawingPeriodRangeSetEvent {
  export type InputTuple = [min: BigNumberish, max: BigNumberish];
  export type OutputTuple = [min: bigint, max: bigint];
  export interface OutputObject {
    min: bigint;
    max: 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 UnpausedEvent {
  export type InputTuple = [account: AddressLike];
  export type OutputTuple = [account: string];
  export interface OutputObject {
    account: 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 VerifierCutRangeSetEvent {
  export type InputTuple = [min: BigNumberish, max: BigNumberish];
  export type OutputTuple = [min: bigint, max: bigint];
  export interface OutputObject {
    min: bigint;
    max: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

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

  interface: SubgraphServiceInterface;

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

  acceptProvisionPendingParameters: TypedContractMethod<
    [indexer: AddressLike, arg1: BytesLike],
    [void],
    "nonpayable"
  >;

  allocationProvisionTracker: TypedContractMethod<
    [indexer: AddressLike],
    [bigint],
    "view"
  >;

  claims: TypedContractMethod<
    [claimId: BytesLike],
    [
      [bigint, bigint, bigint, string] & {
        tokens: bigint;
        createdAt: bigint;
        releasableAt: bigint;
        nextClaim: string;
      }
    ],
    "view"
  >;

  claimsLists: TypedContractMethod<
    [serviceProvider: AddressLike],
    [
      [string, string, bigint, bigint] & {
        head: string;
        tail: string;
        nonce: bigint;
        count: bigint;
      }
    ],
    "view"
  >;

  closeStaleAllocation: TypedContractMethod<
    [allocationId: AddressLike],
    [void],
    "nonpayable"
  >;

  collect: TypedContractMethod<
    [indexer: AddressLike, paymentType: BigNumberish, data: BytesLike],
    [bigint],
    "nonpayable"
  >;

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

  eip712Domain: TypedContractMethod<
    [],
    [
      [string, string, string, bigint, string, string, bigint[]] & {
        fields: string;
        name: string;
        version: string;
        chainId: bigint;
        verifyingContract: string;
        salt: string;
        extensions: bigint[];
      }
    ],
    "view"
  >;

  encodeAllocationProof: TypedContractMethod<
    [indexer: AddressLike, allocationId: AddressLike],
    [string],
    "view"
  >;

  feesProvisionTracker: TypedContractMethod<
    [serviceProvider: AddressLike],
    [bigint],
    "view"
  >;

  getAllocation: TypedContractMethod<
    [allocationId: AddressLike],
    [Allocation.StateStructOutput],
    "view"
  >;

  getAllocationData: TypedContractMethod<
    [allocationId: AddressLike],
    [[boolean, string, string, bigint, bigint, bigint]],
    "view"
  >;

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

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

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

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

  getLegacyAllocation: TypedContractMethod<
    [allocationId: AddressLike],
    [LegacyAllocation.StateStructOutput],
    "view"
  >;

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

  getSubgraphAllocatedTokens: TypedContractMethod<
    [subgraphDeploymentId: BytesLike],
    [bigint],
    "view"
  >;

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

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

  indexers: TypedContractMethod<
    [indexer: AddressLike],
    [
      [bigint, string, string] & {
        registeredAt: bigint;
        url: string;
        geoHash: string;
      }
    ],
    "view"
  >;

  initialize: TypedContractMethod<
    [
      owner: AddressLike,
      minimumProvisionTokens: BigNumberish,
      maximumDelegationRatio: BigNumberish,
      stakeToFeesRatio_: BigNumberish
    ],
    [void],
    "nonpayable"
  >;

  isOverAllocated: TypedContractMethod<
    [indexer: AddressLike],
    [boolean],
    "view"
  >;

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

  migrateLegacyAllocation: TypedContractMethod<
    [
      indexer: AddressLike,
      allocationId: AddressLike,
      subgraphDeploymentID: BytesLike
    ],
    [void],
    "nonpayable"
  >;

  multicall: TypedContractMethod<[data: BytesLike[]], [string[]], "nonpayable">;

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

  pause: TypedContractMethod<[], [void], "nonpayable">;

  pauseGuardians: TypedContractMethod<
    [pauseGuardian: AddressLike],
    [boolean],
    "view"
  >;

  paused: TypedContractMethod<[], [boolean], "view">;

  paymentsDestination: TypedContractMethod<
    [indexer: AddressLike],
    [string],
    "view"
  >;

  register: TypedContractMethod<
    [indexer: AddressLike, data: BytesLike],
    [void],
    "nonpayable"
  >;

  releaseStake: TypedContractMethod<
    [numClaimsToRelease: BigNumberish],
    [void],
    "nonpayable"
  >;

  renounceOwnership: TypedContractMethod<[], [void], "nonpayable">;

  resizeAllocation: TypedContractMethod<
    [indexer: AddressLike, allocationId: AddressLike, tokens: BigNumberish],
    [void],
    "nonpayable"
  >;

  setCurationCut: TypedContractMethod<
    [curationCut: BigNumberish],
    [void],
    "nonpayable"
  >;

  setDelegationRatio: TypedContractMethod<
    [delegationRatio: BigNumberish],
    [void],
    "nonpayable"
  >;

  setMaxPOIStaleness: TypedContractMethod<
    [maxPOIStaleness_: BigNumberish],
    [void],
    "nonpayable"
  >;

  setMinimumProvisionTokens: TypedContractMethod<
    [minimumProvisionTokens: BigNumberish],
    [void],
    "nonpayable"
  >;

  setPauseGuardian: TypedContractMethod<
    [pauseGuardian: AddressLike, allowed: boolean],
    [void],
    "nonpayable"
  >;

  setPaymentsDestination: TypedContractMethod<
    [paymentsDestination_: AddressLike],
    [void],
    "nonpayable"
  >;

  setStakeToFeesRatio: TypedContractMethod<
    [stakeToFeesRatio_: BigNumberish],
    [void],
    "nonpayable"
  >;

  slash: TypedContractMethod<
    [indexer: AddressLike, data: BytesLike],
    [void],
    "nonpayable"
  >;

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

  startService: TypedContractMethod<
    [indexer: AddressLike, data: BytesLike],
    [void],
    "nonpayable"
  >;

  stopService: TypedContractMethod<
    [indexer: AddressLike, data: BytesLike],
    [void],
    "nonpayable"
  >;

  transferOwnership: TypedContractMethod<
    [newOwner: AddressLike],
    [void],
    "nonpayable"
  >;

  unpause: TypedContractMethod<[], [void], "nonpayable">;

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

  getFunction(
    nameOrSignature: "acceptProvisionPendingParameters"
  ): TypedContractMethod<
    [indexer: AddressLike, arg1: BytesLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "allocationProvisionTracker"
  ): TypedContractMethod<[indexer: AddressLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "claims"
  ): TypedContractMethod<
    [claimId: BytesLike],
    [
      [bigint, bigint, bigint, string] & {
        tokens: bigint;
        createdAt: bigint;
        releasableAt: bigint;
        nextClaim: string;
      }
    ],
    "view"
  >;
  getFunction(
    nameOrSignature: "claimsLists"
  ): TypedContractMethod<
    [serviceProvider: AddressLike],
    [
      [string, string, bigint, bigint] & {
        head: string;
        tail: string;
        nonce: bigint;
        count: bigint;
      }
    ],
    "view"
  >;
  getFunction(
    nameOrSignature: "closeStaleAllocation"
  ): TypedContractMethod<[allocationId: AddressLike], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "collect"
  ): TypedContractMethod<
    [indexer: AddressLike, paymentType: BigNumberish, data: BytesLike],
    [bigint],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "curationFeesCut"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "eip712Domain"
  ): TypedContractMethod<
    [],
    [
      [string, string, string, bigint, string, string, bigint[]] & {
        fields: string;
        name: string;
        version: string;
        chainId: bigint;
        verifyingContract: string;
        salt: string;
        extensions: bigint[];
      }
    ],
    "view"
  >;
  getFunction(
    nameOrSignature: "encodeAllocationProof"
  ): TypedContractMethod<
    [indexer: AddressLike, allocationId: AddressLike],
    [string],
    "view"
  >;
  getFunction(
    nameOrSignature: "feesProvisionTracker"
  ): TypedContractMethod<[serviceProvider: AddressLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "getAllocation"
  ): TypedContractMethod<
    [allocationId: AddressLike],
    [Allocation.StateStructOutput],
    "view"
  >;
  getFunction(
    nameOrSignature: "getAllocationData"
  ): TypedContractMethod<
    [allocationId: AddressLike],
    [[boolean, string, string, bigint, bigint, bigint]],
    "view"
  >;
  getFunction(
    nameOrSignature: "getCuration"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "getDelegationRatio"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getDisputeManager"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "getGraphTallyCollector"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "getLegacyAllocation"
  ): TypedContractMethod<
    [allocationId: AddressLike],
    [LegacyAllocation.StateStructOutput],
    "view"
  >;
  getFunction(
    nameOrSignature: "getProvisionTokensRange"
  ): TypedContractMethod<[], [[bigint, bigint]], "view">;
  getFunction(
    nameOrSignature: "getSubgraphAllocatedTokens"
  ): TypedContractMethod<[subgraphDeploymentId: BytesLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "getThawingPeriodRange"
  ): TypedContractMethod<[], [[bigint, bigint]], "view">;
  getFunction(
    nameOrSignature: "getVerifierCutRange"
  ): TypedContractMethod<[], [[bigint, bigint]], "view">;
  getFunction(
    nameOrSignature: "indexers"
  ): TypedContractMethod<
    [indexer: AddressLike],
    [
      [bigint, string, string] & {
        registeredAt: bigint;
        url: string;
        geoHash: string;
      }
    ],
    "view"
  >;
  getFunction(
    nameOrSignature: "initialize"
  ): TypedContractMethod<
    [
      owner: AddressLike,
      minimumProvisionTokens: BigNumberish,
      maximumDelegationRatio: BigNumberish,
      stakeToFeesRatio_: BigNumberish
    ],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "isOverAllocated"
  ): TypedContractMethod<[indexer: AddressLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "maxPOIStaleness"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "migrateLegacyAllocation"
  ): TypedContractMethod<
    [
      indexer: AddressLike,
      allocationId: AddressLike,
      subgraphDeploymentID: BytesLike
    ],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "multicall"
  ): TypedContractMethod<[data: BytesLike[]], [string[]], "nonpayable">;
  getFunction(
    nameOrSignature: "owner"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "pause"
  ): TypedContractMethod<[], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "pauseGuardians"
  ): TypedContractMethod<[pauseGuardian: AddressLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "paused"
  ): TypedContractMethod<[], [boolean], "view">;
  getFunction(
    nameOrSignature: "paymentsDestination"
  ): TypedContractMethod<[indexer: AddressLike], [string], "view">;
  getFunction(
    nameOrSignature: "register"
  ): TypedContractMethod<
    [indexer: AddressLike, data: BytesLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "releaseStake"
  ): TypedContractMethod<
    [numClaimsToRelease: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "renounceOwnership"
  ): TypedContractMethod<[], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "resizeAllocation"
  ): TypedContractMethod<
    [indexer: AddressLike, allocationId: AddressLike, tokens: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setCurationCut"
  ): TypedContractMethod<[curationCut: BigNumberish], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "setDelegationRatio"
  ): TypedContractMethod<[delegationRatio: BigNumberish], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "setMaxPOIStaleness"
  ): TypedContractMethod<
    [maxPOIStaleness_: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setMinimumProvisionTokens"
  ): TypedContractMethod<
    [minimumProvisionTokens: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setPauseGuardian"
  ): TypedContractMethod<
    [pauseGuardian: AddressLike, allowed: boolean],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setPaymentsDestination"
  ): TypedContractMethod<
    [paymentsDestination_: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setStakeToFeesRatio"
  ): TypedContractMethod<
    [stakeToFeesRatio_: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "slash"
  ): TypedContractMethod<
    [indexer: AddressLike, data: BytesLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "stakeToFeesRatio"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "startService"
  ): TypedContractMethod<
    [indexer: AddressLike, data: BytesLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "stopService"
  ): TypedContractMethod<
    [indexer: AddressLike, data: BytesLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "transferOwnership"
  ): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "unpause"
  ): TypedContractMethod<[], [void], "nonpayable">;

  getEvent(
    key: "AllocationClosed"
  ): TypedContractEvent<
    AllocationClosedEvent.InputTuple,
    AllocationClosedEvent.OutputTuple,
    AllocationClosedEvent.OutputObject
  >;
  getEvent(
    key: "AllocationCreated"
  ): TypedContractEvent<
    AllocationCreatedEvent.InputTuple,
    AllocationCreatedEvent.OutputTuple,
    AllocationCreatedEvent.OutputObject
  >;
  getEvent(
    key: "AllocationResized"
  ): TypedContractEvent<
    AllocationResizedEvent.InputTuple,
    AllocationResizedEvent.OutputTuple,
    AllocationResizedEvent.OutputObject
  >;
  getEvent(
    key: "CurationCutSet"
  ): TypedContractEvent<
    CurationCutSetEvent.InputTuple,
    CurationCutSetEvent.OutputTuple,
    CurationCutSetEvent.OutputObject
  >;
  getEvent(
    key: "DelegationRatioSet"
  ): TypedContractEvent<
    DelegationRatioSetEvent.InputTuple,
    DelegationRatioSetEvent.OutputTuple,
    DelegationRatioSetEvent.OutputObject
  >;
  getEvent(
    key: "EIP712DomainChanged"
  ): TypedContractEvent<
    EIP712DomainChangedEvent.InputTuple,
    EIP712DomainChangedEvent.OutputTuple,
    EIP712DomainChangedEvent.OutputObject
  >;
  getEvent(
    key: "GraphDirectoryInitialized"
  ): TypedContractEvent<
    GraphDirectoryInitializedEvent.InputTuple,
    GraphDirectoryInitializedEvent.OutputTuple,
    GraphDirectoryInitializedEvent.OutputObject
  >;
  getEvent(
    key: "IndexingRewardsCollected"
  ): TypedContractEvent<
    IndexingRewardsCollectedEvent.InputTuple,
    IndexingRewardsCollectedEvent.OutputTuple,
    IndexingRewardsCollectedEvent.OutputObject
  >;
  getEvent(
    key: "Initialized"
  ): TypedContractEvent<
    InitializedEvent.InputTuple,
    InitializedEvent.OutputTuple,
    InitializedEvent.OutputObject
  >;
  getEvent(
    key: "LegacyAllocationMigrated"
  ): TypedContractEvent<
    LegacyAllocationMigratedEvent.InputTuple,
    LegacyAllocationMigratedEvent.OutputTuple,
    LegacyAllocationMigratedEvent.OutputObject
  >;
  getEvent(
    key: "MaxPOIStalenessSet"
  ): TypedContractEvent<
    MaxPOIStalenessSetEvent.InputTuple,
    MaxPOIStalenessSetEvent.OutputTuple,
    MaxPOIStalenessSetEvent.OutputObject
  >;
  getEvent(
    key: "OwnershipTransferred"
  ): TypedContractEvent<
    OwnershipTransferredEvent.InputTuple,
    OwnershipTransferredEvent.OutputTuple,
    OwnershipTransferredEvent.OutputObject
  >;
  getEvent(
    key: "PauseGuardianSet"
  ): TypedContractEvent<
    PauseGuardianSetEvent.InputTuple,
    PauseGuardianSetEvent.OutputTuple,
    PauseGuardianSetEvent.OutputObject
  >;
  getEvent(
    key: "Paused"
  ): TypedContractEvent<
    PausedEvent.InputTuple,
    PausedEvent.OutputTuple,
    PausedEvent.OutputObject
  >;
  getEvent(
    key: "PaymentsDestinationSet"
  ): TypedContractEvent<
    PaymentsDestinationSetEvent.InputTuple,
    PaymentsDestinationSetEvent.OutputTuple,
    PaymentsDestinationSetEvent.OutputObject
  >;
  getEvent(
    key: "ProvisionPendingParametersAccepted"
  ): TypedContractEvent<
    ProvisionPendingParametersAcceptedEvent.InputTuple,
    ProvisionPendingParametersAcceptedEvent.OutputTuple,
    ProvisionPendingParametersAcceptedEvent.OutputObject
  >;
  getEvent(
    key: "ProvisionTokensRangeSet"
  ): TypedContractEvent<
    ProvisionTokensRangeSetEvent.InputTuple,
    ProvisionTokensRangeSetEvent.OutputTuple,
    ProvisionTokensRangeSetEvent.OutputObject
  >;
  getEvent(
    key: "QueryFeesCollected"
  ): TypedContractEvent<
    QueryFeesCollectedEvent.InputTuple,
    QueryFeesCollectedEvent.OutputTuple,
    QueryFeesCollectedEvent.OutputObject
  >;
  getEvent(
    key: "ServicePaymentCollected"
  ): TypedContractEvent<
    ServicePaymentCollectedEvent.InputTuple,
    ServicePaymentCollectedEvent.OutputTuple,
    ServicePaymentCollectedEvent.OutputObject
  >;
  getEvent(
    key: "ServiceProviderRegistered"
  ): TypedContractEvent<
    ServiceProviderRegisteredEvent.InputTuple,
    ServiceProviderRegisteredEvent.OutputTuple,
    ServiceProviderRegisteredEvent.OutputObject
  >;
  getEvent(
    key: "ServiceProviderSlashed"
  ): TypedContractEvent<
    ServiceProviderSlashedEvent.InputTuple,
    ServiceProviderSlashedEvent.OutputTuple,
    ServiceProviderSlashedEvent.OutputObject
  >;
  getEvent(
    key: "ServiceStarted"
  ): TypedContractEvent<
    ServiceStartedEvent.InputTuple,
    ServiceStartedEvent.OutputTuple,
    ServiceStartedEvent.OutputObject
  >;
  getEvent(
    key: "ServiceStopped"
  ): TypedContractEvent<
    ServiceStoppedEvent.InputTuple,
    ServiceStoppedEvent.OutputTuple,
    ServiceStoppedEvent.OutputObject
  >;
  getEvent(
    key: "StakeClaimLocked"
  ): TypedContractEvent<
    StakeClaimLockedEvent.InputTuple,
    StakeClaimLockedEvent.OutputTuple,
    StakeClaimLockedEvent.OutputObject
  >;
  getEvent(
    key: "StakeClaimReleased"
  ): TypedContractEvent<
    StakeClaimReleasedEvent.InputTuple,
    StakeClaimReleasedEvent.OutputTuple,
    StakeClaimReleasedEvent.OutputObject
  >;
  getEvent(
    key: "StakeClaimsReleased"
  ): TypedContractEvent<
    StakeClaimsReleasedEvent.InputTuple,
    StakeClaimsReleasedEvent.OutputTuple,
    StakeClaimsReleasedEvent.OutputObject
  >;
  getEvent(
    key: "StakeToFeesRatioSet"
  ): TypedContractEvent<
    StakeToFeesRatioSetEvent.InputTuple,
    StakeToFeesRatioSetEvent.OutputTuple,
    StakeToFeesRatioSetEvent.OutputObject
  >;
  getEvent(
    key: "SubgraphServiceDirectoryInitialized"
  ): TypedContractEvent<
    SubgraphServiceDirectoryInitializedEvent.InputTuple,
    SubgraphServiceDirectoryInitializedEvent.OutputTuple,
    SubgraphServiceDirectoryInitializedEvent.OutputObject
  >;
  getEvent(
    key: "ThawingPeriodRangeSet"
  ): TypedContractEvent<
    ThawingPeriodRangeSetEvent.InputTuple,
    ThawingPeriodRangeSetEvent.OutputTuple,
    ThawingPeriodRangeSetEvent.OutputObject
  >;
  getEvent(
    key: "Unpaused"
  ): TypedContractEvent<
    UnpausedEvent.InputTuple,
    UnpausedEvent.OutputTuple,
    UnpausedEvent.OutputObject
  >;
  getEvent(
    key: "VerifierCutRangeSet"
  ): TypedContractEvent<
    VerifierCutRangeSetEvent.InputTuple,
    VerifierCutRangeSetEvent.OutputTuple,
    VerifierCutRangeSetEvent.OutputObject
  >;

  filters: {
    "AllocationClosed(address,address,bytes32,uint256,bool)": TypedContractEvent<
      AllocationClosedEvent.InputTuple,
      AllocationClosedEvent.OutputTuple,
      AllocationClosedEvent.OutputObject
    >;
    AllocationClosed: TypedContractEvent<
      AllocationClosedEvent.InputTuple,
      AllocationClosedEvent.OutputTuple,
      AllocationClosedEvent.OutputObject
    >;

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

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

    "CurationCutSet(uint256)": TypedContractEvent<
      CurationCutSetEvent.InputTuple,
      CurationCutSetEvent.OutputTuple,
      CurationCutSetEvent.OutputObject
    >;
    CurationCutSet: TypedContractEvent<
      CurationCutSetEvent.InputTuple,
      CurationCutSetEvent.OutputTuple,
      CurationCutSetEvent.OutputObject
    >;

    "DelegationRatioSet(uint32)": TypedContractEvent<
      DelegationRatioSetEvent.InputTuple,
      DelegationRatioSetEvent.OutputTuple,
      DelegationRatioSetEvent.OutputObject
    >;
    DelegationRatioSet: TypedContractEvent<
      DelegationRatioSetEvent.InputTuple,
      DelegationRatioSetEvent.OutputTuple,
      DelegationRatioSetEvent.OutputObject
    >;

    "EIP712DomainChanged()": TypedContractEvent<
      EIP712DomainChangedEvent.InputTuple,
      EIP712DomainChangedEvent.OutputTuple,
      EIP712DomainChangedEvent.OutputObject
    >;
    EIP712DomainChanged: TypedContractEvent<
      EIP712DomainChangedEvent.InputTuple,
      EIP712DomainChangedEvent.OutputTuple,
      EIP712DomainChangedEvent.OutputObject
    >;

    "GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)": TypedContractEvent<
      GraphDirectoryInitializedEvent.InputTuple,
      GraphDirectoryInitializedEvent.OutputTuple,
      GraphDirectoryInitializedEvent.OutputObject
    >;
    GraphDirectoryInitialized: TypedContractEvent<
      GraphDirectoryInitializedEvent.InputTuple,
      GraphDirectoryInitializedEvent.OutputTuple,
      GraphDirectoryInitializedEvent.OutputObject
    >;

    "IndexingRewardsCollected(address,address,bytes32,uint256,uint256,uint256,bytes32,bytes,uint256)": TypedContractEvent<
      IndexingRewardsCollectedEvent.InputTuple,
      IndexingRewardsCollectedEvent.OutputTuple,
      IndexingRewardsCollectedEvent.OutputObject
    >;
    IndexingRewardsCollected: TypedContractEvent<
      IndexingRewardsCollectedEvent.InputTuple,
      IndexingRewardsCollectedEvent.OutputTuple,
      IndexingRewardsCollectedEvent.OutputObject
    >;

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

    "LegacyAllocationMigrated(address,address,bytes32)": TypedContractEvent<
      LegacyAllocationMigratedEvent.InputTuple,
      LegacyAllocationMigratedEvent.OutputTuple,
      LegacyAllocationMigratedEvent.OutputObject
    >;
    LegacyAllocationMigrated: TypedContractEvent<
      LegacyAllocationMigratedEvent.InputTuple,
      LegacyAllocationMigratedEvent.OutputTuple,
      LegacyAllocationMigratedEvent.OutputObject
    >;

    "MaxPOIStalenessSet(uint256)": TypedContractEvent<
      MaxPOIStalenessSetEvent.InputTuple,
      MaxPOIStalenessSetEvent.OutputTuple,
      MaxPOIStalenessSetEvent.OutputObject
    >;
    MaxPOIStalenessSet: TypedContractEvent<
      MaxPOIStalenessSetEvent.InputTuple,
      MaxPOIStalenessSetEvent.OutputTuple,
      MaxPOIStalenessSetEvent.OutputObject
    >;

    "OwnershipTransferred(address,address)": TypedContractEvent<
      OwnershipTransferredEvent.InputTuple,
      OwnershipTransferredEvent.OutputTuple,
      OwnershipTransferredEvent.OutputObject
    >;
    OwnershipTransferred: TypedContractEvent<
      OwnershipTransferredEvent.InputTuple,
      OwnershipTransferredEvent.OutputTuple,
      OwnershipTransferredEvent.OutputObject
    >;

    "PauseGuardianSet(address,bool)": TypedContractEvent<
      PauseGuardianSetEvent.InputTuple,
      PauseGuardianSetEvent.OutputTuple,
      PauseGuardianSetEvent.OutputObject
    >;
    PauseGuardianSet: TypedContractEvent<
      PauseGuardianSetEvent.InputTuple,
      PauseGuardianSetEvent.OutputTuple,
      PauseGuardianSetEvent.OutputObject
    >;

    "Paused(address)": TypedContractEvent<
      PausedEvent.InputTuple,
      PausedEvent.OutputTuple,
      PausedEvent.OutputObject
    >;
    Paused: TypedContractEvent<
      PausedEvent.InputTuple,
      PausedEvent.OutputTuple,
      PausedEvent.OutputObject
    >;

    "PaymentsDestinationSet(address,address)": TypedContractEvent<
      PaymentsDestinationSetEvent.InputTuple,
      PaymentsDestinationSetEvent.OutputTuple,
      PaymentsDestinationSetEvent.OutputObject
    >;
    PaymentsDestinationSet: TypedContractEvent<
      PaymentsDestinationSetEvent.InputTuple,
      PaymentsDestinationSetEvent.OutputTuple,
      PaymentsDestinationSetEvent.OutputObject
    >;

    "ProvisionPendingParametersAccepted(address)": TypedContractEvent<
      ProvisionPendingParametersAcceptedEvent.InputTuple,
      ProvisionPendingParametersAcceptedEvent.OutputTuple,
      ProvisionPendingParametersAcceptedEvent.OutputObject
    >;
    ProvisionPendingParametersAccepted: TypedContractEvent<
      ProvisionPendingParametersAcceptedEvent.InputTuple,
      ProvisionPendingParametersAcceptedEvent.OutputTuple,
      ProvisionPendingParametersAcceptedEvent.OutputObject
    >;

    "ProvisionTokensRangeSet(uint256,uint256)": TypedContractEvent<
      ProvisionTokensRangeSetEvent.InputTuple,
      ProvisionTokensRangeSetEvent.OutputTuple,
      ProvisionTokensRangeSetEvent.OutputObject
    >;
    ProvisionTokensRangeSet: TypedContractEvent<
      ProvisionTokensRangeSetEvent.InputTuple,
      ProvisionTokensRangeSetEvent.OutputTuple,
      ProvisionTokensRangeSetEvent.OutputObject
    >;

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

    "ServicePaymentCollected(address,uint8,uint256)": TypedContractEvent<
      ServicePaymentCollectedEvent.InputTuple,
      ServicePaymentCollectedEvent.OutputTuple,
      ServicePaymentCollectedEvent.OutputObject
    >;
    ServicePaymentCollected: TypedContractEvent<
      ServicePaymentCollectedEvent.InputTuple,
      ServicePaymentCollectedEvent.OutputTuple,
      ServicePaymentCollectedEvent.OutputObject
    >;

    "ServiceProviderRegistered(address,bytes)": TypedContractEvent<
      ServiceProviderRegisteredEvent.InputTuple,
      ServiceProviderRegisteredEvent.OutputTuple,
      ServiceProviderRegisteredEvent.OutputObject
    >;
    ServiceProviderRegistered: TypedContractEvent<
      ServiceProviderRegisteredEvent.InputTuple,
      ServiceProviderRegisteredEvent.OutputTuple,
      ServiceProviderRegisteredEvent.OutputObject
    >;

    "ServiceProviderSlashed(address,uint256)": TypedContractEvent<
      ServiceProviderSlashedEvent.InputTuple,
      ServiceProviderSlashedEvent.OutputTuple,
      ServiceProviderSlashedEvent.OutputObject
    >;
    ServiceProviderSlashed: TypedContractEvent<
      ServiceProviderSlashedEvent.InputTuple,
      ServiceProviderSlashedEvent.OutputTuple,
      ServiceProviderSlashedEvent.OutputObject
    >;

    "ServiceStarted(address,bytes)": TypedContractEvent<
      ServiceStartedEvent.InputTuple,
      ServiceStartedEvent.OutputTuple,
      ServiceStartedEvent.OutputObject
    >;
    ServiceStarted: TypedContractEvent<
      ServiceStartedEvent.InputTuple,
      ServiceStartedEvent.OutputTuple,
      ServiceStartedEvent.OutputObject
    >;

    "ServiceStopped(address,bytes)": TypedContractEvent<
      ServiceStoppedEvent.InputTuple,
      ServiceStoppedEvent.OutputTuple,
      ServiceStoppedEvent.OutputObject
    >;
    ServiceStopped: TypedContractEvent<
      ServiceStoppedEvent.InputTuple,
      ServiceStoppedEvent.OutputTuple,
      ServiceStoppedEvent.OutputObject
    >;

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

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

    "StakeClaimsReleased(address,uint256,uint256)": TypedContractEvent<
      StakeClaimsReleasedEvent.InputTuple,
      StakeClaimsReleasedEvent.OutputTuple,
      StakeClaimsReleasedEvent.OutputObject
    >;
    StakeClaimsReleased: TypedContractEvent<
      StakeClaimsReleasedEvent.InputTuple,
      StakeClaimsReleasedEvent.OutputTuple,
      StakeClaimsReleasedEvent.OutputObject
    >;

    "StakeToFeesRatioSet(uint256)": TypedContractEvent<
      StakeToFeesRatioSetEvent.InputTuple,
      StakeToFeesRatioSetEvent.OutputTuple,
      StakeToFeesRatioSetEvent.OutputObject
    >;
    StakeToFeesRatioSet: TypedContractEvent<
      StakeToFeesRatioSetEvent.InputTuple,
      StakeToFeesRatioSetEvent.OutputTuple,
      StakeToFeesRatioSetEvent.OutputObject
    >;

    "SubgraphServiceDirectoryInitialized(address,address,address,address)": TypedContractEvent<
      SubgraphServiceDirectoryInitializedEvent.InputTuple,
      SubgraphServiceDirectoryInitializedEvent.OutputTuple,
      SubgraphServiceDirectoryInitializedEvent.OutputObject
    >;
    SubgraphServiceDirectoryInitialized: TypedContractEvent<
      SubgraphServiceDirectoryInitializedEvent.InputTuple,
      SubgraphServiceDirectoryInitializedEvent.OutputTuple,
      SubgraphServiceDirectoryInitializedEvent.OutputObject
    >;

    "ThawingPeriodRangeSet(uint64,uint64)": TypedContractEvent<
      ThawingPeriodRangeSetEvent.InputTuple,
      ThawingPeriodRangeSetEvent.OutputTuple,
      ThawingPeriodRangeSetEvent.OutputObject
    >;
    ThawingPeriodRangeSet: TypedContractEvent<
      ThawingPeriodRangeSetEvent.InputTuple,
      ThawingPeriodRangeSetEvent.OutputTuple,
      ThawingPeriodRangeSetEvent.OutputObject
    >;

    "Unpaused(address)": TypedContractEvent<
      UnpausedEvent.InputTuple,
      UnpausedEvent.OutputTuple,
      UnpausedEvent.OutputObject
    >;
    Unpaused: TypedContractEvent<
      UnpausedEvent.InputTuple,
      UnpausedEvent.OutputTuple,
      UnpausedEvent.OutputObject
    >;

    "VerifierCutRangeSet(uint32,uint32)": TypedContractEvent<
      VerifierCutRangeSetEvent.InputTuple,
      VerifierCutRangeSetEvent.OutputTuple,
      VerifierCutRangeSetEvent.OutputObject
    >;
    VerifierCutRangeSet: TypedContractEvent<
      VerifierCutRangeSetEvent.InputTuple,
      VerifierCutRangeSetEvent.OutputTuple,
      VerifierCutRangeSetEvent.OutputObject
    >;
  };
}
