import type { NftData } from '../types/nft';
import type { TradincActivityArgs, TradingActivityResponse } from '../types/trading';
import type { UserOffers } from '../types/user';
/**
 * NFTModule provides a set of methods to interact with single NFTs.
 * It includes methods for getting single NFT information, and searching NFTs by collection and nonce.
 *
 * @example
 * const nftModule = new NFTModule();
 */
export declare class NFTModule {
    private api;
    constructor();
    /**
     * @public
     * @async
     * @function getNFTByIdentifier
     * @param {string} identifier - The identifier of the NFT to fetch data for.
     * @returns {Promise<NftData>} A promise that resolves to the fetched NFT data.
     *
     * This function fetches data for a given NFT by its identifier. It takes the following parameter:
     * - identifier (string): The identifier of the NFT to fetch data for.
     *
     * The function first validates the input identifier and checks if it is a valid NFT identifier.
     * If it is valid, the function fetches the NFT data using the API.
     * Finally, it returns a promise that resolves to the fetched NFT data.
     */
    getNFTByIdentifier: (identifier: string, extra?: RequestInit) => Promise<NftData>;
    /**
     * @public
     * @async
     * @function getNFTByIdentifier
     * @param {string} identifier - The identifier of the NFT to fetch data for.
     * @returns {Promise<NftData>} A promise that resolves to the fetched NFT data.
     *
     * This function fetches data for a given NFT by its identifier. It takes the following parameter:
     * - identifier (string): The identifier of the NFT to fetch data for.
     *
     * The function first validates the input identifier and checks if it is a valid NFT identifier.
     * If it is valid, the function fetches the NFT data using the API.
     * Finally, it returns a promise that resolves to the fetched NFT data.
     */
    getNFTsOffers: (identifier: string, skip?: number, top?: number) => Promise<UserOffers>;
    /**
     * Gets an NFT by collection and nonce.
     * @param collection The collection ticker.
     * @param nonce The nonce of the NFT.
     * @returns {Promise<NftData>} The NFT data.
     * @throws Throws an error when the collection ticker is invalid.
     */
    getNFTByCollectionAndNonce: (collection: string, nonce: number) => Promise<NftData>;
    /**
     * Get NFT by collection and nonce hex
     *
     * @param collection - collection ticker
     * @param nonceHex - nonce hex
     * @return {Promise<NftData>} NFT data
     */
    getNFTByCollectionAndNonceHex: (collection: string, nonceHex: string) => Promise<NftData>;
    /**
     * Retrieves trading history based on the provided arguments.
     *
     * @param {TradincActivityArgs} args - The arguments for filtering the trading activity.
     * @returns {Promise<TradingActivityResponse>} A promise resolving to a TradingActivityResponse object containing the activity.
     * @throws {Error} Throws an error if the 'top' argument is greater than 100.
     */
    getTradingActivity: (args: TradincActivityArgs) => Promise<TradingActivityResponse>;
}
//# sourceMappingURL=index.d.ts.map