import { OnchainSDK } from "../../onchain/OnchainSDK.js"; import "../../onchain/index.js"; import { Address } from "viem"; //#region src/sdk/rewards/turtle-api.d.ts export interface TurtleWalletStream { streamId: string; snapshots: Array<{ rewardsAccumulated: string; }>; stream: { orgId: string; contractAddress: Address | null; /** For Gearbox the target is a pool's share token. */ customArgs: { targetToken?: { address: Address; chain: { chainId: string; }; }; }; point?: { id: string; name: string; decimals: number; } | null; rewardToken: { address: Address; symbol: string; name: string; decimals: number; } | null; lastSnapshot: { rewardTokenPrice: string | null; } | null; }; } export interface TurtleMerkleProof { streamId: string; chainId: number; contractAddress: Address; /** Cumulative committed allocation, not what is left to claim. */ amount: string; } export interface TurtleWalletRewards { streams: TurtleWalletStream[]; proofs: TurtleMerkleProof[]; } export declare const turtleStreamAbi: readonly [{ readonly type: "function"; readonly name: "getClaimedRewards"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "user"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }]; export declare function fetchTurtleWalletRewards(user: Address, apiKey: string): Promise; /** What each of the wallet's streams on the chain has paid out, at the latest block. */ export declare function readTurtleClaimed(sdk: OnchainSDK, user: Address, { proofs }: TurtleWalletRewards): Promise>; //#endregion