import { ContractAbstraction, ContractMethod, ContractMethodObject, ContractProvider, Wallet } from '@taquito/taquito'; type BaseContractType = { methods: unknown, methodsObject: unknown, storage: unknown }; type ContractMethodsOf = { [M in keyof TContract['methods']]: TContract['methods'][M] extends (...args: infer A) => unknown ? (...args: A) => ContractMethod : never }; type ContractMethodsObjectsOf = { [M in keyof TContract['methodsObject']]: TContract['methodsObject'][M] extends (...args: infer A) => unknown ? (...args: A) => ContractMethodObject : never }; type ContractStorageOf = TContract['storage']; export type ContractAbstractionFromContractType = ContractAbstraction, ContractMethodsObjectsOf, {}, {}, ContractStorageOf >; export type WalletContractAbstractionFromContractType = ContractAbstraction, ContractMethodsObjectsOf, {}, {}, ContractStorageOf >;