import type { Listener } from "@ethersproject/providers"; import type { Event, EventFilter } from "ethers"; export interface TypedEvent = any, TArgsObject = any> extends Event { args: TArgsArray & TArgsObject; } export interface TypedEventFilter<_TEvent extends TypedEvent> extends EventFilter { } export interface TypedListener { (...listenerArg: [...__TypechainArgsArray, TEvent]): void; } type __TypechainArgsArray = T extends TypedEvent ? U : never; export interface OnEvent { (eventFilter: TypedEventFilter, listener: TypedListener): TRes; (eventName: string, listener: Listener): TRes; } 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 PromiseOrValue = T | Promise; export {}; //# sourceMappingURL=common.d.ts.map