import { IBlockchainExplorer } from '../explorer/IBlockchainExplorer'; import { IContractDetails } from '../models/IContractDetails'; import { IContractProvider } from './ContractProvider'; import { IContractReader } from './ContractReader'; import { ITransactionDetails } from '../models/ITransactionDetails'; import { TxWriter } from '../txs/TxWriter'; import { Web3Client } from '../clients/Web3Client'; import { EoAccount } from "../models/TAccount"; import { TAbiItem } from '../types/TAbi'; import { TEth } from '../models/TEth'; export interface IContractInit { Ctor?: new (...args: any[]) => any; explorer?: IBlockchainExplorer; client?: Web3Client; refAbi?: string; } export declare abstract class Contract { name: string; address: TEth.Address; proxyImpl: string; refAbi: string; abi: string | TAbiItem[]; opts: IContractInit; protected abstract client: Web3Client; protected abstract runner: IContractReader; protected abstract provider: IContractProvider; protected abstract explorer: IBlockchainExplorer; constructor(data: Partial, opts: IContractInit); readAsync(methodAbi: string, ...params: any[]): Promise; writeAsyncWithAccount(account: EoAccount, interfaceAbi: string, ...params: any[]): Promise; getTransactionsFor(address: TEth.Address, opts?: { decode?: boolean; }): Promise; parseTransaction(tx: TEth.TxLike): Promise; parseTransactions(arr: TEth.TxLike[]): Promise; protected static create(mix: string, opts?: IContractInit): Promise; }