/* 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 type HEADRequestStruct = {
  path: string;
  ifModifiedSince: BigNumberish;
  ifNoneMatch: BytesLike;
};

export type HEADRequestStructOutput = [
  path: string,
  ifModifiedSince: bigint,
  ifNoneMatch: string
] & { path: string; ifModifiedSince: bigint; ifNoneMatch: string };

export type CacheControlStruct = {
  immutableFlag: boolean;
  preset: BigNumberish;
  custom: string;
};

export type CacheControlStructOutput = [
  immutableFlag: boolean,
  preset: bigint,
  custom: string
] & { immutableFlag: boolean; preset: bigint; custom: string };

export type CORSPolicyStruct = {
  methods: BigNumberish;
  origins: BytesLike[];
  preset: BigNumberish;
  custom: string;
};

export type CORSPolicyStructOutput = [
  methods: bigint,
  origins: string[],
  preset: bigint,
  custom: string
] & { methods: bigint; origins: string[]; preset: bigint; custom: string };

export type RedirectStruct = { code: BigNumberish; location: string };

export type RedirectStructOutput = [code: bigint, location: string] & {
  code: bigint;
  location: string;
};

export type HeaderInfoStruct = {
  cache: CacheControlStruct;
  cors: CORSPolicyStruct;
  redirect: RedirectStruct;
};

export type HeaderInfoStructOutput = [
  cache: CacheControlStructOutput,
  cors: CORSPolicyStructOutput,
  redirect: RedirectStructOutput
] & {
  cache: CacheControlStructOutput;
  cors: CORSPolicyStructOutput;
  redirect: RedirectStructOutput;
};

export type DEFINERequestStruct = {
  head: HEADRequestStruct;
  data: HeaderInfoStruct;
};

export type DEFINERequestStructOutput = [
  head: HEADRequestStructOutput,
  data: HeaderInfoStructOutput
] & { head: HEADRequestStructOutput; data: HeaderInfoStructOutput };

export type ResourcePropertiesStruct = {
  mimeType: BytesLike;
  charset: BytesLike;
  encoding: BytesLike;
  language: BytesLike;
};

export type ResourcePropertiesStructOutput = [
  mimeType: string,
  charset: string,
  encoding: string,
  language: string
] & { mimeType: string; charset: string; encoding: string; language: string };

export type ResourceMetadataStruct = {
  properties: ResourcePropertiesStruct;
  size: BigNumberish;
  version: BigNumberish;
  lastModified: BigNumberish;
  header: BytesLike;
};

export type ResourceMetadataStructOutput = [
  properties: ResourcePropertiesStructOutput,
  size: bigint,
  version: bigint,
  lastModified: bigint,
  header: string
] & {
  properties: ResourcePropertiesStructOutput;
  size: bigint;
  version: bigint;
  lastModified: bigint;
  header: string;
};

export type HEADResponseStruct = {
  status: BigNumberish;
  headerInfo: HeaderInfoStruct;
  metadata: ResourceMetadataStruct;
  etag: BytesLike;
};

export type HEADResponseStructOutput = [
  status: bigint,
  headerInfo: HeaderInfoStructOutput,
  metadata: ResourceMetadataStructOutput,
  etag: string
] & {
  status: bigint;
  headerInfo: HeaderInfoStructOutput;
  metadata: ResourceMetadataStructOutput;
  etag: string;
};

export type DEFINEResponseStruct = {
  head: HEADResponseStruct;
  headerAddress: BytesLike;
};

export type DEFINEResponseStructOutput = [
  head: HEADResponseStructOutput,
  headerAddress: string
] & { head: HEADResponseStructOutput; headerAddress: string };

export type RangeStruct = { start: BigNumberish; end: BigNumberish };

export type RangeStructOutput = [start: bigint, end: bigint] & {
  start: bigint;
  end: bigint;
};

export type LOCATERequestStruct = {
  head: HEADRequestStruct;
  rangeChunks: RangeStruct;
};

export type LOCATERequestStructOutput = [
  head: HEADRequestStructOutput,
  rangeChunks: RangeStructOutput
] & { head: HEADRequestStructOutput; rangeChunks: RangeStructOutput };

export type ResourceResponseStruct = {
  dataPoints: BytesLike[];
  totalChunks: BigNumberish;
};

export type ResourceResponseStructOutput = [
  dataPoints: string[],
  totalChunks: bigint
] & { dataPoints: string[]; totalChunks: bigint };

export type LOCATEResponseStruct = {
  head: HEADResponseStruct;
  resource: ResourceResponseStruct;
};

export type LOCATEResponseStructOutput = [
  head: HEADResponseStructOutput,
  resource: ResourceResponseStructOutput
] & { head: HEADResponseStructOutput; resource: ResourceResponseStructOutput };

export type OPTIONSResponseStruct = {
  status: BigNumberish;
  allow: BigNumberish;
};

export type OPTIONSResponseStructOutput = [status: bigint, allow: bigint] & {
  status: bigint;
  allow: bigint;
};

export type DataRegistrationStruct = {
  data: BytesLike;
  chunkIndex: BigNumberish;
  publisher: AddressLike;
};

export type DataRegistrationStructOutput = [
  data: string,
  chunkIndex: bigint,
  publisher: string
] & { data: string; chunkIndex: bigint; publisher: string };

export type PATCHRequestStruct = {
  head: HEADRequestStruct;
  data: DataRegistrationStruct[];
};

export type PATCHRequestStructOutput = [
  head: HEADRequestStructOutput,
  data: DataRegistrationStructOutput[]
] & { head: HEADRequestStructOutput; data: DataRegistrationStructOutput[] };

export type PUTRequestStruct = {
  head: HEADRequestStruct;
  properties: ResourcePropertiesStruct;
  data: DataRegistrationStruct[];
};

export type PUTRequestStructOutput = [
  head: HEADRequestStructOutput,
  properties: ResourcePropertiesStructOutput,
  data: DataRegistrationStructOutput[]
] & {
  head: HEADRequestStructOutput;
  properties: ResourcePropertiesStructOutput;
  data: DataRegistrationStructOutput[];
};

export interface ExtendedWTTPSiteInterface extends Interface {
  getFunction(
    nameOrSignature:
      | "DEFAULT_ADMIN_ROLE"
      | "DEFINE"
      | "DELETE"
      | "GET"
      | "HEAD"
      | "OPTIONS"
      | "PATCH"
      | "PUT"
      | "allowedOrigins"
      | "changeSiteAdmin"
      | "createResourceRole"
      | "defaultOrigins"
      | "getRoleAdmin"
      | "getSiteAdminRole"
      | "grantRole"
      | "hasRole"
      | "renounceRole"
      | "resourceOrigins"
      | "revokeRole"
      | "setDefaultOrigins"
      | "setResourceOrigins"
      | "site"
      | "supportsInterface"
  ): FunctionFragment;

  getEvent(
    nameOrSignatureOrTopic:
      | "OriginUpdated"
      | "ResourceRoleCreated"
      | "RoleAdminChanged"
      | "RoleGranted"
      | "RoleRevoked"
      | "SiteAdminChanged"
  ): EventFragment;

  encodeFunctionData(
    functionFragment: "DEFAULT_ADMIN_ROLE",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "DEFINE",
    values: [DEFINERequestStruct]
  ): string;
  encodeFunctionData(
    functionFragment: "DELETE",
    values: [HEADRequestStruct]
  ): string;
  encodeFunctionData(
    functionFragment: "GET",
    values: [LOCATERequestStruct]
  ): string;
  encodeFunctionData(
    functionFragment: "HEAD",
    values: [HEADRequestStruct]
  ): string;
  encodeFunctionData(functionFragment: "OPTIONS", values: [string]): string;
  encodeFunctionData(
    functionFragment: "PATCH",
    values: [PATCHRequestStruct]
  ): string;
  encodeFunctionData(
    functionFragment: "PUT",
    values: [PUTRequestStruct]
  ): string;
  encodeFunctionData(
    functionFragment: "allowedOrigins",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "changeSiteAdmin",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "createResourceRole",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "defaultOrigins",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getRoleAdmin",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getSiteAdminRole",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "grantRole",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "hasRole",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "renounceRole",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "resourceOrigins",
    values: [string, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "revokeRole",
    values: [BytesLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setDefaultOrigins",
    values: [BytesLike[]]
  ): string;
  encodeFunctionData(
    functionFragment: "setResourceOrigins",
    values: [string, BytesLike[]]
  ): string;
  encodeFunctionData(functionFragment: "site", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "supportsInterface",
    values: [BytesLike]
  ): string;

  decodeFunctionResult(
    functionFragment: "DEFAULT_ADMIN_ROLE",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "DEFINE", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "DELETE", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "GET", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "HEAD", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "OPTIONS", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "PATCH", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "PUT", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "allowedOrigins",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "changeSiteAdmin",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "createResourceRole",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "defaultOrigins",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getRoleAdmin",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getSiteAdminRole",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "renounceRole",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "resourceOrigins",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "setDefaultOrigins",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setResourceOrigins",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "site", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "supportsInterface",
    data: BytesLike
  ): Result;
}

export namespace OriginUpdatedEvent {
  export type InputTuple = [_path: string, _origins: BytesLike[]];
  export type OutputTuple = [_path: string, _origins: string[]];
  export interface OutputObject {
    _path: string;
    _origins: 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 ResourceRoleCreatedEvent {
  export type InputTuple = [role: BytesLike];
  export type OutputTuple = [role: string];
  export interface OutputObject {
    role: 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 RoleAdminChangedEvent {
  export type InputTuple = [
    role: BytesLike,
    previousAdminRole: BytesLike,
    newAdminRole: BytesLike
  ];
  export type OutputTuple = [
    role: string,
    previousAdminRole: string,
    newAdminRole: string
  ];
  export interface OutputObject {
    role: string;
    previousAdminRole: string;
    newAdminRole: 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 RoleGrantedEvent {
  export type InputTuple = [
    role: BytesLike,
    account: AddressLike,
    sender: AddressLike
  ];
  export type OutputTuple = [role: string, account: string, sender: string];
  export interface OutputObject {
    role: string;
    account: string;
    sender: 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 RoleRevokedEvent {
  export type InputTuple = [
    role: BytesLike,
    account: AddressLike,
    sender: AddressLike
  ];
  export type OutputTuple = [role: string, account: string, sender: string];
  export interface OutputObject {
    role: string;
    account: string;
    sender: 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 SiteAdminChangedEvent {
  export type InputTuple = [oldSiteAdmin: BytesLike, newSiteAdmin: BytesLike];
  export type OutputTuple = [oldSiteAdmin: string, newSiteAdmin: string];
  export interface OutputObject {
    oldSiteAdmin: string;
    newSiteAdmin: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

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

  interface: ExtendedWTTPSiteInterface;

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

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

  DEFINE: TypedContractMethod<
    [_request: DEFINERequestStruct],
    [DEFINEResponseStructOutput],
    "nonpayable"
  >;

  DELETE: TypedContractMethod<
    [_request: HEADRequestStruct],
    [HEADResponseStructOutput],
    "nonpayable"
  >;

  GET: TypedContractMethod<
    [_request: LOCATERequestStruct],
    [LOCATEResponseStructOutput],
    "view"
  >;

  HEAD: TypedContractMethod<
    [_request: HEADRequestStruct],
    [HEADResponseStructOutput],
    "view"
  >;

  OPTIONS: TypedContractMethod<
    [_path: string],
    [OPTIONSResponseStructOutput],
    "view"
  >;

  PATCH: TypedContractMethod<
    [_request: PATCHRequestStruct],
    [LOCATEResponseStructOutput],
    "payable"
  >;

  PUT: TypedContractMethod<
    [_request: PUTRequestStruct],
    [LOCATEResponseStructOutput],
    "payable"
  >;

  allowedOrigins: TypedContractMethod<[arg0: AddressLike], [boolean], "view">;

  changeSiteAdmin: TypedContractMethod<
    [_newSiteAdmin: BytesLike],
    [void],
    "nonpayable"
  >;

  createResourceRole: TypedContractMethod<
    [_role: BytesLike],
    [void],
    "nonpayable"
  >;

  defaultOrigins: TypedContractMethod<[arg0: BigNumberish], [string], "view">;

  getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">;

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

  grantRole: TypedContractMethod<
    [role: BytesLike, account: AddressLike],
    [void],
    "nonpayable"
  >;

  hasRole: TypedContractMethod<
    [role: BytesLike, account: AddressLike],
    [boolean],
    "view"
  >;

  renounceRole: TypedContractMethod<
    [role: BytesLike, callerConfirmation: AddressLike],
    [void],
    "nonpayable"
  >;

  resourceOrigins: TypedContractMethod<
    [arg0: string, arg1: BigNumberish],
    [string],
    "view"
  >;

  revokeRole: TypedContractMethod<
    [role: BytesLike, account: AddressLike],
    [void],
    "nonpayable"
  >;

  setDefaultOrigins: TypedContractMethod<
    [_defaultOrigins: BytesLike[]],
    [void],
    "nonpayable"
  >;

  setResourceOrigins: TypedContractMethod<
    [_path: string, _origins: BytesLike[]],
    [void],
    "nonpayable"
  >;

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

  supportsInterface: TypedContractMethod<
    [interfaceId: BytesLike],
    [boolean],
    "view"
  >;

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

  getFunction(
    nameOrSignature: "DEFAULT_ADMIN_ROLE"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "DEFINE"
  ): TypedContractMethod<
    [_request: DEFINERequestStruct],
    [DEFINEResponseStructOutput],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "DELETE"
  ): TypedContractMethod<
    [_request: HEADRequestStruct],
    [HEADResponseStructOutput],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "GET"
  ): TypedContractMethod<
    [_request: LOCATERequestStruct],
    [LOCATEResponseStructOutput],
    "view"
  >;
  getFunction(
    nameOrSignature: "HEAD"
  ): TypedContractMethod<
    [_request: HEADRequestStruct],
    [HEADResponseStructOutput],
    "view"
  >;
  getFunction(
    nameOrSignature: "OPTIONS"
  ): TypedContractMethod<
    [_path: string],
    [OPTIONSResponseStructOutput],
    "view"
  >;
  getFunction(
    nameOrSignature: "PATCH"
  ): TypedContractMethod<
    [_request: PATCHRequestStruct],
    [LOCATEResponseStructOutput],
    "payable"
  >;
  getFunction(
    nameOrSignature: "PUT"
  ): TypedContractMethod<
    [_request: PUTRequestStruct],
    [LOCATEResponseStructOutput],
    "payable"
  >;
  getFunction(
    nameOrSignature: "allowedOrigins"
  ): TypedContractMethod<[arg0: AddressLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "changeSiteAdmin"
  ): TypedContractMethod<[_newSiteAdmin: BytesLike], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "createResourceRole"
  ): TypedContractMethod<[_role: BytesLike], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "defaultOrigins"
  ): TypedContractMethod<[arg0: BigNumberish], [string], "view">;
  getFunction(
    nameOrSignature: "getRoleAdmin"
  ): TypedContractMethod<[role: BytesLike], [string], "view">;
  getFunction(
    nameOrSignature: "getSiteAdminRole"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "grantRole"
  ): TypedContractMethod<
    [role: BytesLike, account: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "hasRole"
  ): TypedContractMethod<
    [role: BytesLike, account: AddressLike],
    [boolean],
    "view"
  >;
  getFunction(
    nameOrSignature: "renounceRole"
  ): TypedContractMethod<
    [role: BytesLike, callerConfirmation: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "resourceOrigins"
  ): TypedContractMethod<[arg0: string, arg1: BigNumberish], [string], "view">;
  getFunction(
    nameOrSignature: "revokeRole"
  ): TypedContractMethod<
    [role: BytesLike, account: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setDefaultOrigins"
  ): TypedContractMethod<[_defaultOrigins: BytesLike[]], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "setResourceOrigins"
  ): TypedContractMethod<
    [_path: string, _origins: BytesLike[]],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "site"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "supportsInterface"
  ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">;

  getEvent(
    key: "OriginUpdated"
  ): TypedContractEvent<
    OriginUpdatedEvent.InputTuple,
    OriginUpdatedEvent.OutputTuple,
    OriginUpdatedEvent.OutputObject
  >;
  getEvent(
    key: "ResourceRoleCreated"
  ): TypedContractEvent<
    ResourceRoleCreatedEvent.InputTuple,
    ResourceRoleCreatedEvent.OutputTuple,
    ResourceRoleCreatedEvent.OutputObject
  >;
  getEvent(
    key: "RoleAdminChanged"
  ): TypedContractEvent<
    RoleAdminChangedEvent.InputTuple,
    RoleAdminChangedEvent.OutputTuple,
    RoleAdminChangedEvent.OutputObject
  >;
  getEvent(
    key: "RoleGranted"
  ): TypedContractEvent<
    RoleGrantedEvent.InputTuple,
    RoleGrantedEvent.OutputTuple,
    RoleGrantedEvent.OutputObject
  >;
  getEvent(
    key: "RoleRevoked"
  ): TypedContractEvent<
    RoleRevokedEvent.InputTuple,
    RoleRevokedEvent.OutputTuple,
    RoleRevokedEvent.OutputObject
  >;
  getEvent(
    key: "SiteAdminChanged"
  ): TypedContractEvent<
    SiteAdminChangedEvent.InputTuple,
    SiteAdminChangedEvent.OutputTuple,
    SiteAdminChangedEvent.OutputObject
  >;

  filters: {
    "OriginUpdated(string,bytes32[])": TypedContractEvent<
      OriginUpdatedEvent.InputTuple,
      OriginUpdatedEvent.OutputTuple,
      OriginUpdatedEvent.OutputObject
    >;
    OriginUpdated: TypedContractEvent<
      OriginUpdatedEvent.InputTuple,
      OriginUpdatedEvent.OutputTuple,
      OriginUpdatedEvent.OutputObject
    >;

    "ResourceRoleCreated(bytes32)": TypedContractEvent<
      ResourceRoleCreatedEvent.InputTuple,
      ResourceRoleCreatedEvent.OutputTuple,
      ResourceRoleCreatedEvent.OutputObject
    >;
    ResourceRoleCreated: TypedContractEvent<
      ResourceRoleCreatedEvent.InputTuple,
      ResourceRoleCreatedEvent.OutputTuple,
      ResourceRoleCreatedEvent.OutputObject
    >;

    "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent<
      RoleAdminChangedEvent.InputTuple,
      RoleAdminChangedEvent.OutputTuple,
      RoleAdminChangedEvent.OutputObject
    >;
    RoleAdminChanged: TypedContractEvent<
      RoleAdminChangedEvent.InputTuple,
      RoleAdminChangedEvent.OutputTuple,
      RoleAdminChangedEvent.OutputObject
    >;

    "RoleGranted(bytes32,address,address)": TypedContractEvent<
      RoleGrantedEvent.InputTuple,
      RoleGrantedEvent.OutputTuple,
      RoleGrantedEvent.OutputObject
    >;
    RoleGranted: TypedContractEvent<
      RoleGrantedEvent.InputTuple,
      RoleGrantedEvent.OutputTuple,
      RoleGrantedEvent.OutputObject
    >;

    "RoleRevoked(bytes32,address,address)": TypedContractEvent<
      RoleRevokedEvent.InputTuple,
      RoleRevokedEvent.OutputTuple,
      RoleRevokedEvent.OutputObject
    >;
    RoleRevoked: TypedContractEvent<
      RoleRevokedEvent.InputTuple,
      RoleRevokedEvent.OutputTuple,
      RoleRevokedEvent.OutputObject
    >;

    "SiteAdminChanged(bytes32,bytes32)": TypedContractEvent<
      SiteAdminChangedEvent.InputTuple,
      SiteAdminChangedEvent.OutputTuple,
      SiteAdminChangedEvent.OutputObject
    >;
    SiteAdminChanged: TypedContractEvent<
      SiteAdminChangedEvent.InputTuple,
      SiteAdminChangedEvent.OutputTuple,
      SiteAdminChangedEvent.OutputObject
    >;
  };
}
