/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import type {
  BaseContract,
  BigNumberish,
  BytesLike,
  FunctionFragment,
  Result,
  Interface,
  EventFragment,
  AddressLike,
  ContractRunner,
  ContractMethod,
  Listener,
} from 'ethers'
import type {
  TypedContractEvent,
  TypedDeferredTopicFilter,
  TypedEventLog,
  TypedLogDescription,
  TypedListener,
  TypedContractMethod,
} from '../../../common'

export interface DataServicePausableInterface extends Interface {
  getFunction(
    nameOrSignature:
      | 'acceptProvisionPendingParameters'
      | 'collect'
      | 'getDelegationRatio'
      | 'getProvisionTokensRange'
      | 'getThawingPeriodRange'
      | 'getVerifierCutRange'
      | 'pause'
      | 'pauseGuardians'
      | 'paused'
      | 'register'
      | 'slash'
      | 'startService'
      | 'stopService'
      | 'unpause',
  ): FunctionFragment

  getEvent(
    nameOrSignatureOrTopic:
      | 'DelegationRatioSet'
      | 'GraphDirectoryInitialized'
      | 'Initialized'
      | 'PauseGuardianSet'
      | 'Paused'
      | 'ProvisionPendingParametersAccepted'
      | 'ProvisionTokensRangeSet'
      | 'ServicePaymentCollected'
      | 'ServiceProviderRegistered'
      | 'ServiceProviderSlashed'
      | 'ServiceStarted'
      | 'ServiceStopped'
      | 'ThawingPeriodRangeSet'
      | 'Unpaused'
      | 'VerifierCutRangeSet',
  ): EventFragment

  encodeFunctionData(functionFragment: 'acceptProvisionPendingParameters', values: [AddressLike, BytesLike]): string
  encodeFunctionData(functionFragment: 'collect', values: [AddressLike, BigNumberish, BytesLike]): string
  encodeFunctionData(functionFragment: 'getDelegationRatio', values?: undefined): string
  encodeFunctionData(functionFragment: 'getProvisionTokensRange', values?: undefined): string
  encodeFunctionData(functionFragment: 'getThawingPeriodRange', values?: undefined): string
  encodeFunctionData(functionFragment: 'getVerifierCutRange', values?: undefined): string
  encodeFunctionData(functionFragment: 'pause', values?: undefined): string
  encodeFunctionData(functionFragment: 'pauseGuardians', values: [AddressLike]): string
  encodeFunctionData(functionFragment: 'paused', values?: undefined): string
  encodeFunctionData(functionFragment: 'register', values: [AddressLike, BytesLike]): string
  encodeFunctionData(functionFragment: 'slash', values: [AddressLike, BytesLike]): string
  encodeFunctionData(functionFragment: 'startService', values: [AddressLike, BytesLike]): string
  encodeFunctionData(functionFragment: 'stopService', values: [AddressLike, BytesLike]): string
  encodeFunctionData(functionFragment: 'unpause', values?: undefined): string

  decodeFunctionResult(functionFragment: 'acceptProvisionPendingParameters', data: BytesLike): Result
  decodeFunctionResult(functionFragment: 'collect', data: BytesLike): Result
  decodeFunctionResult(functionFragment: 'getDelegationRatio', data: BytesLike): Result
  decodeFunctionResult(functionFragment: 'getProvisionTokensRange', data: BytesLike): Result
  decodeFunctionResult(functionFragment: 'getThawingPeriodRange', data: BytesLike): Result
  decodeFunctionResult(functionFragment: 'getVerifierCutRange', data: BytesLike): Result
  decodeFunctionResult(functionFragment: 'pause', data: BytesLike): Result
  decodeFunctionResult(functionFragment: 'pauseGuardians', data: BytesLike): Result
  decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result
  decodeFunctionResult(functionFragment: 'register', data: BytesLike): Result
  decodeFunctionResult(functionFragment: 'slash', data: BytesLike): Result
  decodeFunctionResult(functionFragment: 'startService', data: BytesLike): Result
  decodeFunctionResult(functionFragment: 'stopService', data: BytesLike): Result
  decodeFunctionResult(functionFragment: 'unpause', data: BytesLike): Result
}

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 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 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 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 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 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 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 DataServicePausable extends BaseContract {
  connect(runner?: ContractRunner | null): DataServicePausable
  waitForDeployment(): Promise<this>

  interface: DataServicePausableInterface

  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<
    [serviceProvider: AddressLike, data: BytesLike],
    [void],
    'nonpayable'
  >

  collect: TypedContractMethod<
    [serviceProvider: AddressLike, feeType: BigNumberish, data: BytesLike],
    [bigint],
    'nonpayable'
  >

  getDelegationRatio: TypedContractMethod<[], [bigint], 'view'>

  getProvisionTokensRange: TypedContractMethod<[], [[bigint, bigint]], 'view'>

  getThawingPeriodRange: TypedContractMethod<[], [[bigint, bigint]], 'view'>

  getVerifierCutRange: TypedContractMethod<[], [[bigint, bigint]], 'view'>

  pause: TypedContractMethod<[], [void], 'nonpayable'>

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

  paused: TypedContractMethod<[], [boolean], 'view'>

  register: TypedContractMethod<[serviceProvider: AddressLike, data: BytesLike], [void], 'nonpayable'>

  slash: TypedContractMethod<[serviceProvider: AddressLike, data: BytesLike], [void], 'nonpayable'>

  startService: TypedContractMethod<[serviceProvider: AddressLike, data: BytesLike], [void], 'nonpayable'>

  stopService: TypedContractMethod<[serviceProvider: AddressLike, data: BytesLike], [void], 'nonpayable'>

  unpause: TypedContractMethod<[], [void], 'nonpayable'>

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

  getFunction(
    nameOrSignature: 'acceptProvisionPendingParameters',
  ): TypedContractMethod<[serviceProvider: AddressLike, data: BytesLike], [void], 'nonpayable'>
  getFunction(
    nameOrSignature: 'collect',
  ): TypedContractMethod<[serviceProvider: AddressLike, feeType: BigNumberish, data: BytesLike], [bigint], 'nonpayable'>
  getFunction(nameOrSignature: 'getDelegationRatio'): TypedContractMethod<[], [bigint], 'view'>
  getFunction(nameOrSignature: 'getProvisionTokensRange'): TypedContractMethod<[], [[bigint, bigint]], 'view'>
  getFunction(nameOrSignature: 'getThawingPeriodRange'): TypedContractMethod<[], [[bigint, bigint]], 'view'>
  getFunction(nameOrSignature: 'getVerifierCutRange'): TypedContractMethod<[], [[bigint, bigint]], 'view'>
  getFunction(nameOrSignature: 'pause'): TypedContractMethod<[], [void], 'nonpayable'>
  getFunction(nameOrSignature: 'pauseGuardians'): TypedContractMethod<[pauseGuardian: AddressLike], [boolean], 'view'>
  getFunction(nameOrSignature: 'paused'): TypedContractMethod<[], [boolean], 'view'>
  getFunction(
    nameOrSignature: 'register',
  ): TypedContractMethod<[serviceProvider: AddressLike, data: BytesLike], [void], 'nonpayable'>
  getFunction(
    nameOrSignature: 'slash',
  ): TypedContractMethod<[serviceProvider: AddressLike, data: BytesLike], [void], 'nonpayable'>
  getFunction(
    nameOrSignature: 'startService',
  ): TypedContractMethod<[serviceProvider: AddressLike, data: BytesLike], [void], 'nonpayable'>
  getFunction(
    nameOrSignature: 'stopService',
  ): TypedContractMethod<[serviceProvider: AddressLike, data: BytesLike], [void], 'nonpayable'>
  getFunction(nameOrSignature: 'unpause'): TypedContractMethod<[], [void], 'nonpayable'>

  getEvent(
    key: 'DelegationRatioSet',
  ): TypedContractEvent<
    DelegationRatioSetEvent.InputTuple,
    DelegationRatioSetEvent.OutputTuple,
    DelegationRatioSetEvent.OutputObject
  >
  getEvent(
    key: 'GraphDirectoryInitialized',
  ): TypedContractEvent<
    GraphDirectoryInitializedEvent.InputTuple,
    GraphDirectoryInitializedEvent.OutputTuple,
    GraphDirectoryInitializedEvent.OutputObject
  >
  getEvent(
    key: 'Initialized',
  ): TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>
  getEvent(
    key: 'PauseGuardianSet',
  ): TypedContractEvent<
    PauseGuardianSetEvent.InputTuple,
    PauseGuardianSetEvent.OutputTuple,
    PauseGuardianSetEvent.OutputObject
  >
  getEvent(key: 'Paused'): TypedContractEvent<PausedEvent.InputTuple, PausedEvent.OutputTuple, PausedEvent.OutputObject>
  getEvent(
    key: 'ProvisionPendingParametersAccepted',
  ): TypedContractEvent<
    ProvisionPendingParametersAcceptedEvent.InputTuple,
    ProvisionPendingParametersAcceptedEvent.OutputTuple,
    ProvisionPendingParametersAcceptedEvent.OutputObject
  >
  getEvent(
    key: 'ProvisionTokensRangeSet',
  ): TypedContractEvent<
    ProvisionTokensRangeSetEvent.InputTuple,
    ProvisionTokensRangeSetEvent.OutputTuple,
    ProvisionTokensRangeSetEvent.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: '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: {
    'DelegationRatioSet(uint32)': TypedContractEvent<
      DelegationRatioSetEvent.InputTuple,
      DelegationRatioSetEvent.OutputTuple,
      DelegationRatioSetEvent.OutputObject
    >
    DelegationRatioSet: TypedContractEvent<
      DelegationRatioSetEvent.InputTuple,
      DelegationRatioSetEvent.OutputTuple,
      DelegationRatioSetEvent.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
    >

    'Initialized(uint64)': TypedContractEvent<
      InitializedEvent.InputTuple,
      InitializedEvent.OutputTuple,
      InitializedEvent.OutputObject
    >
    Initialized: TypedContractEvent<
      InitializedEvent.InputTuple,
      InitializedEvent.OutputTuple,
      InitializedEvent.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>

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

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

    '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
    >
  }
}
