import { CreateCertificateOptions, HttpAgent } from '@dfinity/agent';
import { Principal } from '@dfinity/principal';
import { NFTCollection } from '../interfaces/nft';
import { DABCollection } from '../interfaces/dab_nfts';
import NFT from '../standard_wrappers/nft_standards/default';
import Registry from './standard_registry';
import { FormattedMetadata } from '../utils/registry';
interface GetBatchedNFTsParams {
    principal: Principal;
    callback?: (collection: NFTCollection) => void;
    batchSize?: number;
    onFinish?: (collections: NFTCollection[]) => void;
    agent?: HttpAgent;
}
interface GetNFTActorParams {
    canisterId: string;
    standard: string;
    agent: HttpAgent;
    blsVerify?: CreateCertificateOptions['blsVerify'];
}
interface GetNFTInfoParams {
    nftCanisterId: string;
    agent?: HttpAgent;
}
interface GetAllUserNFTsParams {
    user: string | Principal;
    agent?: HttpAgent;
    debug?: boolean;
}
export declare class NFTRegistry extends Registry {
    constructor(agent?: HttpAgent);
    getAll: () => Promise<FormattedMetadata[]>;
}
export declare const getUserCollectionTokens: (collection: DABCollection, user: Principal, agent?: HttpAgent, callback?: (val?: any) => void, debug?: boolean) => Promise<NFTCollection>;
export declare const getNFTActor: ({ canisterId, agent, standard, blsVerify, }: GetNFTActorParams) => NFT<number | string, bigint | string>;
export declare const getNFTInfo: ({ nftCanisterId, agent, }: GetNFTInfoParams) => Promise<DABCollection | undefined>;
export declare const getAllNFTS: ({ agent, }?: {
    agent?: HttpAgent | undefined;
}) => Promise<DABCollection[]>;
export declare const getAllUserNFTs: ({ user, agent, debug, }: GetAllUserNFTsParams) => Promise<NFTCollection[]>;
export declare const getBatchedNFTs: ({ principal, callback, batchSize, onFinish, agent, }: GetBatchedNFTsParams) => Promise<NFTCollection[]>;
export declare const getCachedUserNFTs: ({ userPID, refresh, }: {
    userPID: string;
    refresh?: boolean | undefined;
}) => Promise<NFTCollection[]>;
declare const _default: {
    getBatchedNFTs: ({ principal, callback, batchSize, onFinish, agent, }: GetBatchedNFTsParams) => Promise<NFTCollection[]>;
    getNFTActor: ({ canisterId, agent, standard, blsVerify, }: GetNFTActorParams) => NFT<string | number, string | bigint>;
    getNFTInfo: ({ nftCanisterId, agent, }: GetNFTInfoParams) => Promise<DABCollection | undefined>;
    getAllNFTS: ({ agent, }?: {
        agent?: HttpAgent | undefined;
    }) => Promise<DABCollection[]>;
    getAllUserNFTs: ({ user, agent, debug, }: GetAllUserNFTsParams) => Promise<NFTCollection[]>;
    getCachedUserNFTs: ({ userPID, refresh, }: {
        userPID: string;
        refresh?: boolean | undefined;
    }) => Promise<NFTCollection[]>;
};
export default _default;
