//#region extensions/crypto/src/services/nft-service.d.ts /** * NFT Service — Reservoir API client for NFT operations. * * Supports: * - Collection floor prices and metadata * - Token viewing and metadata resolution * - Portfolio listing (user's NFTs) * - Buy/list/offer execution via Reservoir order flow * - Transfer via standard ERC-721 safeTransferFrom * * Uses Reservoir API (covers OpenSea, Blur, LooksRare marketplaces). * Requires RESERVOIR_API_KEY env var (free tier: 4 req/sec). */ interface NftToken { contract: string; tokenId: string; name: string | null; description: string | null; image: string | null; collection: string | null; owner: string | null; lastSalePrice: string | null; rarity: number | null; attributes: Array<{ key: string; value: string; }>; chain: string; } interface NftCollection { id: string; name: string; image: string | null; floorPrice: string | null; floorPriceCurrency: string; volume24h: string | null; totalSupply: number | null; ownerCount: number | null; chain: string; } interface NftPortfolioItem { contract: string; tokenId: string; name: string | null; image: string | null; collection: string | null; floorPrice: string | null; lastSalePrice: string | null; acquiredAt: string | null; } interface NftBuyResult { status: string; orderId: string | null; txData: { to: string; data: string; value: string; } | null; price: string | null; marketplace: string | null; } interface NftListResult { status: string; orderId: string | null; steps: any[]; } declare const ERC721_TRANSFER_ABI: readonly [{ readonly name: "safeTransferFrom"; readonly inputs: readonly [{ readonly name: "from"; readonly type: "address"; }, { readonly name: "to"; readonly type: "address"; }, { readonly name: "tokenId"; readonly type: "uint256"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly name: "ownerOf"; readonly inputs: readonly [{ readonly name: "tokenId"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; declare class NftService { private metadataCache; private readonly CACHE_TTL; getApiKey(): string | null; private getApiBase; private reservoirFetch; getToken(contract: string, tokenId: string, chainId?: number): Promise; getCollectionFloor(collectionIdOrSlug: string, chainId?: number): Promise; getPortfolio(ownerAddress: string, chainId?: number, limit?: number): Promise; getBuyOrder(contract: string, tokenId: string, takerAddress: string, chainId?: number): Promise; getListOrder(contract: string, tokenId: string, makerAddress: string, priceWei: string, chainId?: number, expirationDays?: number): Promise; } declare function getNftService(): NftService; declare function resetNftService(): void; //#endregion export { ERC721_TRANSFER_ABI, NftBuyResult, NftCollection, NftListResult, NftPortfolioItem, NftService, NftToken, getNftService, resetNftService }; //# sourceMappingURL=nft-service.d.mts.map