import type { FunctionFragment, Typed, EventFragment, ContractTransaction, ContractTransactionResponse, DeferredTopicFilter, EventLog, TransactionRequest, LogDescription } from "ethers"; export interface TypedDeferredTopicFilter<_TCEvent extends TypedContractEvent> extends DeferredTopicFilter { } export interface TypedContractEvent = 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 TypedContractMethod = 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; } export {};