///
import { RawBaseNft, RawBaseNftContract, RawCollectionBaseNft, RawNft, RawNftContract, RawOwnedBaseNft, RawOwnedNft } from '../src/internal/raw-interfaces';
import { BaseNft, Nft, NftTokenType, OwnedBaseNft, OwnedNft, TokenUri } from '../src';
import { BlockHead, LogsEvent } from '../src/internal/websocket-backfiller';
import { BaseNftContract } from '../src/api/nft';
export declare function createRawNftContract(address: string, tokenType: NftTokenType, name?: string, symbol?: string, totalSupply?: number): RawNftContract;
export declare function createRawBaseNftContract(address: string): RawBaseNftContract;
export declare function createBaseNftContract(address: string): BaseNftContract;
export declare function createRawOwnedBaseNft(address: string, tokenId: string, balance: string, tokenType?: NftTokenType): RawOwnedBaseNft;
export declare function createOwnedBaseNft(address: string, tokenId: string, balance: number, tokenType?: NftTokenType): OwnedBaseNft;
export declare function createRawBaseNft(tokenId: string | number, tokenType?: NftTokenType): RawBaseNft;
export declare function createBaseNft(address: string, tokenId: string | number, tokenType?: NftTokenType): BaseNft;
export declare function createNft(title: string, address: string, tokenId: string, tokenType?: NftTokenType, tokenUri?: TokenUri, media?: TokenUri[] | undefined): Nft;
export declare function createRawNft(title: string, tokenId: string, tokenType?: NftTokenType, tokenUri?: TokenUri, media?: TokenUri[] | undefined, timeLastUpdated?: string, description?: string | Array): RawNft;
export declare function createRawOwnedNft(title: string, address: string, tokenId: string, balance: string, tokenType?: NftTokenType): RawOwnedNft;
export declare function createOwnedNft(title: string, address: string, tokenId: string, balance: number, tokenType?: NftTokenType): OwnedNft;
export declare function createRawCollectionBaseNft(tokenId: string): RawCollectionBaseNft;
export declare type Mocked = T & {
[K in keyof T]: T[K] extends Function ? T[K] & jest.Mock : T[K];
};
/** A Promise implementation for deferred resolution. */
export declare class Deferred {
promise: Promise;
constructor();
resolve: (value: R | Promise) => void;
reject: (reason: Error) => void;
}
export declare function makeNewHeadsEvent(blockNumber: number, hash: string): BlockHead;
export declare function makeLogsEvent(blockNumber: number, blockHash: string, isRemoved?: boolean, logIndex?: number): LogsEvent;