/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */

import { ethers, EventFilter, Signer, BigNumber, BigNumberish, PopulatedTransaction } from 'ethers'
import { Contract, ContractTransaction, CallOverrides } from '@ethersproject/contracts'
import { BytesLike } from '@ethersproject/bytes'
import { Listener, Provider } from '@ethersproject/providers'
import { FunctionFragment, EventFragment, Result } from '@ethersproject/abi'

interface NFTDescriptorInterface extends ethers.utils.Interface {
  functions: {
    'constructTokenURI(tuple)': FunctionFragment
  }

  encodeFunctionData(
    functionFragment: 'constructTokenURI',
    values: [
      {
        tokenId: BigNumberish
        quoteTokenAddress: string
        baseTokenAddress: string
        quoteTokenSymbol: string
        baseTokenSymbol: string
        quoteTokenDecimals: BigNumberish
        baseTokenDecimals: BigNumberish
        flipRatio: boolean
        tickLower: BigNumberish
        tickUpper: BigNumberish
        tickCurrent: BigNumberish
        tickSpacing: BigNumberish
        fee: BigNumberish
        poolAddress: string
      }
    ]
  ): string

  decodeFunctionResult(functionFragment: 'constructTokenURI', data: BytesLike): Result

  events: {}
}

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

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

  interface: NFTDescriptorInterface

  functions: {
    constructTokenURI(
      params: {
        tokenId: BigNumberish
        quoteTokenAddress: string
        baseTokenAddress: string
        quoteTokenSymbol: string
        baseTokenSymbol: string
        quoteTokenDecimals: BigNumberish
        baseTokenDecimals: BigNumberish
        flipRatio: boolean
        tickLower: BigNumberish
        tickUpper: BigNumberish
        tickCurrent: BigNumberish
        tickSpacing: BigNumberish
        fee: BigNumberish
        poolAddress: string
      },
      overrides?: CallOverrides
    ): Promise<{
      0: string
    }>

    'constructTokenURI(tuple)'(
      params: {
        tokenId: BigNumberish
        quoteTokenAddress: string
        baseTokenAddress: string
        quoteTokenSymbol: string
        baseTokenSymbol: string
        quoteTokenDecimals: BigNumberish
        baseTokenDecimals: BigNumberish
        flipRatio: boolean
        tickLower: BigNumberish
        tickUpper: BigNumberish
        tickCurrent: BigNumberish
        tickSpacing: BigNumberish
        fee: BigNumberish
        poolAddress: string
      },
      overrides?: CallOverrides
    ): Promise<{
      0: string
    }>
  }

  constructTokenURI(
    params: {
      tokenId: BigNumberish
      quoteTokenAddress: string
      baseTokenAddress: string
      quoteTokenSymbol: string
      baseTokenSymbol: string
      quoteTokenDecimals: BigNumberish
      baseTokenDecimals: BigNumberish
      flipRatio: boolean
      tickLower: BigNumberish
      tickUpper: BigNumberish
      tickCurrent: BigNumberish
      tickSpacing: BigNumberish
      fee: BigNumberish
      poolAddress: string
    },
    overrides?: CallOverrides
  ): Promise<string>

  'constructTokenURI(tuple)'(
    params: {
      tokenId: BigNumberish
      quoteTokenAddress: string
      baseTokenAddress: string
      quoteTokenSymbol: string
      baseTokenSymbol: string
      quoteTokenDecimals: BigNumberish
      baseTokenDecimals: BigNumberish
      flipRatio: boolean
      tickLower: BigNumberish
      tickUpper: BigNumberish
      tickCurrent: BigNumberish
      tickSpacing: BigNumberish
      fee: BigNumberish
      poolAddress: string
    },
    overrides?: CallOverrides
  ): Promise<string>

  callStatic: {
    constructTokenURI(
      params: {
        tokenId: BigNumberish
        quoteTokenAddress: string
        baseTokenAddress: string
        quoteTokenSymbol: string
        baseTokenSymbol: string
        quoteTokenDecimals: BigNumberish
        baseTokenDecimals: BigNumberish
        flipRatio: boolean
        tickLower: BigNumberish
        tickUpper: BigNumberish
        tickCurrent: BigNumberish
        tickSpacing: BigNumberish
        fee: BigNumberish
        poolAddress: string
      },
      overrides?: CallOverrides
    ): Promise<string>

    'constructTokenURI(tuple)'(
      params: {
        tokenId: BigNumberish
        quoteTokenAddress: string
        baseTokenAddress: string
        quoteTokenSymbol: string
        baseTokenSymbol: string
        quoteTokenDecimals: BigNumberish
        baseTokenDecimals: BigNumberish
        flipRatio: boolean
        tickLower: BigNumberish
        tickUpper: BigNumberish
        tickCurrent: BigNumberish
        tickSpacing: BigNumberish
        fee: BigNumberish
        poolAddress: string
      },
      overrides?: CallOverrides
    ): Promise<string>
  }

  filters: {}

  estimateGas: {
    constructTokenURI(
      params: {
        tokenId: BigNumberish
        quoteTokenAddress: string
        baseTokenAddress: string
        quoteTokenSymbol: string
        baseTokenSymbol: string
        quoteTokenDecimals: BigNumberish
        baseTokenDecimals: BigNumberish
        flipRatio: boolean
        tickLower: BigNumberish
        tickUpper: BigNumberish
        tickCurrent: BigNumberish
        tickSpacing: BigNumberish
        fee: BigNumberish
        poolAddress: string
      },
      overrides?: CallOverrides
    ): Promise<BigNumber>

    'constructTokenURI(tuple)'(
      params: {
        tokenId: BigNumberish
        quoteTokenAddress: string
        baseTokenAddress: string
        quoteTokenSymbol: string
        baseTokenSymbol: string
        quoteTokenDecimals: BigNumberish
        baseTokenDecimals: BigNumberish
        flipRatio: boolean
        tickLower: BigNumberish
        tickUpper: BigNumberish
        tickCurrent: BigNumberish
        tickSpacing: BigNumberish
        fee: BigNumberish
        poolAddress: string
      },
      overrides?: CallOverrides
    ): Promise<BigNumber>
  }

  populateTransaction: {
    constructTokenURI(
      params: {
        tokenId: BigNumberish
        quoteTokenAddress: string
        baseTokenAddress: string
        quoteTokenSymbol: string
        baseTokenSymbol: string
        quoteTokenDecimals: BigNumberish
        baseTokenDecimals: BigNumberish
        flipRatio: boolean
        tickLower: BigNumberish
        tickUpper: BigNumberish
        tickCurrent: BigNumberish
        tickSpacing: BigNumberish
        fee: BigNumberish
        poolAddress: string
      },
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>

    'constructTokenURI(tuple)'(
      params: {
        tokenId: BigNumberish
        quoteTokenAddress: string
        baseTokenAddress: string
        quoteTokenSymbol: string
        baseTokenSymbol: string
        quoteTokenDecimals: BigNumberish
        baseTokenDecimals: BigNumberish
        flipRatio: boolean
        tickLower: BigNumberish
        tickUpper: BigNumberish
        tickCurrent: BigNumberish
        tickSpacing: BigNumberish
        fee: BigNumberish
        poolAddress: string
      },
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>
  }
}
