/* 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 RedStoneAbiInterface extends Interface {
  getFunction(
    nameOrSignature:
      | "aggregateValues"
      | "aggregator"
      | "decimals"
      | "description"
      | "extractTimestampsAndAssertAllAreEqual"
      | "getAllowedTimestampDiffsInSeconds"
      | "getAuthorisedSignerIndex"
      | "getBlockTimestamp"
      | "getBlockTimestampFromLatestUpdate"
      | "getDataFeedId"
      | "getDataFeedIds"
      | "getDataFeedIndex"
      | "getDataServiceId"
      | "getDataTimestampFromLatestUpdate"
      | "getLatestRoundId"
      | "getLatestRoundParams"
      | "getMinIntervalBetweenUpdates"
      | "getPackedTimestampsForRound"
      | "getPackedTimestampsFromLatestUpdate"
      | "getPriceFeedAdapter"
      | "getPriceFeedAdapterWithRounds"
      | "getRoundData"
      | "getRoundDataFromAdapter"
      | "getTimestampsFromLatestUpdate"
      | "getUniqueSignersThreshold"
      | "getValueForDataFeed"
      | "getValueForDataFeedAndRound"
      | "getValueForDataFeedUnsafe"
      | "getValuesForDataFeeds"
      | "getValuesForDataFeedsUnsafe"
      | "initialize"
      | "latestAnswer"
      | "latestRound"
      | "latestRoundData"
      | "requireAuthorisedUpdater"
      | "updateDataFeedsValues"
      | "validateDataFeedValueOnRead"
      | "validateDataFeedValueOnWrite"
      | "validateDataPackagesTimestampOnce"
      | "validateProposedDataPackagesTimestamp"
      | "validateTimestamp"
      | "version"
  ): FunctionFragment;

  getEvent(
    nameOrSignatureOrTopic: "AnswerUpdated" | "Initialized"
  ): EventFragment;

  encodeFunctionData(
    functionFragment: "aggregateValues",
    values: [BigNumberish[]]
  ): string;
  encodeFunctionData(
    functionFragment: "aggregator",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "description",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "extractTimestampsAndAssertAllAreEqual",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getAllowedTimestampDiffsInSeconds",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getAuthorisedSignerIndex",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getBlockTimestamp",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getBlockTimestampFromLatestUpdate",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getDataFeedId",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getDataFeedIds",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getDataFeedIndex",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getDataServiceId",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getDataTimestampFromLatestUpdate",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getLatestRoundId",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getLatestRoundParams",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getMinIntervalBetweenUpdates",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getPackedTimestampsForRound",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getPackedTimestampsFromLatestUpdate",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getPriceFeedAdapter",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getPriceFeedAdapterWithRounds",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getRoundData",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getRoundDataFromAdapter",
    values: [BytesLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getTimestampsFromLatestUpdate",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getUniqueSignersThreshold",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getValueForDataFeed",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getValueForDataFeedAndRound",
    values: [BytesLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getValueForDataFeedUnsafe",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getValuesForDataFeeds",
    values: [BytesLike[]]
  ): string;
  encodeFunctionData(
    functionFragment: "getValuesForDataFeedsUnsafe",
    values: [BytesLike[]]
  ): string;
  encodeFunctionData(
    functionFragment: "initialize",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "latestAnswer",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "latestRound",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "latestRoundData",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "requireAuthorisedUpdater",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "updateDataFeedsValues",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "validateDataFeedValueOnRead",
    values: [BytesLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "validateDataFeedValueOnWrite",
    values: [BytesLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "validateDataPackagesTimestampOnce",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "validateProposedDataPackagesTimestamp",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "validateTimestamp",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(functionFragment: "version", values?: undefined): string;

  decodeFunctionResult(
    functionFragment: "aggregateValues",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "aggregator", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "description",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "extractTimestampsAndAssertAllAreEqual",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getAllowedTimestampDiffsInSeconds",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getAuthorisedSignerIndex",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getBlockTimestamp",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getBlockTimestampFromLatestUpdate",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getDataFeedId",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getDataFeedIds",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getDataFeedIndex",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getDataServiceId",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getDataTimestampFromLatestUpdate",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getLatestRoundId",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getLatestRoundParams",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getMinIntervalBetweenUpdates",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getPackedTimestampsForRound",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getPackedTimestampsFromLatestUpdate",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getPriceFeedAdapter",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getPriceFeedAdapterWithRounds",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getRoundData",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getRoundDataFromAdapter",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getTimestampsFromLatestUpdate",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getUniqueSignersThreshold",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getValueForDataFeed",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getValueForDataFeedAndRound",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getValueForDataFeedUnsafe",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getValuesForDataFeeds",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getValuesForDataFeedsUnsafe",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "latestAnswer",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "latestRound",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "latestRoundData",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "requireAuthorisedUpdater",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "updateDataFeedsValues",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "validateDataFeedValueOnRead",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "validateDataFeedValueOnWrite",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "validateDataPackagesTimestampOnce",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "validateProposedDataPackagesTimestamp",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "validateTimestamp",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "version", data: BytesLike): Result;
}

export namespace AnswerUpdatedEvent {
  export type InputTuple = [
    current: BigNumberish,
    roundId: BigNumberish,
    updatedAt: BigNumberish
  ];
  export type OutputTuple = [
    current: bigint,
    roundId: bigint,
    updatedAt: bigint
  ];
  export interface OutputObject {
    current: bigint;
    roundId: bigint;
    updatedAt: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace InitializedEvent {
  export type InputTuple = [version: BigNumberish];
  export type OutputTuple = [version: bigint];
  export interface OutputObject {
    version: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

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

  interface: RedStoneAbiInterface;

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

  aggregateValues: TypedContractMethod<
    [values: BigNumberish[]],
    [bigint],
    "view"
  >;

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

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

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

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

  getAllowedTimestampDiffsInSeconds: TypedContractMethod<
    [],
    [
      [bigint, bigint] & {
        maxDataAheadSeconds: bigint;
        maxDataDelaySeconds: bigint;
      }
    ],
    "view"
  >;

  getAuthorisedSignerIndex: TypedContractMethod<
    [signerAddress: AddressLike],
    [bigint],
    "view"
  >;

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

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

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

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

  getDataFeedIndex: TypedContractMethod<
    [dataFeedId: BytesLike],
    [bigint],
    "view"
  >;

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

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

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

  getLatestRoundParams: TypedContractMethod<
    [],
    [
      [bigint, bigint, bigint] & {
        latestRoundId: bigint;
        latestRoundDataTimestamp: bigint;
        latestRoundBlockTimestamp: bigint;
      }
    ],
    "view"
  >;

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

  getPackedTimestampsForRound: TypedContractMethod<
    [roundId: BigNumberish],
    [bigint],
    "view"
  >;

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

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

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

  getRoundData: TypedContractMethod<
    [requestedRoundId: BigNumberish],
    [
      [bigint, bigint, bigint, bigint, bigint] & {
        roundId: bigint;
        answer: bigint;
        startedAt: bigint;
        updatedAt: bigint;
        answeredInRound: bigint;
      }
    ],
    "view"
  >;

  getRoundDataFromAdapter: TypedContractMethod<
    [dataFeedId: BytesLike, roundId: BigNumberish],
    [
      [bigint, bigint, bigint] & {
        dataFeedValue: bigint;
        roundDataTimestamp: bigint;
        roundBlockTimestamp: bigint;
      }
    ],
    "view"
  >;

  getTimestampsFromLatestUpdate: TypedContractMethod<
    [],
    [[bigint, bigint] & { dataTimestamp: bigint; blockTimestamp: bigint }],
    "view"
  >;

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

  getValueForDataFeed: TypedContractMethod<
    [dataFeedId: BytesLike],
    [bigint],
    "view"
  >;

  getValueForDataFeedAndRound: TypedContractMethod<
    [dataFeedId: BytesLike, roundId: BigNumberish],
    [bigint],
    "view"
  >;

  getValueForDataFeedUnsafe: TypedContractMethod<
    [dataFeedId: BytesLike],
    [bigint],
    "view"
  >;

  getValuesForDataFeeds: TypedContractMethod<
    [dataFeedIds: BytesLike[]],
    [bigint[]],
    "view"
  >;

  getValuesForDataFeedsUnsafe: TypedContractMethod<
    [requestedDataFeedIds: BytesLike[]],
    [bigint[]],
    "view"
  >;

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

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

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

  latestRoundData: TypedContractMethod<
    [],
    [
      [bigint, bigint, bigint, bigint, bigint] & {
        roundId: bigint;
        answer: bigint;
        startedAt: bigint;
        updatedAt: bigint;
        answeredInRound: bigint;
      }
    ],
    "view"
  >;

  requireAuthorisedUpdater: TypedContractMethod<
    [updater: AddressLike],
    [void],
    "view"
  >;

  updateDataFeedsValues: TypedContractMethod<
    [dataPackagesTimestamp: BigNumberish],
    [void],
    "nonpayable"
  >;

  validateDataFeedValueOnRead: TypedContractMethod<
    [dataFeedId: BytesLike, valueForDataFeed: BigNumberish],
    [void],
    "view"
  >;

  validateDataFeedValueOnWrite: TypedContractMethod<
    [dataFeedId: BytesLike, valueForDataFeed: BigNumberish],
    [void],
    "view"
  >;

  validateDataPackagesTimestampOnce: TypedContractMethod<
    [dataPackagesTimestamp: BigNumberish],
    [void],
    "view"
  >;

  validateProposedDataPackagesTimestamp: TypedContractMethod<
    [dataPackagesTimestamp: BigNumberish],
    [void],
    "view"
  >;

  validateTimestamp: TypedContractMethod<
    [receivedTimestampMilliseconds: BigNumberish],
    [void],
    "view"
  >;

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

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

  getFunction(
    nameOrSignature: "aggregateValues"
  ): TypedContractMethod<[values: BigNumberish[]], [bigint], "view">;
  getFunction(
    nameOrSignature: "aggregator"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "decimals"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "description"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "extractTimestampsAndAssertAllAreEqual"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getAllowedTimestampDiffsInSeconds"
  ): TypedContractMethod<
    [],
    [
      [bigint, bigint] & {
        maxDataAheadSeconds: bigint;
        maxDataDelaySeconds: bigint;
      }
    ],
    "view"
  >;
  getFunction(
    nameOrSignature: "getAuthorisedSignerIndex"
  ): TypedContractMethod<[signerAddress: AddressLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "getBlockTimestamp"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getBlockTimestampFromLatestUpdate"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getDataFeedId"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "getDataFeedIds"
  ): TypedContractMethod<[], [string[]], "view">;
  getFunction(
    nameOrSignature: "getDataFeedIndex"
  ): TypedContractMethod<[dataFeedId: BytesLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "getDataServiceId"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "getDataTimestampFromLatestUpdate"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getLatestRoundId"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getLatestRoundParams"
  ): TypedContractMethod<
    [],
    [
      [bigint, bigint, bigint] & {
        latestRoundId: bigint;
        latestRoundDataTimestamp: bigint;
        latestRoundBlockTimestamp: bigint;
      }
    ],
    "view"
  >;
  getFunction(
    nameOrSignature: "getMinIntervalBetweenUpdates"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getPackedTimestampsForRound"
  ): TypedContractMethod<[roundId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "getPackedTimestampsFromLatestUpdate"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getPriceFeedAdapter"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "getPriceFeedAdapterWithRounds"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "getRoundData"
  ): TypedContractMethod<
    [requestedRoundId: BigNumberish],
    [
      [bigint, bigint, bigint, bigint, bigint] & {
        roundId: bigint;
        answer: bigint;
        startedAt: bigint;
        updatedAt: bigint;
        answeredInRound: bigint;
      }
    ],
    "view"
  >;
  getFunction(
    nameOrSignature: "getRoundDataFromAdapter"
  ): TypedContractMethod<
    [dataFeedId: BytesLike, roundId: BigNumberish],
    [
      [bigint, bigint, bigint] & {
        dataFeedValue: bigint;
        roundDataTimestamp: bigint;
        roundBlockTimestamp: bigint;
      }
    ],
    "view"
  >;
  getFunction(
    nameOrSignature: "getTimestampsFromLatestUpdate"
  ): TypedContractMethod<
    [],
    [[bigint, bigint] & { dataTimestamp: bigint; blockTimestamp: bigint }],
    "view"
  >;
  getFunction(
    nameOrSignature: "getUniqueSignersThreshold"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getValueForDataFeed"
  ): TypedContractMethod<[dataFeedId: BytesLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "getValueForDataFeedAndRound"
  ): TypedContractMethod<
    [dataFeedId: BytesLike, roundId: BigNumberish],
    [bigint],
    "view"
  >;
  getFunction(
    nameOrSignature: "getValueForDataFeedUnsafe"
  ): TypedContractMethod<[dataFeedId: BytesLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "getValuesForDataFeeds"
  ): TypedContractMethod<[dataFeedIds: BytesLike[]], [bigint[]], "view">;
  getFunction(
    nameOrSignature: "getValuesForDataFeedsUnsafe"
  ): TypedContractMethod<
    [requestedDataFeedIds: BytesLike[]],
    [bigint[]],
    "view"
  >;
  getFunction(
    nameOrSignature: "initialize"
  ): TypedContractMethod<[], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "latestAnswer"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "latestRound"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "latestRoundData"
  ): TypedContractMethod<
    [],
    [
      [bigint, bigint, bigint, bigint, bigint] & {
        roundId: bigint;
        answer: bigint;
        startedAt: bigint;
        updatedAt: bigint;
        answeredInRound: bigint;
      }
    ],
    "view"
  >;
  getFunction(
    nameOrSignature: "requireAuthorisedUpdater"
  ): TypedContractMethod<[updater: AddressLike], [void], "view">;
  getFunction(
    nameOrSignature: "updateDataFeedsValues"
  ): TypedContractMethod<
    [dataPackagesTimestamp: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "validateDataFeedValueOnRead"
  ): TypedContractMethod<
    [dataFeedId: BytesLike, valueForDataFeed: BigNumberish],
    [void],
    "view"
  >;
  getFunction(
    nameOrSignature: "validateDataFeedValueOnWrite"
  ): TypedContractMethod<
    [dataFeedId: BytesLike, valueForDataFeed: BigNumberish],
    [void],
    "view"
  >;
  getFunction(
    nameOrSignature: "validateDataPackagesTimestampOnce"
  ): TypedContractMethod<[dataPackagesTimestamp: BigNumberish], [void], "view">;
  getFunction(
    nameOrSignature: "validateProposedDataPackagesTimestamp"
  ): TypedContractMethod<[dataPackagesTimestamp: BigNumberish], [void], "view">;
  getFunction(
    nameOrSignature: "validateTimestamp"
  ): TypedContractMethod<
    [receivedTimestampMilliseconds: BigNumberish],
    [void],
    "view"
  >;
  getFunction(
    nameOrSignature: "version"
  ): TypedContractMethod<[], [bigint], "view">;

  getEvent(
    key: "AnswerUpdated"
  ): TypedContractEvent<
    AnswerUpdatedEvent.InputTuple,
    AnswerUpdatedEvent.OutputTuple,
    AnswerUpdatedEvent.OutputObject
  >;
  getEvent(
    key: "Initialized"
  ): TypedContractEvent<
    InitializedEvent.InputTuple,
    InitializedEvent.OutputTuple,
    InitializedEvent.OutputObject
  >;

  filters: {
    "AnswerUpdated(int256,uint256,uint256)": TypedContractEvent<
      AnswerUpdatedEvent.InputTuple,
      AnswerUpdatedEvent.OutputTuple,
      AnswerUpdatedEvent.OutputObject
    >;
    AnswerUpdated: TypedContractEvent<
      AnswerUpdatedEvent.InputTuple,
      AnswerUpdatedEvent.OutputTuple,
      AnswerUpdatedEvent.OutputObject
    >;

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