/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import type {
  BaseContract,
  BigNumber,
  BigNumberish,
  BytesLike,
  CallOverrides,
  ContractTransaction,
  Overrides,
  PopulatedTransaction,
  Signer,
  utils,
} from "ethers";
import type {
  FunctionFragment,
  Result,
  EventFragment,
} from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type {
  TypedEventFilter,
  TypedEvent,
  TypedListener,
  OnEvent,
  PromiseOrValue,
} from "../../common";

export declare namespace IAllocation {
  export type StateStruct = {
    indexer: PromiseOrValue<string>;
    subgraphDeploymentId: PromiseOrValue<BytesLike>;
    tokens: PromiseOrValue<BigNumberish>;
    createdAt: PromiseOrValue<BigNumberish>;
    closedAt: PromiseOrValue<BigNumberish>;
    lastPOIPresentedAt: PromiseOrValue<BigNumberish>;
    accRewardsPerAllocatedToken: PromiseOrValue<BigNumberish>;
    accRewardsPending: PromiseOrValue<BigNumberish>;
    createdAtEpoch: PromiseOrValue<BigNumberish>;
  };

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

export declare namespace ILegacyAllocation {
  export type StateStruct = {
    indexer: PromiseOrValue<string>;
    subgraphDeploymentId: PromiseOrValue<BytesLike>;
  };

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

export interface ISubgraphServiceInterface extends utils.Interface {
  functions: {
    "acceptProvisionPendingParameters(address,bytes)": FunctionFragment;
    "closeStaleAllocation(address)": FunctionFragment;
    "collect(address,uint8,bytes)": FunctionFragment;
    "encodeAllocationProof(address,address)": FunctionFragment;
    "getAllocation(address)": FunctionFragment;
    "getCuration()": FunctionFragment;
    "getDelegationRatio()": FunctionFragment;
    "getDisputeManager()": FunctionFragment;
    "getGraphTallyCollector()": FunctionFragment;
    "getLegacyAllocation(address)": FunctionFragment;
    "getProvisionTokensRange()": FunctionFragment;
    "getThawingPeriodRange()": FunctionFragment;
    "getVerifierCutRange()": FunctionFragment;
    "initialize(address,uint256,uint32,uint256)": FunctionFragment;
    "isOverAllocated(address)": FunctionFragment;
    "migrateLegacyAllocation(address,address,bytes32)": FunctionFragment;
    "register(address,bytes)": FunctionFragment;
    "releaseStake(uint256)": FunctionFragment;
    "resizeAllocation(address,address,uint256)": FunctionFragment;
    "setCurationCut(uint256)": FunctionFragment;
    "setDelegationRatio(uint32)": FunctionFragment;
    "setMaxPOIStaleness(uint256)": FunctionFragment;
    "setMinimumProvisionTokens(uint256)": FunctionFragment;
    "setPauseGuardian(address,bool)": FunctionFragment;
    "setPaymentsDestination(address)": FunctionFragment;
    "setStakeToFeesRatio(uint256)": FunctionFragment;
    "slash(address,bytes)": FunctionFragment;
    "startService(address,bytes)": FunctionFragment;
    "stopService(address,bytes)": FunctionFragment;
  };

  getFunction(
    nameOrSignatureOrTopic:
      | "acceptProvisionPendingParameters"
      | "closeStaleAllocation"
      | "collect"
      | "encodeAllocationProof"
      | "getAllocation"
      | "getCuration"
      | "getDelegationRatio"
      | "getDisputeManager"
      | "getGraphTallyCollector"
      | "getLegacyAllocation"
      | "getProvisionTokensRange"
      | "getThawingPeriodRange"
      | "getVerifierCutRange"
      | "initialize"
      | "isOverAllocated"
      | "migrateLegacyAllocation"
      | "register"
      | "releaseStake"
      | "resizeAllocation"
      | "setCurationCut"
      | "setDelegationRatio"
      | "setMaxPOIStaleness"
      | "setMinimumProvisionTokens"
      | "setPauseGuardian"
      | "setPaymentsDestination"
      | "setStakeToFeesRatio"
      | "slash"
      | "startService"
      | "stopService",
  ): FunctionFragment;

  encodeFunctionData(
    functionFragment: "acceptProvisionPendingParameters",
    values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>],
  ): string;
  encodeFunctionData(
    functionFragment: "closeStaleAllocation",
    values: [PromiseOrValue<string>],
  ): string;
  encodeFunctionData(
    functionFragment: "collect",
    values: [
      PromiseOrValue<string>,
      PromiseOrValue<BigNumberish>,
      PromiseOrValue<BytesLike>,
    ],
  ): string;
  encodeFunctionData(
    functionFragment: "encodeAllocationProof",
    values: [PromiseOrValue<string>, PromiseOrValue<string>],
  ): string;
  encodeFunctionData(
    functionFragment: "getAllocation",
    values: [PromiseOrValue<string>],
  ): 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: [PromiseOrValue<string>],
  ): string;
  encodeFunctionData(
    functionFragment: "getProvisionTokensRange",
    values?: undefined,
  ): string;
  encodeFunctionData(
    functionFragment: "getThawingPeriodRange",
    values?: undefined,
  ): string;
  encodeFunctionData(
    functionFragment: "getVerifierCutRange",
    values?: undefined,
  ): string;
  encodeFunctionData(
    functionFragment: "initialize",
    values: [
      PromiseOrValue<string>,
      PromiseOrValue<BigNumberish>,
      PromiseOrValue<BigNumberish>,
      PromiseOrValue<BigNumberish>,
    ],
  ): string;
  encodeFunctionData(
    functionFragment: "isOverAllocated",
    values: [PromiseOrValue<string>],
  ): string;
  encodeFunctionData(
    functionFragment: "migrateLegacyAllocation",
    values: [
      PromiseOrValue<string>,
      PromiseOrValue<string>,
      PromiseOrValue<BytesLike>,
    ],
  ): string;
  encodeFunctionData(
    functionFragment: "register",
    values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>],
  ): string;
  encodeFunctionData(
    functionFragment: "releaseStake",
    values: [PromiseOrValue<BigNumberish>],
  ): string;
  encodeFunctionData(
    functionFragment: "resizeAllocation",
    values: [
      PromiseOrValue<string>,
      PromiseOrValue<string>,
      PromiseOrValue<BigNumberish>,
    ],
  ): string;
  encodeFunctionData(
    functionFragment: "setCurationCut",
    values: [PromiseOrValue<BigNumberish>],
  ): string;
  encodeFunctionData(
    functionFragment: "setDelegationRatio",
    values: [PromiseOrValue<BigNumberish>],
  ): string;
  encodeFunctionData(
    functionFragment: "setMaxPOIStaleness",
    values: [PromiseOrValue<BigNumberish>],
  ): string;
  encodeFunctionData(
    functionFragment: "setMinimumProvisionTokens",
    values: [PromiseOrValue<BigNumberish>],
  ): string;
  encodeFunctionData(
    functionFragment: "setPauseGuardian",
    values: [PromiseOrValue<string>, PromiseOrValue<boolean>],
  ): string;
  encodeFunctionData(
    functionFragment: "setPaymentsDestination",
    values: [PromiseOrValue<string>],
  ): string;
  encodeFunctionData(
    functionFragment: "setStakeToFeesRatio",
    values: [PromiseOrValue<BigNumberish>],
  ): string;
  encodeFunctionData(
    functionFragment: "slash",
    values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>],
  ): string;
  encodeFunctionData(
    functionFragment: "startService",
    values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>],
  ): string;
  encodeFunctionData(
    functionFragment: "stopService",
    values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>],
  ): string;

  decodeFunctionResult(
    functionFragment: "acceptProvisionPendingParameters",
    data: BytesLike,
  ): Result;
  decodeFunctionResult(
    functionFragment: "closeStaleAllocation",
    data: BytesLike,
  ): Result;
  decodeFunctionResult(functionFragment: "collect", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "encodeAllocationProof",
    data: BytesLike,
  ): Result;
  decodeFunctionResult(
    functionFragment: "getAllocation",
    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: "getThawingPeriodRange",
    data: BytesLike,
  ): Result;
  decodeFunctionResult(
    functionFragment: "getVerifierCutRange",
    data: BytesLike,
  ): Result;
  decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "isOverAllocated",
    data: BytesLike,
  ): Result;
  decodeFunctionResult(
    functionFragment: "migrateLegacyAllocation",
    data: BytesLike,
  ): Result;
  decodeFunctionResult(functionFragment: "register", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "releaseStake",
    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: "startService",
    data: BytesLike,
  ): Result;
  decodeFunctionResult(
    functionFragment: "stopService",
    data: BytesLike,
  ): Result;

  events: {
    "CurationCutSet(uint256)": EventFragment;
    "PaymentsDestinationSet(address,address)": EventFragment;
    "ProvisionPendingParametersAccepted(address)": EventFragment;
    "QueryFeesCollected(address,address,address,bytes32,uint256,uint256)": EventFragment;
    "ServicePaymentCollected(address,uint8,uint256)": EventFragment;
    "ServiceProviderRegistered(address,bytes)": EventFragment;
    "ServiceProviderSlashed(address,uint256)": EventFragment;
    "ServiceStarted(address,bytes)": EventFragment;
    "ServiceStopped(address,bytes)": EventFragment;
    "StakeClaimLocked(address,bytes32,uint256,uint256)": EventFragment;
    "StakeClaimReleased(address,bytes32,uint256,uint256)": EventFragment;
    "StakeClaimsReleased(address,uint256,uint256)": EventFragment;
    "StakeToFeesRatioSet(uint256)": EventFragment;
  };

  getEvent(nameOrSignatureOrTopic: "CurationCutSet"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "PaymentsDestinationSet"): EventFragment;
  getEvent(
    nameOrSignatureOrTopic: "ProvisionPendingParametersAccepted",
  ): EventFragment;
  getEvent(nameOrSignatureOrTopic: "QueryFeesCollected"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "ServicePaymentCollected"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "ServiceProviderRegistered"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "ServiceProviderSlashed"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "ServiceStarted"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "ServiceStopped"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "StakeClaimLocked"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "StakeClaimReleased"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "StakeClaimsReleased"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "StakeToFeesRatioSet"): EventFragment;
}

export interface CurationCutSetEventObject {
  curationCut: BigNumber;
}
export type CurationCutSetEvent = TypedEvent<
  [BigNumber],
  CurationCutSetEventObject
>;

export type CurationCutSetEventFilter = TypedEventFilter<CurationCutSetEvent>;

export interface PaymentsDestinationSetEventObject {
  indexer: string;
  paymentsDestination: string;
}
export type PaymentsDestinationSetEvent = TypedEvent<
  [string, string],
  PaymentsDestinationSetEventObject
>;

export type PaymentsDestinationSetEventFilter =
  TypedEventFilter<PaymentsDestinationSetEvent>;

export interface ProvisionPendingParametersAcceptedEventObject {
  serviceProvider: string;
}
export type ProvisionPendingParametersAcceptedEvent = TypedEvent<
  [string],
  ProvisionPendingParametersAcceptedEventObject
>;

export type ProvisionPendingParametersAcceptedEventFilter =
  TypedEventFilter<ProvisionPendingParametersAcceptedEvent>;

export interface QueryFeesCollectedEventObject {
  serviceProvider: string;
  payer: string;
  allocationId: string;
  subgraphDeploymentId: string;
  tokensCollected: BigNumber;
  tokensCurators: BigNumber;
}
export type QueryFeesCollectedEvent = TypedEvent<
  [string, string, string, string, BigNumber, BigNumber],
  QueryFeesCollectedEventObject
>;

export type QueryFeesCollectedEventFilter =
  TypedEventFilter<QueryFeesCollectedEvent>;

export interface ServicePaymentCollectedEventObject {
  serviceProvider: string;
  feeType: number;
  tokens: BigNumber;
}
export type ServicePaymentCollectedEvent = TypedEvent<
  [string, number, BigNumber],
  ServicePaymentCollectedEventObject
>;

export type ServicePaymentCollectedEventFilter =
  TypedEventFilter<ServicePaymentCollectedEvent>;

export interface ServiceProviderRegisteredEventObject {
  serviceProvider: string;
  data: string;
}
export type ServiceProviderRegisteredEvent = TypedEvent<
  [string, string],
  ServiceProviderRegisteredEventObject
>;

export type ServiceProviderRegisteredEventFilter =
  TypedEventFilter<ServiceProviderRegisteredEvent>;

export interface ServiceProviderSlashedEventObject {
  serviceProvider: string;
  tokens: BigNumber;
}
export type ServiceProviderSlashedEvent = TypedEvent<
  [string, BigNumber],
  ServiceProviderSlashedEventObject
>;

export type ServiceProviderSlashedEventFilter =
  TypedEventFilter<ServiceProviderSlashedEvent>;

export interface ServiceStartedEventObject {
  serviceProvider: string;
  data: string;
}
export type ServiceStartedEvent = TypedEvent<
  [string, string],
  ServiceStartedEventObject
>;

export type ServiceStartedEventFilter = TypedEventFilter<ServiceStartedEvent>;

export interface ServiceStoppedEventObject {
  serviceProvider: string;
  data: string;
}
export type ServiceStoppedEvent = TypedEvent<
  [string, string],
  ServiceStoppedEventObject
>;

export type ServiceStoppedEventFilter = TypedEventFilter<ServiceStoppedEvent>;

export interface StakeClaimLockedEventObject {
  serviceProvider: string;
  claimId: string;
  tokens: BigNumber;
  unlockTimestamp: BigNumber;
}
export type StakeClaimLockedEvent = TypedEvent<
  [string, string, BigNumber, BigNumber],
  StakeClaimLockedEventObject
>;

export type StakeClaimLockedEventFilter =
  TypedEventFilter<StakeClaimLockedEvent>;

export interface StakeClaimReleasedEventObject {
  serviceProvider: string;
  claimId: string;
  tokens: BigNumber;
  releasableAt: BigNumber;
}
export type StakeClaimReleasedEvent = TypedEvent<
  [string, string, BigNumber, BigNumber],
  StakeClaimReleasedEventObject
>;

export type StakeClaimReleasedEventFilter =
  TypedEventFilter<StakeClaimReleasedEvent>;

export interface StakeClaimsReleasedEventObject {
  serviceProvider: string;
  claimsCount: BigNumber;
  tokensReleased: BigNumber;
}
export type StakeClaimsReleasedEvent = TypedEvent<
  [string, BigNumber, BigNumber],
  StakeClaimsReleasedEventObject
>;

export type StakeClaimsReleasedEventFilter =
  TypedEventFilter<StakeClaimsReleasedEvent>;

export interface StakeToFeesRatioSetEventObject {
  ratio: BigNumber;
}
export type StakeToFeesRatioSetEvent = TypedEvent<
  [BigNumber],
  StakeToFeesRatioSetEventObject
>;

export type StakeToFeesRatioSetEventFilter =
  TypedEventFilter<StakeToFeesRatioSetEvent>;

export interface ISubgraphService extends BaseContract {
  connect(signerOrProvider: Signer | Provider | string): this;
  attach(addressOrName: string): this;
  deployed(): Promise<this>;

  interface: ISubgraphServiceInterface;

  queryFilter<TEvent extends TypedEvent>(
    event: TypedEventFilter<TEvent>,
    fromBlockOrBlockhash?: string | number | undefined,
    toBlock?: string | number | undefined,
  ): Promise<Array<TEvent>>;

  listeners<TEvent extends TypedEvent>(
    eventFilter?: TypedEventFilter<TEvent>,
  ): Array<TypedListener<TEvent>>;
  listeners(eventName?: string): Array<Listener>;
  removeAllListeners<TEvent extends TypedEvent>(
    eventFilter: TypedEventFilter<TEvent>,
  ): this;
  removeAllListeners(eventName?: string): this;
  off: OnEvent<this>;
  on: OnEvent<this>;
  once: OnEvent<this>;
  removeListener: OnEvent<this>;

  functions: {
    acceptProvisionPendingParameters(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    closeStaleAllocation(
      allocationId: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    collect(
      serviceProvider: PromiseOrValue<string>,
      feeType: PromiseOrValue<BigNumberish>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    encodeAllocationProof(
      indexer: PromiseOrValue<string>,
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<[string]>;

    getAllocation(
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<[IAllocation.StateStructOutput]>;

    getCuration(overrides?: CallOverrides): Promise<[string]>;

    getDelegationRatio(overrides?: CallOverrides): Promise<[number]>;

    getDisputeManager(overrides?: CallOverrides): Promise<[string]>;

    getGraphTallyCollector(overrides?: CallOverrides): Promise<[string]>;

    getLegacyAllocation(
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<[ILegacyAllocation.StateStructOutput]>;

    getProvisionTokensRange(
      overrides?: CallOverrides,
    ): Promise<[BigNumber, BigNumber]>;

    getThawingPeriodRange(
      overrides?: CallOverrides,
    ): Promise<[BigNumber, BigNumber]>;

    getVerifierCutRange(overrides?: CallOverrides): Promise<[number, number]>;

    initialize(
      owner: PromiseOrValue<string>,
      minimumProvisionTokens: PromiseOrValue<BigNumberish>,
      maximumDelegationRatio: PromiseOrValue<BigNumberish>,
      stakeToFeesRatio: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    isOverAllocated(
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<[boolean]>;

    migrateLegacyAllocation(
      indexer: PromiseOrValue<string>,
      allocationId: PromiseOrValue<string>,
      subgraphDeploymentId: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    register(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    releaseStake(
      numClaimsToRelease: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    resizeAllocation(
      indexer: PromiseOrValue<string>,
      allocationId: PromiseOrValue<string>,
      tokens: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    setCurationCut(
      curationCut: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    setDelegationRatio(
      delegationRatio: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    setMaxPOIStaleness(
      maxPOIStaleness: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    setMinimumProvisionTokens(
      minimumProvisionTokens: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    setPauseGuardian(
      pauseGuardian: PromiseOrValue<string>,
      allowed: PromiseOrValue<boolean>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    setPaymentsDestination(
      paymentsDestination: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    setStakeToFeesRatio(
      stakeToFeesRatio: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    slash(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    startService(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;

    stopService(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<ContractTransaction>;
  };

  acceptProvisionPendingParameters(
    serviceProvider: PromiseOrValue<string>,
    data: PromiseOrValue<BytesLike>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  closeStaleAllocation(
    allocationId: PromiseOrValue<string>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  collect(
    serviceProvider: PromiseOrValue<string>,
    feeType: PromiseOrValue<BigNumberish>,
    data: PromiseOrValue<BytesLike>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  encodeAllocationProof(
    indexer: PromiseOrValue<string>,
    allocationId: PromiseOrValue<string>,
    overrides?: CallOverrides,
  ): Promise<string>;

  getAllocation(
    allocationId: PromiseOrValue<string>,
    overrides?: CallOverrides,
  ): Promise<IAllocation.StateStructOutput>;

  getCuration(overrides?: CallOverrides): Promise<string>;

  getDelegationRatio(overrides?: CallOverrides): Promise<number>;

  getDisputeManager(overrides?: CallOverrides): Promise<string>;

  getGraphTallyCollector(overrides?: CallOverrides): Promise<string>;

  getLegacyAllocation(
    allocationId: PromiseOrValue<string>,
    overrides?: CallOverrides,
  ): Promise<ILegacyAllocation.StateStructOutput>;

  getProvisionTokensRange(
    overrides?: CallOverrides,
  ): Promise<[BigNumber, BigNumber]>;

  getThawingPeriodRange(
    overrides?: CallOverrides,
  ): Promise<[BigNumber, BigNumber]>;

  getVerifierCutRange(overrides?: CallOverrides): Promise<[number, number]>;

  initialize(
    owner: PromiseOrValue<string>,
    minimumProvisionTokens: PromiseOrValue<BigNumberish>,
    maximumDelegationRatio: PromiseOrValue<BigNumberish>,
    stakeToFeesRatio: PromiseOrValue<BigNumberish>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  isOverAllocated(
    allocationId: PromiseOrValue<string>,
    overrides?: CallOverrides,
  ): Promise<boolean>;

  migrateLegacyAllocation(
    indexer: PromiseOrValue<string>,
    allocationId: PromiseOrValue<string>,
    subgraphDeploymentId: PromiseOrValue<BytesLike>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  register(
    serviceProvider: PromiseOrValue<string>,
    data: PromiseOrValue<BytesLike>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  releaseStake(
    numClaimsToRelease: PromiseOrValue<BigNumberish>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  resizeAllocation(
    indexer: PromiseOrValue<string>,
    allocationId: PromiseOrValue<string>,
    tokens: PromiseOrValue<BigNumberish>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  setCurationCut(
    curationCut: PromiseOrValue<BigNumberish>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  setDelegationRatio(
    delegationRatio: PromiseOrValue<BigNumberish>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  setMaxPOIStaleness(
    maxPOIStaleness: PromiseOrValue<BigNumberish>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  setMinimumProvisionTokens(
    minimumProvisionTokens: PromiseOrValue<BigNumberish>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  setPauseGuardian(
    pauseGuardian: PromiseOrValue<string>,
    allowed: PromiseOrValue<boolean>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  setPaymentsDestination(
    paymentsDestination: PromiseOrValue<string>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  setStakeToFeesRatio(
    stakeToFeesRatio: PromiseOrValue<BigNumberish>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  slash(
    serviceProvider: PromiseOrValue<string>,
    data: PromiseOrValue<BytesLike>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  startService(
    serviceProvider: PromiseOrValue<string>,
    data: PromiseOrValue<BytesLike>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  stopService(
    serviceProvider: PromiseOrValue<string>,
    data: PromiseOrValue<BytesLike>,
    overrides?: Overrides & { from?: PromiseOrValue<string> },
  ): Promise<ContractTransaction>;

  callStatic: {
    acceptProvisionPendingParameters(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: CallOverrides,
    ): Promise<void>;

    closeStaleAllocation(
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<void>;

    collect(
      serviceProvider: PromiseOrValue<string>,
      feeType: PromiseOrValue<BigNumberish>,
      data: PromiseOrValue<BytesLike>,
      overrides?: CallOverrides,
    ): Promise<BigNumber>;

    encodeAllocationProof(
      indexer: PromiseOrValue<string>,
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<string>;

    getAllocation(
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<IAllocation.StateStructOutput>;

    getCuration(overrides?: CallOverrides): Promise<string>;

    getDelegationRatio(overrides?: CallOverrides): Promise<number>;

    getDisputeManager(overrides?: CallOverrides): Promise<string>;

    getGraphTallyCollector(overrides?: CallOverrides): Promise<string>;

    getLegacyAllocation(
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<ILegacyAllocation.StateStructOutput>;

    getProvisionTokensRange(
      overrides?: CallOverrides,
    ): Promise<[BigNumber, BigNumber]>;

    getThawingPeriodRange(
      overrides?: CallOverrides,
    ): Promise<[BigNumber, BigNumber]>;

    getVerifierCutRange(overrides?: CallOverrides): Promise<[number, number]>;

    initialize(
      owner: PromiseOrValue<string>,
      minimumProvisionTokens: PromiseOrValue<BigNumberish>,
      maximumDelegationRatio: PromiseOrValue<BigNumberish>,
      stakeToFeesRatio: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides,
    ): Promise<void>;

    isOverAllocated(
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<boolean>;

    migrateLegacyAllocation(
      indexer: PromiseOrValue<string>,
      allocationId: PromiseOrValue<string>,
      subgraphDeploymentId: PromiseOrValue<BytesLike>,
      overrides?: CallOverrides,
    ): Promise<void>;

    register(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: CallOverrides,
    ): Promise<void>;

    releaseStake(
      numClaimsToRelease: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides,
    ): Promise<void>;

    resizeAllocation(
      indexer: PromiseOrValue<string>,
      allocationId: PromiseOrValue<string>,
      tokens: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides,
    ): Promise<void>;

    setCurationCut(
      curationCut: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides,
    ): Promise<void>;

    setDelegationRatio(
      delegationRatio: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides,
    ): Promise<void>;

    setMaxPOIStaleness(
      maxPOIStaleness: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides,
    ): Promise<void>;

    setMinimumProvisionTokens(
      minimumProvisionTokens: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides,
    ): Promise<void>;

    setPauseGuardian(
      pauseGuardian: PromiseOrValue<string>,
      allowed: PromiseOrValue<boolean>,
      overrides?: CallOverrides,
    ): Promise<void>;

    setPaymentsDestination(
      paymentsDestination: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<void>;

    setStakeToFeesRatio(
      stakeToFeesRatio: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides,
    ): Promise<void>;

    slash(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: CallOverrides,
    ): Promise<void>;

    startService(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: CallOverrides,
    ): Promise<void>;

    stopService(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: CallOverrides,
    ): Promise<void>;
  };

  filters: {
    "CurationCutSet(uint256)"(curationCut?: null): CurationCutSetEventFilter;
    CurationCutSet(curationCut?: null): CurationCutSetEventFilter;

    "PaymentsDestinationSet(address,address)"(
      indexer?: PromiseOrValue<string> | null,
      paymentsDestination?: PromiseOrValue<string> | null,
    ): PaymentsDestinationSetEventFilter;
    PaymentsDestinationSet(
      indexer?: PromiseOrValue<string> | null,
      paymentsDestination?: PromiseOrValue<string> | null,
    ): PaymentsDestinationSetEventFilter;

    "ProvisionPendingParametersAccepted(address)"(
      serviceProvider?: PromiseOrValue<string> | null,
    ): ProvisionPendingParametersAcceptedEventFilter;
    ProvisionPendingParametersAccepted(
      serviceProvider?: PromiseOrValue<string> | null,
    ): ProvisionPendingParametersAcceptedEventFilter;

    "QueryFeesCollected(address,address,address,bytes32,uint256,uint256)"(
      serviceProvider?: PromiseOrValue<string> | null,
      payer?: PromiseOrValue<string> | null,
      allocationId?: PromiseOrValue<string> | null,
      subgraphDeploymentId?: null,
      tokensCollected?: null,
      tokensCurators?: null,
    ): QueryFeesCollectedEventFilter;
    QueryFeesCollected(
      serviceProvider?: PromiseOrValue<string> | null,
      payer?: PromiseOrValue<string> | null,
      allocationId?: PromiseOrValue<string> | null,
      subgraphDeploymentId?: null,
      tokensCollected?: null,
      tokensCurators?: null,
    ): QueryFeesCollectedEventFilter;

    "ServicePaymentCollected(address,uint8,uint256)"(
      serviceProvider?: PromiseOrValue<string> | null,
      feeType?: PromiseOrValue<BigNumberish> | null,
      tokens?: null,
    ): ServicePaymentCollectedEventFilter;
    ServicePaymentCollected(
      serviceProvider?: PromiseOrValue<string> | null,
      feeType?: PromiseOrValue<BigNumberish> | null,
      tokens?: null,
    ): ServicePaymentCollectedEventFilter;

    "ServiceProviderRegistered(address,bytes)"(
      serviceProvider?: PromiseOrValue<string> | null,
      data?: null,
    ): ServiceProviderRegisteredEventFilter;
    ServiceProviderRegistered(
      serviceProvider?: PromiseOrValue<string> | null,
      data?: null,
    ): ServiceProviderRegisteredEventFilter;

    "ServiceProviderSlashed(address,uint256)"(
      serviceProvider?: PromiseOrValue<string> | null,
      tokens?: null,
    ): ServiceProviderSlashedEventFilter;
    ServiceProviderSlashed(
      serviceProvider?: PromiseOrValue<string> | null,
      tokens?: null,
    ): ServiceProviderSlashedEventFilter;

    "ServiceStarted(address,bytes)"(
      serviceProvider?: PromiseOrValue<string> | null,
      data?: null,
    ): ServiceStartedEventFilter;
    ServiceStarted(
      serviceProvider?: PromiseOrValue<string> | null,
      data?: null,
    ): ServiceStartedEventFilter;

    "ServiceStopped(address,bytes)"(
      serviceProvider?: PromiseOrValue<string> | null,
      data?: null,
    ): ServiceStoppedEventFilter;
    ServiceStopped(
      serviceProvider?: PromiseOrValue<string> | null,
      data?: null,
    ): ServiceStoppedEventFilter;

    "StakeClaimLocked(address,bytes32,uint256,uint256)"(
      serviceProvider?: PromiseOrValue<string> | null,
      claimId?: PromiseOrValue<BytesLike> | null,
      tokens?: null,
      unlockTimestamp?: null,
    ): StakeClaimLockedEventFilter;
    StakeClaimLocked(
      serviceProvider?: PromiseOrValue<string> | null,
      claimId?: PromiseOrValue<BytesLike> | null,
      tokens?: null,
      unlockTimestamp?: null,
    ): StakeClaimLockedEventFilter;

    "StakeClaimReleased(address,bytes32,uint256,uint256)"(
      serviceProvider?: PromiseOrValue<string> | null,
      claimId?: PromiseOrValue<BytesLike> | null,
      tokens?: null,
      releasableAt?: null,
    ): StakeClaimReleasedEventFilter;
    StakeClaimReleased(
      serviceProvider?: PromiseOrValue<string> | null,
      claimId?: PromiseOrValue<BytesLike> | null,
      tokens?: null,
      releasableAt?: null,
    ): StakeClaimReleasedEventFilter;

    "StakeClaimsReleased(address,uint256,uint256)"(
      serviceProvider?: PromiseOrValue<string> | null,
      claimsCount?: null,
      tokensReleased?: null,
    ): StakeClaimsReleasedEventFilter;
    StakeClaimsReleased(
      serviceProvider?: PromiseOrValue<string> | null,
      claimsCount?: null,
      tokensReleased?: null,
    ): StakeClaimsReleasedEventFilter;

    "StakeToFeesRatioSet(uint256)"(
      ratio?: null,
    ): StakeToFeesRatioSetEventFilter;
    StakeToFeesRatioSet(ratio?: null): StakeToFeesRatioSetEventFilter;
  };

  estimateGas: {
    acceptProvisionPendingParameters(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    closeStaleAllocation(
      allocationId: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    collect(
      serviceProvider: PromiseOrValue<string>,
      feeType: PromiseOrValue<BigNumberish>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    encodeAllocationProof(
      indexer: PromiseOrValue<string>,
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<BigNumber>;

    getAllocation(
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<BigNumber>;

    getCuration(overrides?: CallOverrides): Promise<BigNumber>;

    getDelegationRatio(overrides?: CallOverrides): Promise<BigNumber>;

    getDisputeManager(overrides?: CallOverrides): Promise<BigNumber>;

    getGraphTallyCollector(overrides?: CallOverrides): Promise<BigNumber>;

    getLegacyAllocation(
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<BigNumber>;

    getProvisionTokensRange(overrides?: CallOverrides): Promise<BigNumber>;

    getThawingPeriodRange(overrides?: CallOverrides): Promise<BigNumber>;

    getVerifierCutRange(overrides?: CallOverrides): Promise<BigNumber>;

    initialize(
      owner: PromiseOrValue<string>,
      minimumProvisionTokens: PromiseOrValue<BigNumberish>,
      maximumDelegationRatio: PromiseOrValue<BigNumberish>,
      stakeToFeesRatio: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    isOverAllocated(
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<BigNumber>;

    migrateLegacyAllocation(
      indexer: PromiseOrValue<string>,
      allocationId: PromiseOrValue<string>,
      subgraphDeploymentId: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    register(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    releaseStake(
      numClaimsToRelease: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    resizeAllocation(
      indexer: PromiseOrValue<string>,
      allocationId: PromiseOrValue<string>,
      tokens: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    setCurationCut(
      curationCut: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    setDelegationRatio(
      delegationRatio: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    setMaxPOIStaleness(
      maxPOIStaleness: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    setMinimumProvisionTokens(
      minimumProvisionTokens: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    setPauseGuardian(
      pauseGuardian: PromiseOrValue<string>,
      allowed: PromiseOrValue<boolean>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    setPaymentsDestination(
      paymentsDestination: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    setStakeToFeesRatio(
      stakeToFeesRatio: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    slash(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    startService(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;

    stopService(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<BigNumber>;
  };

  populateTransaction: {
    acceptProvisionPendingParameters(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    closeStaleAllocation(
      allocationId: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    collect(
      serviceProvider: PromiseOrValue<string>,
      feeType: PromiseOrValue<BigNumberish>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    encodeAllocationProof(
      indexer: PromiseOrValue<string>,
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<PopulatedTransaction>;

    getAllocation(
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<PopulatedTransaction>;

    getCuration(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    getDelegationRatio(
      overrides?: CallOverrides,
    ): Promise<PopulatedTransaction>;

    getDisputeManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    getGraphTallyCollector(
      overrides?: CallOverrides,
    ): Promise<PopulatedTransaction>;

    getLegacyAllocation(
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<PopulatedTransaction>;

    getProvisionTokensRange(
      overrides?: CallOverrides,
    ): Promise<PopulatedTransaction>;

    getThawingPeriodRange(
      overrides?: CallOverrides,
    ): Promise<PopulatedTransaction>;

    getVerifierCutRange(
      overrides?: CallOverrides,
    ): Promise<PopulatedTransaction>;

    initialize(
      owner: PromiseOrValue<string>,
      minimumProvisionTokens: PromiseOrValue<BigNumberish>,
      maximumDelegationRatio: PromiseOrValue<BigNumberish>,
      stakeToFeesRatio: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    isOverAllocated(
      allocationId: PromiseOrValue<string>,
      overrides?: CallOverrides,
    ): Promise<PopulatedTransaction>;

    migrateLegacyAllocation(
      indexer: PromiseOrValue<string>,
      allocationId: PromiseOrValue<string>,
      subgraphDeploymentId: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    register(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    releaseStake(
      numClaimsToRelease: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    resizeAllocation(
      indexer: PromiseOrValue<string>,
      allocationId: PromiseOrValue<string>,
      tokens: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    setCurationCut(
      curationCut: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    setDelegationRatio(
      delegationRatio: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    setMaxPOIStaleness(
      maxPOIStaleness: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    setMinimumProvisionTokens(
      minimumProvisionTokens: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    setPauseGuardian(
      pauseGuardian: PromiseOrValue<string>,
      allowed: PromiseOrValue<boolean>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    setPaymentsDestination(
      paymentsDestination: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    setStakeToFeesRatio(
      stakeToFeesRatio: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    slash(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    startService(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;

    stopService(
      serviceProvider: PromiseOrValue<string>,
      data: PromiseOrValue<BytesLike>,
      overrides?: Overrides & { from?: PromiseOrValue<string> },
    ): Promise<PopulatedTransaction>;
  };
}
