import { AxiosInstance } from 'axios';
import { HealthStatus, IdParam, ListInfo } from '../common/types';
import { NewNftOrder, Nft, NftBatchCreate, NftCollection, NftCollectionCreate, NftCollectionQuery, NftCollectionUpdate, NftCreate, NftMint, NftOrder, NftOrderCreate, NftQuery, NftUpdate, OrderQuery, SingleNftCollectionQuery, SingleNftQuery } from './types';
/**
 * Service class for NFT API calls.
 */
export declare class NftService {
    readonly client: AxiosInstance;
    readonly version: string;
    constructor(client: AxiosInstance, version: string);
    /**
     * Returns true if the service is reachable
     *
     * @returns Services' online status
     */
    health(): Promise<HealthStatus>;
    /**
     * Returns all nfts for the logged in user
     */
    getMyNfts(): Promise<Nft[]>;
    /**
     * Returns all nfts with the given query
     */
    listNfts(req: NftQuery): Promise<ListInfo<Nft>>;
    /**
     * Returns a specific NFT with the given relations
     */
    getNft(req: SingleNftQuery): Promise<Nft>;
    createNft(nft: NftCreate): Promise<Nft>;
    updateNft(nft: NftUpdate): Promise<Nft>;
    deleteNft(id: IdParam): Promise<void>;
    mintNft(req: NftMint): Promise<void>;
    /**
     * Returns all collections with the given query
     */
    listCollections(req: NftCollectionQuery): Promise<ListInfo<NftCollection>>;
    /**
     * Returns a specific NFT collection with the given relations
     */
    getCollection(req: SingleNftCollectionQuery): Promise<NftCollection>;
    createCollection(collection: NftCollectionCreate): Promise<NftCollection>;
    updateCollection(collection: NftCollectionUpdate): Promise<NftCollection>;
    deleteCollection(id: IdParam): Promise<void>;
    createOrder(order: NftOrderCreate): Promise<NewNftOrder>;
    getOrder(req: IdParam): Promise<NftOrder>;
    getOrders(req: OrderQuery): Promise<ListInfo<NftOrder>>;
    createBatchNfts(req: NftBatchCreate): Promise<any>;
}
//# sourceMappingURL=service.d.ts.map