interface IRandomBeaconConsumer {

  /**
   * @notice Receives relay entry produced by Keep Random Beacon. This function
   * should be called only by Keep Random Beacon.
   *
   * @param relayEntry Relay entry (random number) produced by Keep Random
   * Beacon.
   */
  function __beaconCallback(uint256 relayEntry) external;
}
/**
 * @title Keep Random Beacon Consumer
 *
 * @notice Receives Keep Random Beacon relay entries with `__beaconCallback`
 * function. Contract implementing this interface does not have to be the one
 * requesting relay entry but it is the one receiving the requested relay entry
 * once it is produced.
 *
 * @dev Use this interface to indicate the contract receives relay entries from
 * the beacon and to ensure the correctness of callback function signature.
 */
function __beaconCallback(uint256 relayEntry) external;

/**
 * @notice Receives relay entry produced by Keep Random Beacon. This function
 * should be called only by Keep Random Beacon.
 *
 * @param relayEntry Relay entry (random number) produced by Keep Random
 * Beacon.
 */