import type { Address, PublicClient, WalletClient } from 'viem'; /** * SafeProxy_json ABI * * This ABI is typed using viem's type system for full type safety. */ export declare const SafeProxy_jsonAbi: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_singleton"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly stateMutability: "payable"; readonly type: "fallback"; }]; /** * Type-safe ABI for SafeProxy_json */ export type SafeProxy_jsonAbi = typeof SafeProxy_jsonAbi; /** * Contract instance type for SafeProxy_json */ export type SafeProxy_jsonContract = any; /** * SafeProxy_json Contract Class * * Provides a class-based API similar to TypeChain for interacting with the contract. * * @example * ```typescript * import { createPublicClient, createWalletClient, http } from 'viem'; * import { mainnet } from 'viem/chains'; * import { SafeProxy_json } from 'SafeProxy_json'; * * const publicClient = createPublicClient({ chain: mainnet, transport: http() }); * const walletClient = createWalletClient({ chain: mainnet, transport: http() }); * * const contract = new SafeProxy_json('0x...', { publicClient, walletClient }); * * // Read functions * const result = await contract.balanceOf('0x...'); * * // Write functions * const hash = await contract.transfer('0x...', 1000n); * * // Simulate transactions (dry-run) * const simulation = await contract.simulate.transfer('0x...', 1000n); * console.log('Gas estimate:', simulation.request.gas); * * // Watch events * const unwatch = contract.watch.Transfer((event) => { * console.log('Transfer event:', event); * }); * ``` */ export declare class SafeProxy_json { private contract; private contractAddress; private publicClient; constructor(address: Address, clients: { publicClient: PublicClient; walletClient?: WalletClient; }); /** * Get the contract address */ get address(): Address; /** * Get the underlying viem contract instance */ getContract(): SafeProxy_jsonContract; /** * Simulate contract write operations (dry-run without sending transaction) * * Note: This contract has no write functions, so simulate returns an empty object. */ get simulate(): {}; /** * Watch contract events * * Note: This contract has no events, so watch returns an empty object. */ get watch(): {}; }