import { WalletClient, Address, Abi, Hash, Log, Hex } from 'viem'; import { TransactionType } from '../constants'; import type { ApiConfig, BaseClientConfig, CallData, MulticallConfig, SplitsPublicClient, TransactionConfig, TransactionFormat, TransactionOverrides } from '../types'; import { DataClient } from './data'; declare class BaseClient { readonly _chainId: number | undefined; readonly _ensPublicClient: SplitsPublicClient | undefined; readonly _walletClient: WalletClient | undefined; readonly _publicClient: SplitsPublicClient | undefined; readonly _publicClients: { [chainId: number]: SplitsPublicClient; } | undefined; readonly _apiConfig: ApiConfig | undefined; readonly _includeEnsNames: boolean; readonly _dataClient: DataClient | undefined; readonly _supportedChainIds: number[]; constructor({ chainId, publicClient, publicClients, ensPublicClient, walletClient, apiConfig, supportedChainIds, includeEnsNames, }: BaseClientConfig); protected _requireDataClient(): void; protected _requirePublicClient(chainId: number): void; protected _requireWalletClient(): void; _getPublicClient(chainId: number): SplitsPublicClient; } export declare class BaseTransactions extends BaseClient { protected readonly _transactionType: TransactionType; protected readonly _shouldRequireWalletClient: boolean; constructor({ transactionType, ...baseClientArgs }: BaseClientConfig & TransactionConfig); protected _executeContractFunction({ contractAddress, contractAbi, functionName, functionArgs, transactionOverrides, value, }: { contractAddress: Address; contractAbi: Abi; functionName: string; functionArgs?: unknown[]; transactionOverrides: TransactionOverrides; value?: bigint; }): Promise; protected _isContractTransaction(txHash: TransactionFormat): txHash is Hash; protected _isBigInt(gasEstimate: TransactionFormat): gasEstimate is bigint; protected _isCallData(callData: TransactionFormat): callData is CallData; protected _getFunctionChainId(argumentChainId?: number): number; protected _getReadOnlyFunctionChainId(argumentChainId?: number): number; _multicallTransaction({ calls, transactionOverrides, }: MulticallConfig): Promise; } export declare class BaseClientMixin extends BaseTransactions { getTransactionEvents({ txHash, eventTopics, includeAll, }: { txHash: Hash; eventTopics: Hex[]; includeAll?: boolean; }): Promise; _submitMulticallTransaction(multicallArgs: MulticallConfig): Promise<{ txHash: Hash; }>; multicall(multicallArgs: MulticallConfig): Promise<{ events: Log[]; }>; } export declare class BaseGasEstimatesMixin extends BaseTransactions { multicall(multicallArgs: MulticallConfig): Promise; } export {};