import { Signer, BigNumber, ContractTransaction, Contract } from 'ethers';
import { ITimeBasedNFTRentals, NFTStandard } from './types';
import { ContractType, SupportedChainIds } from './networkConfig';
declare class TimeBasedNFTRentals implements ITimeBasedNFTRentals {
    readonly signer: Signer;
    protected contract: Contract;
    constructor(_signer: Signer, chainId: SupportedChainIds, type: ContractType);
    lend(nftStandards: NFTStandard[], nftAddresses: string[], tokenIds: BigNumber[], lendAmounts: BigNumber[], maxRentDurations: number[], minRentDurations: number[], dailyRentPrices: BigNumber[], paymentOptions: number[], collateralPrices: BigNumber[], allowedRenters: string[][][]): Promise<ContractTransaction>;
    rent(nftStandards: NFTStandard[], nftAddresses: string[], tokenIds: BigNumber[], lendingIds: BigNumber[], rentDurations: number[], rentAmounts: BigNumber[]): Promise<ContractTransaction>;
    stopRenting(nftStandards: NFTStandard[], nftAddresses: string[], tokenIds: BigNumber[], lendingIds: BigNumber[], rentingIds: BigNumber[]): Promise<ContractTransaction>;
    stopLending(nftStandards: NFTStandard[], nftAddresses: string[], tokenIds: BigNumber[], lendingIds: BigNumber[]): Promise<ContractTransaction>;
    claimRentOrCollateral(nftStandards: NFTStandard[], nftAddresses: string[], tokenIds: BigNumber[], lendingIds: BigNumber[], rentingIds: BigNumber[]): Promise<ContractTransaction>;
}
export declare class CollateralizedNFTRentals extends TimeBasedNFTRentals {
    constructor(_signer: Signer, _chainId: SupportedChainIds);
}
export declare class CollateralFreeNFTRentals extends TimeBasedNFTRentals {
    constructor(_signer: Signer, _chainId: SupportedChainIds);
}
export {};
