/** * @iota-big3/sdk-blockchain - Smart Contract Manager * Smart contract deployment and interaction */ import { ethers } from 'ethers'; import { EventEmitter } from 'events'; import type { BlockchainHealthResult, BlockchainMetrics, IBlockchainManager } from '../types'; import type { ContractABI, ContractDeployment, Event, EventFilter, EventListener, SmartContract, TransactionReceipt } from '../types/blockchain.types'; export declare class SmartContractManager extends EventEmitter implements IBlockchainManager { isEnabled: boolean; private contracts; private eventListeners; private contractInstances; private provider; constructor(config?: { defaultGasLimit?: bigint; confirmations?: number; enabled?: boolean; }); initialize(): Promise; deployContract(deployment: ContractDeployment): Promise; callContract(address: string, method: string, args?: any[]): Promise; sendTransaction(address: string, method: string, args?: any[], options?: { gasLimit?: bigint; value?: bigint; }): Promise; listenToEvents(filter: EventFilter, callback: (event: Event) => void): Promise; removeEventListener(listener: EventListener): Promise; queryEvents(filter: EventFilter & { fromBlock?: number | string; toBlock?: number | string; filter?: Record; }): Promise; getContract(address: string): SmartContract | undefined; getAllContracts(): SmartContract[]; getContractMetadata(_address: string): Record; estimateDeploymentGas(deployment: ContractDeployment): Promise; encodeConstructor(abi: ContractABI, args: unknown[]): string; encodeFunctionCall(abi: ContractABI, functionName: string, args: unknown[]): string; validateABI(abi: unknown): void; getFunctionSignatures(abi: ContractABI): string[]; getEventSignatures(abi: ContractABI): string[]; getContractInstance(address: string): ethers.Contract | undefined; batchCall(address: string, calls: Array<{ method: string; args: unknown[]; }>): Promise; reinitialize(): Promise; checkHealth(): Promise; getMetrics(): BlockchainMetrics; shutdown(): Promise; getHealth(): Promise; } //# sourceMappingURL=smart-contract-manager.d.ts.map