import type { FunctionFragment, Typed, EventFragment, ContractTransaction, ContractTransactionResponse, DeferredTopicFilter, EventLog, TransactionRequest, LogDescription, } from 'ethers' export interface TypedDeferredTopicFilter<_TCEvent extends TypedContractEvent> extends DeferredTopicFilter {} export interface TypedContractEvent< InputTuple extends Array = any, OutputTuple extends Array = any, OutputObject = any, > { (...args: Partial): TypedDeferredTopicFilter> name: string fragment: EventFragment getFragment(...args: Partial): EventFragment } type __TypechainAOutputTuple = T extends TypedContractEvent ? W : never type __TypechainOutputObject = T extends TypedContractEvent ? V : never export interface TypedEventLog extends Omit { args: __TypechainAOutputTuple & __TypechainOutputObject } export interface TypedLogDescription extends Omit { args: __TypechainAOutputTuple & __TypechainOutputObject } export type TypedListener = ( ...listenerArg: [...__TypechainAOutputTuple, TypedEventLog, ...undefined[]] ) => void export type MinEthersFactory = { deploy(...a: ARGS[]): Promise } export type GetContractTypeFromFactory = F extends MinEthersFactory ? C : never export type GetARGsTypeFromFactory = F extends MinEthersFactory ? Parameters : never export type StateMutability = 'nonpayable' | 'payable' | 'view' export type BaseOverrides = Omit export type NonPayableOverrides = Omit export type PayableOverrides = Omit export type ViewOverrides = Omit export type Overrides = S extends 'nonpayable' ? NonPayableOverrides : S extends 'payable' ? PayableOverrides : ViewOverrides export type PostfixOverrides, S extends StateMutability> = A | [...A, Overrides] export type ContractMethodArgs, S extends StateMutability> = PostfixOverrides< { [I in keyof A]-?: A[I] | Typed }, S > export type DefaultReturnType = R extends Array ? R[0] : R // export interface ContractMethod = Array, R = any, D extends R | ContractTransactionResponse = R | ContractTransactionResponse> { export interface TypedContractMethod< A extends Array = Array, R = any, S extends StateMutability = 'payable', > { (...args: ContractMethodArgs): S extends 'view' ? Promise> : Promise name: string fragment: FunctionFragment getFragment(...args: ContractMethodArgs): FunctionFragment populateTransaction(...args: ContractMethodArgs): Promise staticCall(...args: ContractMethodArgs): Promise> send(...args: ContractMethodArgs): Promise estimateGas(...args: ContractMethodArgs): Promise staticCallResult(...args: ContractMethodArgs): Promise }