import { ApiTypes, DecorateMethod, DecoratedRpc, AugmentedSubmittables } from "../../api/types"; import { RpcInterface } from "../../rpc-core/types"; import { Registry } from "../../types/types"; import { ApiObject, ContractABIPre, ContractBase, ContractMessage } from '../types'; import Abi from '../Abi'; export declare abstract class Base implements ContractBase { readonly abi: Abi; readonly api: ApiObject; readonly decorateMethod: DecorateMethod; readonly registry: Registry; constructor(api: ApiObject, abi: ContractABIPre | Abi, decorateMethod: DecorateMethod); get messages(): ContractMessage[]; getMessage(nameOrIndex?: string | number): ContractMessage; } export declare abstract class BaseWithTx extends Base { protected get apiContracts(): AugmentedSubmittables<'rxjs'>['contracts']; constructor(api: ApiObject, abi: ContractABIPre | Abi, decorateMethod: DecorateMethod); } export declare abstract class BaseWithTxAndRpcCall extends BaseWithTx { get hasRpcContractsCall(): boolean; protected get rpcContractsCall(): DecoratedRpc<'rxjs', RpcInterface>['contracts']['call']; }