/* Generated by ts-generator ver. 0.0.8 */
/* tslint:disable */

import { Contract, ContractTransaction, EventFilter, Signer } from "ethers";
import { Listener, Provider } from "ethers/providers";
import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils";
import {
  TransactionOverrides,
  TypedEventDescription,
  TypedFunctionDescription
} from ".";

interface MockAggregatorSusdInterface extends Interface {
  functions: {
    latestAnswer: TypedFunctionDescription<{ encode([]: []): string }>;
  };

  events: {
    AnswerUpdated: TypedEventDescription<{
      encodeTopics([current, roundId, timestamp]: [
        BigNumberish | null,
        BigNumberish | null,
        null
      ]): string[];
    }>;
  };
}

export class MockAggregatorSusd extends Contract {
  connect(signerOrProvider: Signer | Provider | string): MockAggregatorSusd;
  attach(addressOrName: string): MockAggregatorSusd;
  deployed(): Promise<MockAggregatorSusd>;

  on(event: EventFilter | string, listener: Listener): MockAggregatorSusd;
  once(event: EventFilter | string, listener: Listener): MockAggregatorSusd;
  addListener(
    eventName: EventFilter | string,
    listener: Listener
  ): MockAggregatorSusd;
  removeAllListeners(eventName: EventFilter | string): MockAggregatorSusd;
  removeListener(eventName: any, listener: Listener): MockAggregatorSusd;

  interface: MockAggregatorSusdInterface;

  functions: {
    latestAnswer(): Promise<BigNumber>;
  };

  latestAnswer(): Promise<BigNumber>;

  filters: {
    AnswerUpdated(
      current: BigNumberish | null,
      roundId: BigNumberish | null,
      timestamp: null
    ): EventFilter;
  };

  estimate: {
    latestAnswer(): Promise<BigNumber>;
  };
}