import { BigNumber, Contract, Signer } from 'ethers';
import { Contract as ContractMulti } from 'ethcall';
import { Address, SignerOrProvider, TransactionOverrides } from '../types';
export declare const getErc721PoolContract: (poolAddress: Address, provider: SignerOrProvider) => Contract;
export declare const getErc721PoolContractMulti: (poolAddress: Address) => ContractMulti;
export declare function approve(signer: Signer, poolAddress: Address, tokenAddress: Address, tokenId: number, overrides?: TransactionOverrides): Promise<import("../types").WrappedTransaction>;
export declare function approveAll(signer: Signer, poolAddress: Address, tokenAddress: Address, overrides?: TransactionOverrides): Promise<import("../types").WrappedTransaction>;
export declare function addCollateral(contract: Contract, tokenIds: Array<number>, bucketIndex: number, expiry?: number, overrides?: TransactionOverrides): Promise<import("../types").WrappedTransaction>;
export declare function removeCollateral(contract: Contract, noOfNFTsToRemove: number, bucketIndex: number, overrides?: TransactionOverrides): Promise<import("../types").WrappedTransaction>;
export declare function drawDebt(contract: Contract, borrowerAddress: Address, amountToBorrow: BigNumber, limitIndex: number, tokenIdsToPledge: Array<number>, overrides?: TransactionOverrides): Promise<import("../types").WrappedTransaction>;
export declare function repayDebt(contract: Contract, borrowerAddress: Address, maxQuoteTokenAmountToRepay: BigNumber, noOfNFTsToPull: number, collateralReceiver: Address, limitIndex: number, overrides?: TransactionOverrides): Promise<import("../types").WrappedTransaction>;
export declare function mergeOrRemoveCollateral(contract: Contract, removalIndexes: Array<number>, noOfNFTsToRemove: number, // whole number of NFTs to remove, converted to WAD by the contract
toIndex: number, overrides?: TransactionOverrides): Promise<import("../types").WrappedTransaction>;
export declare function isSubset(contract: Contract): Promise<boolean>;
