/**
 * NFT Barter
 * @author Ebube Ud <kripsonud@gmail.com>
 */
import { ethers } from 'ethers';
import { TokenTransferObject, PeerExchangeInfo } from './interfaces';
import VerificationHandler from './tokenVerification';
import BarterConfig from './config';
import Sale from './sale';
export default class Barter {
    appName: string;
    verififcationHandler: VerificationHandler;
    config: BarterConfig;
    provider: ethers.providers.JsonRpcProvider;
    constructor(_provider: ethers.providers.JsonRpcProvider);
    /**
     *
     * @param address Contract address of the NFT
     */
    getBaseUri: (address: string) => string;
    verifyTransferAssets: (tokenTransferObject: TokenTransferObject) => Promise<void>;
    signTransferTransaction: (tokenTransferObject: TokenTransferObject) => Promise<TokenTransferObject & {
        signature: string;
    }>;
    executeTransfer: (data: PeerExchangeInfo) => Promise<boolean>;
    formatTokenTransferObject: (data: TokenTransferObject) => TokenTransferObject;
    getSignerAddress: () => Promise<string>;
    sale: (id?: string) => Sale;
    convertToStruct: (data: TokenTransferObject & {
        signature: string;
    }) => any[];
}
