import { BigNumber, Signer } from 'ethers';
import { Address, IERC20PoolFactory, SignerOrProvider } from '../types';
import { ContractBase } from './ContractBase';
import { FungiblePool } from './FungiblePool';
/**
 * Factory used to find or create pools with ERC20 collateral.
 */
export declare class FungiblePoolFactory extends ContractBase implements IERC20PoolFactory {
    constructor(signerOrProvider: SignerOrProvider);
    /**
     * Creates a new pool.
     * @param signer pool creator
     * @param collateralAddress address of the ERC20 collateral token
     * @param quoteAddress address of the ERC20 quote token
     * @param interestRate initial interest rate, between 1%-10%, as WAD
     * @returns promise to transaction
     */
    deployPool(signer: Signer, collateralAddress: Address, quoteAddress: Address, interestRate: BigNumber): Promise<import("../types").WrappedTransaction>;
    /**
     * Returns existing pool for two tokens.
     * @param collateralAddress token address
     * @param quoteAddress token address
     * @returns {@link FungiblePool} modeling desired pool
     */
    getPool(collateralAddress: Address, quoteAddress: Address): Promise<FungiblePool>;
    /**
     * Returns existing pool.
     * @param poolAddress address of pool
     * @returns {@link FungiblePool} modeling desired pool
     */
    getPoolByAddress(poolAddress: Address): Promise<FungiblePool>;
    /**
     * Finds address of an existing pool for two tokens.
     * @param collateralAddress token address
     * @param quoteAddress token address
     * @returns address of the existing pool
     */
    getPoolAddress(collateralAddress: Address, quoteAddress: Address): Promise<any>;
}
