import { ethers } from 'ethers';
/**
 * Service for interacting with the Linea blockchain
 */
declare class BlockchainService {
    private _provider;
    private network;
    /**
     * Create a new BlockchainService instance
     * @param network The network to connect to (mainnet, testnet, or ethereum)
     */
    constructor(network?: 'mainnet' | 'testnet' | 'ethereum');
    /**
     * Get the current provider
     * @returns The JsonRpcProvider instance
     */
    get provider(): ethers.providers.JsonRpcProvider;
    /**
     * Get the current network
     * @returns The network name (mainnet, testnet, or ethereum)
     */
    get currentNetwork(): string;
    /**
     * Get the current block number
     * @returns A promise that resolves to the current block number
     */
    getBlockNumber(): Promise<number>;
    /**
     * Get the balance of an address
     * @param address The address to check the balance of
     * @returns A promise that resolves to the balance in ETH
     */
    getBalance(address: string): Promise<string>;
    /**
     * Get a transaction by its hash
     * @param txHash The transaction hash
     * @returns A promise that resolves to the transaction details
     */
    getTransaction(txHash: string): Promise<ethers.providers.TransactionResponse>;
    /**
     * Get a transaction receipt by its hash
     * @param txHash The transaction hash
     * @returns A promise that resolves to the transaction receipt
     */
    getTransactionReceipt(txHash: string): Promise<ethers.providers.TransactionReceipt | null>;
    /**
     * Create a contract instance
     * @param address The contract address
     * @param abi The contract ABI
     * @returns A Contract instance
     */
    createContract(address: string, abi: ethers.ContractInterface): ethers.Contract;
    /**
     * Create a contract instance with a signer
     * @param address The contract address
     * @param abi The contract ABI
     * @param wallet The wallet to use as a signer
     * @returns A Contract instance with a signer
     */
    createContractWithSigner(address: string, abi: ethers.ContractInterface, wallet: ethers.Wallet): ethers.Contract;
    /**
     * Estimate gas for a transaction
     * @param transaction The transaction to estimate gas for
     * @returns A promise that resolves to the gas estimate
     */
    estimateGas(transaction: ethers.providers.TransactionRequest): Promise<ethers.BigNumber>;
    /**
     * Get the current gas price
     * @returns A promise that resolves to the current gas price
     */
    getGasPrice(): Promise<ethers.BigNumber>;
}
export default BlockchainService;
//# sourceMappingURL=blockchain.d.ts.map