//#region extensions/crypto/src/services/staking-service.d.ts /** * Staking Service — liquid staking protocol integrations. * * Supports: * - Lido (stETH / wstETH) on Ethereum mainnet * - Coinbase (cbETH) on Ethereum mainnet * - Rocket Pool (rETH) on Ethereum mainnet * * Uses same ABI-call pattern as lending-service.ts. All protocols * are simple contract calls — no external SDK dependencies. * * APY data fetched from DeFiLlama yields API. */ interface StakeResult { hash: string; protocol: string; action: string; asset: string; amount: string; } interface StakingPosition { protocol: string; asset: string; balance: string; balanceEth: string; chain: string; apy?: string; } interface ApyData { protocol: string; symbol: string; apy: number; tvl: number; fetchedAt: number; } declare class StakingService { private apyCache; private apyCacheTimestamp; private readonly APY_CACHE_TTL; getSupportedProtocols(): { id: string; name: string; assets: string[]; chain: string; }[]; resolveProtocol(input: string): string | null; stakeEth(protocol: string, amount: bigint, userAddress: `0x${string}`, walletClient: any, publicClient: any): Promise; private stakeLido; private stakeRocketPool; unstake(protocol: string, amount: bigint, _userAddress: `0x${string}`, walletClient: any, publicClient: any): Promise; private unstakeRocketPool; wrap(amount: bigint, userAddress: `0x${string}`, walletClient: any, publicClient: any): Promise; unwrap(amount: bigint, _userAddress: `0x${string}`, walletClient: any, publicClient: any): Promise; private ensureStEthApproval; getPositions(userAddress: `0x${string}`, chainId: number, publicClient: any): Promise; private checkBalance; private enrichWithExchangeRates; getApys(): Promise; private enrichWithApy; } declare function getStakingService(): StakingService; declare function resetStakingService(): void; //#endregion export { StakeResult, StakingPosition, StakingService, getStakingService, resetStakingService }; //# sourceMappingURL=staking-service.d.mts.map