/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */

import { Contract, Interface, type ContractRunner } from "ethers";
import type {
  ISubgraphService,
  ISubgraphServiceInterface,
} from "../../../contracts/interfaces/ISubgraphService";

const _abi = [
  {
    inputs: [
      {
        internalType: "bytes32",
        name: "claimId",
        type: "bytes32",
      },
    ],
    name: "DataServiceFeesClaimNotFound",
    type: "error",
  },
  {
    inputs: [],
    name: "DataServiceFeesZeroTokens",
    type: "error",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "allocationId",
        type: "address",
      },
    ],
    name: "SubgraphServiceAllocationIsAltruistic",
    type: "error",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "indexer",
        type: "address",
      },
      {
        internalType: "address",
        name: "allocationId",
        type: "address",
      },
    ],
    name: "SubgraphServiceAllocationNotAuthorized",
    type: "error",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "allocationId",
        type: "address",
      },
    ],
    name: "SubgraphServiceCannotForceCloseAllocation",
    type: "error",
  },
  {
    inputs: [],
    name: "SubgraphServiceEmptyGeohash",
    type: "error",
  },
  {
    inputs: [],
    name: "SubgraphServiceEmptyUrl",
    type: "error",
  },
  {
    inputs: [
      {
        internalType: "uint256",
        name: "balanceBefore",
        type: "uint256",
      },
      {
        internalType: "uint256",
        name: "balanceAfter",
        type: "uint256",
      },
    ],
    name: "SubgraphServiceInconsistentCollection",
    type: "error",
  },
  {
    inputs: [],
    name: "SubgraphServiceIndexerAlreadyRegistered",
    type: "error",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "providedIndexer",
        type: "address",
      },
      {
        internalType: "address",
        name: "expectedIndexer",
        type: "address",
      },
    ],
    name: "SubgraphServiceIndexerMismatch",
    type: "error",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "indexer",
        type: "address",
      },
    ],
    name: "SubgraphServiceIndexerNotRegistered",
    type: "error",
  },
  {
    inputs: [
      {
        internalType: "bytes32",
        name: "collectionId",
        type: "bytes32",
      },
    ],
    name: "SubgraphServiceInvalidCollectionId",
    type: "error",
  },
  {
    inputs: [
      {
        internalType: "uint256",
        name: "curationCut",
        type: "uint256",
      },
    ],
    name: "SubgraphServiceInvalidCurationCut",
    type: "error",
  },
  {
    inputs: [
      {
        internalType: "enum IGraphPayments.PaymentTypes",
        name: "paymentType",
        type: "uint8",
      },
    ],
    name: "SubgraphServiceInvalidPaymentType",
    type: "error",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "ravIndexer",
        type: "address",
      },
      {
        internalType: "address",
        name: "allocationIndexer",
        type: "address",
      },
    ],
    name: "SubgraphServiceInvalidRAV",
    type: "error",
  },
  {
    inputs: [],
    name: "SubgraphServiceInvalidZeroStakeToFeesRatio",
    type: "error",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: false,
        internalType: "uint256",
        name: "curationCut",
        type: "uint256",
      },
    ],
    name: "CurationCutSet",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "indexer",
        type: "address",
      },
      {
        indexed: true,
        internalType: "address",
        name: "paymentsDestination",
        type: "address",
      },
    ],
    name: "PaymentsDestinationSet",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
    ],
    name: "ProvisionPendingParametersAccepted",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
      {
        indexed: true,
        internalType: "address",
        name: "payer",
        type: "address",
      },
      {
        indexed: true,
        internalType: "address",
        name: "allocationId",
        type: "address",
      },
      {
        indexed: false,
        internalType: "bytes32",
        name: "subgraphDeploymentId",
        type: "bytes32",
      },
      {
        indexed: false,
        internalType: "uint256",
        name: "tokensCollected",
        type: "uint256",
      },
      {
        indexed: false,
        internalType: "uint256",
        name: "tokensCurators",
        type: "uint256",
      },
    ],
    name: "QueryFeesCollected",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
      {
        indexed: true,
        internalType: "enum IGraphPayments.PaymentTypes",
        name: "feeType",
        type: "uint8",
      },
      {
        indexed: false,
        internalType: "uint256",
        name: "tokens",
        type: "uint256",
      },
    ],
    name: "ServicePaymentCollected",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
      {
        indexed: false,
        internalType: "bytes",
        name: "data",
        type: "bytes",
      },
    ],
    name: "ServiceProviderRegistered",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
      {
        indexed: false,
        internalType: "uint256",
        name: "tokens",
        type: "uint256",
      },
    ],
    name: "ServiceProviderSlashed",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
      {
        indexed: false,
        internalType: "bytes",
        name: "data",
        type: "bytes",
      },
    ],
    name: "ServiceStarted",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
      {
        indexed: false,
        internalType: "bytes",
        name: "data",
        type: "bytes",
      },
    ],
    name: "ServiceStopped",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
      {
        indexed: true,
        internalType: "bytes32",
        name: "claimId",
        type: "bytes32",
      },
      {
        indexed: false,
        internalType: "uint256",
        name: "tokens",
        type: "uint256",
      },
      {
        indexed: false,
        internalType: "uint256",
        name: "unlockTimestamp",
        type: "uint256",
      },
    ],
    name: "StakeClaimLocked",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
      {
        indexed: true,
        internalType: "bytes32",
        name: "claimId",
        type: "bytes32",
      },
      {
        indexed: false,
        internalType: "uint256",
        name: "tokens",
        type: "uint256",
      },
      {
        indexed: false,
        internalType: "uint256",
        name: "releasableAt",
        type: "uint256",
      },
    ],
    name: "StakeClaimReleased",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
      {
        indexed: false,
        internalType: "uint256",
        name: "claimsCount",
        type: "uint256",
      },
      {
        indexed: false,
        internalType: "uint256",
        name: "tokensReleased",
        type: "uint256",
      },
    ],
    name: "StakeClaimsReleased",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: false,
        internalType: "uint256",
        name: "ratio",
        type: "uint256",
      },
    ],
    name: "StakeToFeesRatioSet",
    type: "event",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
      {
        internalType: "bytes",
        name: "data",
        type: "bytes",
      },
    ],
    name: "acceptProvisionPendingParameters",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "allocationId",
        type: "address",
      },
    ],
    name: "closeStaleAllocation",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
      {
        internalType: "enum IGraphPayments.PaymentTypes",
        name: "feeType",
        type: "uint8",
      },
      {
        internalType: "bytes",
        name: "data",
        type: "bytes",
      },
    ],
    name: "collect",
    outputs: [
      {
        internalType: "uint256",
        name: "",
        type: "uint256",
      },
    ],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "indexer",
        type: "address",
      },
      {
        internalType: "address",
        name: "allocationId",
        type: "address",
      },
    ],
    name: "encodeAllocationProof",
    outputs: [
      {
        internalType: "bytes32",
        name: "",
        type: "bytes32",
      },
    ],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "allocationId",
        type: "address",
      },
    ],
    name: "getAllocation",
    outputs: [
      {
        components: [
          {
            internalType: "address",
            name: "indexer",
            type: "address",
          },
          {
            internalType: "bytes32",
            name: "subgraphDeploymentId",
            type: "bytes32",
          },
          {
            internalType: "uint256",
            name: "tokens",
            type: "uint256",
          },
          {
            internalType: "uint256",
            name: "createdAt",
            type: "uint256",
          },
          {
            internalType: "uint256",
            name: "closedAt",
            type: "uint256",
          },
          {
            internalType: "uint256",
            name: "lastPOIPresentedAt",
            type: "uint256",
          },
          {
            internalType: "uint256",
            name: "accRewardsPerAllocatedToken",
            type: "uint256",
          },
          {
            internalType: "uint256",
            name: "accRewardsPending",
            type: "uint256",
          },
          {
            internalType: "uint256",
            name: "createdAtEpoch",
            type: "uint256",
          },
        ],
        internalType: "struct Allocation.State",
        name: "",
        type: "tuple",
      },
    ],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [],
    name: "getCuration",
    outputs: [
      {
        internalType: "address",
        name: "",
        type: "address",
      },
    ],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [],
    name: "getDelegationRatio",
    outputs: [
      {
        internalType: "uint32",
        name: "",
        type: "uint32",
      },
    ],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [],
    name: "getDisputeManager",
    outputs: [
      {
        internalType: "address",
        name: "",
        type: "address",
      },
    ],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [],
    name: "getGraphTallyCollector",
    outputs: [
      {
        internalType: "address",
        name: "",
        type: "address",
      },
    ],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "allocationId",
        type: "address",
      },
    ],
    name: "getLegacyAllocation",
    outputs: [
      {
        components: [
          {
            internalType: "address",
            name: "indexer",
            type: "address",
          },
          {
            internalType: "bytes32",
            name: "subgraphDeploymentId",
            type: "bytes32",
          },
        ],
        internalType: "struct LegacyAllocation.State",
        name: "",
        type: "tuple",
      },
    ],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [],
    name: "getProvisionTokensRange",
    outputs: [
      {
        internalType: "uint256",
        name: "",
        type: "uint256",
      },
      {
        internalType: "uint256",
        name: "",
        type: "uint256",
      },
    ],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [],
    name: "getThawingPeriodRange",
    outputs: [
      {
        internalType: "uint64",
        name: "",
        type: "uint64",
      },
      {
        internalType: "uint64",
        name: "",
        type: "uint64",
      },
    ],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [],
    name: "getVerifierCutRange",
    outputs: [
      {
        internalType: "uint32",
        name: "",
        type: "uint32",
      },
      {
        internalType: "uint32",
        name: "",
        type: "uint32",
      },
    ],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "owner",
        type: "address",
      },
      {
        internalType: "uint256",
        name: "minimumProvisionTokens",
        type: "uint256",
      },
      {
        internalType: "uint32",
        name: "maximumDelegationRatio",
        type: "uint32",
      },
      {
        internalType: "uint256",
        name: "stakeToFeesRatio",
        type: "uint256",
      },
    ],
    name: "initialize",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "allocationId",
        type: "address",
      },
    ],
    name: "isOverAllocated",
    outputs: [
      {
        internalType: "bool",
        name: "",
        type: "bool",
      },
    ],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "indexer",
        type: "address",
      },
      {
        internalType: "address",
        name: "allocationId",
        type: "address",
      },
      {
        internalType: "bytes32",
        name: "subgraphDeploymentId",
        type: "bytes32",
      },
    ],
    name: "migrateLegacyAllocation",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
      {
        internalType: "bytes",
        name: "data",
        type: "bytes",
      },
    ],
    name: "register",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "uint256",
        name: "numClaimsToRelease",
        type: "uint256",
      },
    ],
    name: "releaseStake",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "indexer",
        type: "address",
      },
      {
        internalType: "address",
        name: "allocationId",
        type: "address",
      },
      {
        internalType: "uint256",
        name: "tokens",
        type: "uint256",
      },
    ],
    name: "resizeAllocation",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "uint256",
        name: "curationCut",
        type: "uint256",
      },
    ],
    name: "setCurationCut",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "uint32",
        name: "delegationRatio",
        type: "uint32",
      },
    ],
    name: "setDelegationRatio",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "uint256",
        name: "maxPOIStaleness",
        type: "uint256",
      },
    ],
    name: "setMaxPOIStaleness",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "uint256",
        name: "minimumProvisionTokens",
        type: "uint256",
      },
    ],
    name: "setMinimumProvisionTokens",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "pauseGuardian",
        type: "address",
      },
      {
        internalType: "bool",
        name: "allowed",
        type: "bool",
      },
    ],
    name: "setPauseGuardian",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "paymentsDestination",
        type: "address",
      },
    ],
    name: "setPaymentsDestination",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "uint256",
        name: "stakeToFeesRatio",
        type: "uint256",
      },
    ],
    name: "setStakeToFeesRatio",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
      {
        internalType: "bytes",
        name: "data",
        type: "bytes",
      },
    ],
    name: "slash",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
      {
        internalType: "bytes",
        name: "data",
        type: "bytes",
      },
    ],
    name: "startService",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "serviceProvider",
        type: "address",
      },
      {
        internalType: "bytes",
        name: "data",
        type: "bytes",
      },
    ],
    name: "stopService",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
] as const;

export class ISubgraphService__factory {
  static readonly abi = _abi;
  static createInterface(): ISubgraphServiceInterface {
    return new Interface(_abi) as ISubgraphServiceInterface;
  }
  static connect(
    address: string,
    runner?: ContractRunner | null
  ): ISubgraphService {
    return new Contract(address, _abi, runner) as unknown as ISubgraphService;
  }
}
