interface IBeacon {
    /**
     * @dev Must return an address that can be used as a delegate call target.
     *
     * {BeaconProxy} will check that this address is a contract.
     */
    function childImplementation() external view returns (address);
    function upgradeChildTo(address newImplementation) external;
}
/**
 * @dev This is the interface that {BeaconProxy} expects of its beacon.
 */
function childImplementation() external view returns (address);
/**
 * @dev Must return an address that can be used as a delegate call target.
 *
 * {BeaconProxy} will check that this address is a contract.
 */