import { c as Address } from "../../abi-Bjd7pZee.mjs"; //#region extensions/crypto/src/services/yield-service.d.ts interface YieldPool { pool: string; chain: string; project: string; symbol: string; tvlUsd: number; apyBase: number | null; apyReward: number | null; apy: number; rewardTokens: string[] | null; underlyingTokens: string[] | null; ilRisk: string | null; stablecoin: boolean; exposure: string | null; poolMeta: string | null; /** Vault address — from DeFiLlama or resolved locally */ vaultAddress?: string; } interface YieldSearchParams { chain?: string; asset?: string; minTvl?: number; minApy?: number; stableOnly?: boolean; singleExposure?: boolean; limit?: number; project?: string; } interface VaultPosition { vault: string; vaultAddress: string; asset: string; shares: string; assetsValue: string; chain: string; apy?: number; } declare const YEARN_VAULTS_BASE: Record; declare const ERC4626_ABI: readonly [{ readonly name: "deposit"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "assets"; readonly type: "uint256"; }, { readonly name: "receiver"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: "shares"; readonly type: "uint256"; }]; }, { readonly name: "withdraw"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "assets"; readonly type: "uint256"; }, { readonly name: "receiver"; readonly type: "address"; }, { readonly name: "owner"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: "shares"; readonly type: "uint256"; }]; }, { readonly name: "redeem"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "shares"; readonly type: "uint256"; }, { readonly name: "receiver"; readonly type: "address"; }, { readonly name: "owner"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: "assets"; readonly type: "uint256"; }]; }, { readonly name: "balanceOf"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly name: "convertToAssets"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "shares"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly name: "convertToShares"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "assets"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly name: "maxDeposit"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "receiver"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly name: "totalAssets"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly name: "asset"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }]; declare class YieldService { private poolsCache; private poolsCacheTimestamp; private readonly POOLS_CACHE_TTL; /** * Search DeFiLlama yield pools with optional filters. * Returns top results sorted by APY descending. */ searchPools(params?: YieldSearchParams): Promise; /** * Get top yields for a specific asset on a specific chain. */ topYieldsForAsset(asset: string, chain?: string, limit?: number): Promise; /** * Resolve a vault name or address to a known Yearn V3 vault. */ resolveVault(input: string): { name: string; address: Address; asset: string; decimals: number; } | null; /** * Get all known Yearn V3 vaults. */ getAvailableVaults(): { name: string; address: `0x${string}`; asset: string; decimals: number; }[]; /** * Deposit into a Yearn V3 vault (ERC-4626). */ deposit(vaultAddress: Address, assetAddress: Address, amount: bigint, userAddress: Address, walletClient: any, publicClient: any): Promise<{ hash: string; shares: string; }>; /** * Withdraw from a Yearn V3 vault (ERC-4626). * If isMax, redeems all shares. Otherwise withdraws specific asset amount. */ withdraw(vaultAddress: Address, amount: bigint, userAddress: Address, walletClient: any, publicClient: any, isMax: boolean, decimals: number): Promise<{ hash: string; assetsReturned: string; }>; /** * Get vault positions for a user across all known vaults. */ getPositions(userAddress: Address, publicClient: any): Promise; /** * Get the underlying token address for a vault's asset. */ getTokenAddress(asset: string): Address | null; private fetchPools; private enrichPositionsWithApy; private ensureApproval; } declare function getYieldService(): YieldService; declare function resetYieldService(): void; //#endregion export { ERC4626_ABI, VaultPosition, YEARN_VAULTS_BASE, YieldPool, YieldSearchParams, YieldService, getYieldService, resetYieldService }; //# sourceMappingURL=yield-service.d.mts.map