import type { Chain, OpenSeaCollection } from "../types"; import type { Fetcher } from "./fetcher"; import { type BatchNftsRequest, type GetContractResponse, type GetNFTMetadataResponse, type GetNFTResponse, type ListNFTsResponse, type NFTOwnersArgs, type NftAnalyticsResponse, type NftBatchResponse, type OwnersPaginatedResponse, type TraitFilter, type ValidateMetadataResponse } from "./types"; /** * NFT-related API operations */ export declare class NFTsAPI { private fetcher; private chain; constructor(fetcher: Fetcher, chain: Chain); /** * Fetch multiple NFTs for a collection. Pass `traits` to filter server-side * by item traits (multiple entries are AND-combined). */ getNFTsByCollection(slug: string, limit?: number | undefined, next?: string | undefined, traits?: TraitFilter[] | undefined): Promise; /** * Fetch multiple NFTs for a contract. */ getNFTsByContract(address: string, limit?: number | undefined, next?: string | undefined, chain?: Chain): Promise; /** * Fetch NFTs owned by an account. */ getNFTsByAccount(address: string, limit?: number | undefined, next?: string | undefined, chain?: Chain): Promise; /** * Fetch metadata, traits, ownership information, and rarity for a single NFT. */ getNFT(address: string, identifier: string, chain?: Chain): Promise; /** * Force refresh the metadata for an NFT. */ refreshNFTMetadata(address: string, identifier: string, chain?: Chain): Promise>; /** * Fetch smart contract information for a given chain and address. */ getContract(address: string, chain?: Chain): Promise; /** * Validate NFT metadata by fetching and parsing it. */ validateMetadata(address: string, identifier: string, chain?: Chain, ignoreCachedItemUrls?: boolean): Promise; /** * Get the collection that an NFT belongs to. * Useful for multi-contract collections where the token ID disambiguates * which collection the NFT belongs to. */ getNFTCollection(address: string, identifier: string, chain?: Chain): Promise; /** * Get detailed metadata for an NFT including name, description, image, traits, * and external links. */ getNFTMetadata(address: string, tokenId: string, chain?: Chain): Promise; /** * Fetch multiple NFTs in a single request by chain + contract + token id. */ getNFTsBatch(request: BatchNftsRequest): Promise; /** * Fetch owners of an NFT. For ERC-721s this is a single owner; for * ERC-1155s it can be a paginated list with per-owner quantities. */ getNFTOwners(address: string, identifier: string, chain?: Chain, args?: NFTOwnersArgs): Promise; /** * Fetch analytics for an NFT — historical sale points used for charting. */ getNFTAnalytics(address: string, identifier: string, chain?: Chain): Promise; }