import { type TAbiItem } from '../types/TAbi'; import { IBlockchainExplorer } from '../explorer/IBlockchainExplorer'; import { Web3Client } from '../clients/Web3Client'; import { TAddress } from '../models/TAddress'; import { ContractBase } from './ContractBase'; import { Constructor } from '../utils/types'; export interface IContractWrapped extends ContractBase { abi?: any; [method: string]: any; } export declare namespace ContractClassFactory { function get(client: Web3Client, explorer: IBlockchainExplorer, contractAddr: TAddress): Promise<{ ContractCtor: Constructor; contract: IContractWrapped; }>; function fromAbi(contractAddr: TAddress, abi: (TAbiItem | string)[], client: Web3Client, explorer?: IBlockchainExplorer, opts?: { contractName?: string; $meta?: ContractBase['$meta']; }): { ContractCtor: Constructor; contract: TReturn; }; }