interface IProphetPoolFactory {
    /**
     * Creates a ProphetPool smart contract set the manager(owner) of the pool.
     */
    function create(string memory, address, address, address) external returns (address);

    /**
     * Return WETH address.
     */
    function getWeth() external view returns (address);

    /**
     * Return VRF Key Hash.
     */
    function getVrfKeyHash() external view returns (bytes32);

    /**
     * Return VRF Fee.
     */
    function getVrfFee() external view returns (uint256);

    /**
     * Return Link Token address for VRF.
     */
    function getLinkToken() external view returns (address);

    /**
     * Return VRF coordinator.
     */
    function getVrfCoordinator() external view returns (address);

    /**
     * Return all pools addreses
     */
    function getAllPools() external view returns (address[] memory);
}
/**
 * @title IProphetPoolFactory
 * @author Prophecy
 */
function create(string memory, address, address, address) external returns (address);

/**
 * Creates a ProphetPool smart contract set the manager(owner) of the pool.
 */