import { BigNumber } from 'ethers';
import { NFTStandard } from './types';
declare type IObjectKeysValues = string[] | BigNumber[] | boolean[] | number[] | string[][] | string[][][] | number[][] | [string[], number[]][];
interface IObjectKeys {
    [key: string]: IObjectKeysValues | undefined;
}
interface PrepareBatch extends IObjectKeys {
    nftStandards: NFTStandard[];
    nftAddresses: string[];
    tokenIds: BigNumber[];
    lendAmounts?: BigNumber[];
    rentAmounts?: BigNumber[];
    maxRentDurations?: number[];
    minRentDurations?: number[];
    dailyRentPrices?: BigNumber[];
    collateralPrices?: BigNumber[];
    paymentOptions?: number[];
    rentDurations?: number[];
    lendingIds?: BigNumber[];
    rentingIds?: BigNumber[];
    allowedRenters?: string[][][];
}
interface PrepareRevenueShareBatch extends IObjectKeys {
    nftStandards?: NFTStandard[];
    nftAddresses: string[];
    tokenIds: BigNumber[];
    lendAmounts?: BigNumber[];
    rentAmounts?: BigNumber[];
    maxRentDurations?: number[];
    paymentOptions?: number[];
    rentDurations?: number[];
    lendingIds?: BigNumber[];
    rentingIds?: BigNumber[];
    upfrontFees?: BigNumber[];
    revenueShareInfos?: [string[], number[]][];
    allowedRenters?: string[][][];
    revenueAmounts?: BigNumber[];
    renters?: string[];
    revenueTokenAddress?: string[];
}
/**
 * To spend as little gas as possible, arguments must follow a particular format
 * when passed to the contract. This function prepares whatever inputs you want
 * to send, and returns the inputs in an optimal format.
 *
 * This algorithm's time complexity is pretty awful. But, it will never run on
 * large arrays, so it doesn't really matter.
 * @param args
 */
export declare const prepareBatch: (args: PrepareBatch) => PrepareBatch;
export declare const prepareRevenueShareBatch: (args: PrepareRevenueShareBatch) => PrepareRevenueShareBatch;
export declare const bigNumberToWei: (amount: string | number, decimal?: string | number) => string;
export declare const bigNumberToEther: (amount: string | number, decimal?: string | number) => string;
export {};
