<?xml version="1.0" encoding="UTF-8"?>
<!--
	Copyright 2024-2025 MicroEJ Corp. All rights reserved.
	MicroEJ Corp. PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
<require>
	<type name="com.microej.wear.KernelServiceProvider"/>
	<method name="com.microej.wear.KernelServiceProvider.getComponentService()com.microej.wear.services.ComponentService"/>
	<method name="com.microej.wear.KernelServiceProvider.getDeviceService()com.microej.wear.services.DeviceService"/>
	<method name="com.microej.wear.KernelServiceProvider.getExternalResourceService()com.microej.wear.services.ExternalResourceService"/>
	<method name="com.microej.wear.KernelServiceProvider.getFontService()com.microej.wear.services.FontService"/>
	<method name="com.microej.wear.KernelServiceProvider.getHealthService()com.microej.wear.services.HealthService"/>
	<method name="com.microej.wear.KernelServiceProvider.getResourceService()com.microej.wear.services.ResourceService"/>
	<method name="com.microej.wear.KernelServiceProvider.getTimeService()com.microej.wear.services.TimeService"/>
	<method name="com.microej.wear.KernelServiceProvider.getTimer()ej.bon.Timer"/>

	<type name="com.microej.wear.components.Activity"/>
	<method name="com.microej.wear.components.Activity.createRenderable()com.microej.wear.components.Renderable"/>
	<method name="com.microej.wear.components.Activity.getName()java.lang.String"/>
	<method name="com.microej.wear.components.Activity.onIconAttached()void"/>
	<method name="com.microej.wear.components.Activity.onIconDetached()void"/>
	<method name="com.microej.wear.components.Activity.renderIcon(ej.microui.display.GraphicsContext,int,int,int)void"/>

	<type name="com.microej.wear.components.ComplicationDataSource"/>
	<method name="com.microej.wear.components.ComplicationDataSource.getProgress()float"/>
	<method name="com.microej.wear.components.ComplicationDataSource.getText()java.lang.String"/>
	<method name="com.microej.wear.components.ComplicationDataSource.hasIcon()boolean"/>
	<method name="com.microej.wear.components.ComplicationDataSource.hasProgress()boolean"/>
	<method name="com.microej.wear.components.ComplicationDataSource.hasText()boolean"/>
	<method name="com.microej.wear.components.ComplicationDataSource.onIconAttached()void"/>
	<method name="com.microej.wear.components.ComplicationDataSource.onIconDetached()void"/>
	<method name="com.microej.wear.components.ComplicationDataSource.renderIcon(ej.microui.display.GraphicsContext,int,int,int,int)void"/>

	<type name="com.microej.wear.components.Navigator"/>
	<method name="com.microej.wear.components.Navigator.handleGesture(com.microej.wear.components.Navigator$Gesture)boolean"/>

	<type name="com.microej.wear.components.Navigator$Gesture"/>
	<field name="com.microej.wear.components.Navigator$Gesture.BOTTOM_BUTTON_LONG_PRESS"/>
	<field name="com.microej.wear.components.Navigator$Gesture.BOTTOM_BUTTON_PRESS"/>
	<field name="com.microej.wear.components.Navigator$Gesture.MIDDLE_BUTTON_LONG_PRESS"/>
	<field name="com.microej.wear.components.Navigator$Gesture.MIDDLE_BUTTON_PRESS"/>
	<field name="com.microej.wear.components.Navigator$Gesture.POINTER_LONG_PRESS"/>
	<field name="com.microej.wear.components.Navigator$Gesture.SWIPE_DOWN"/>
	<field name="com.microej.wear.components.Navigator$Gesture.SWIPE_LEFT"/>
	<field name="com.microej.wear.components.Navigator$Gesture.SWIPE_RIGHT"/>
	<field name="com.microej.wear.components.Navigator$Gesture.SWIPE_UP"/>
	<field name="com.microej.wear.components.Navigator$Gesture.TOP_BUTTON_LONG_PRESS"/>
	<field name="com.microej.wear.components.Navigator$Gesture.TOP_BUTTON_PRESS"/>
	<method name="com.microej.wear.components.Navigator$Gesture.valueOf(java.lang.String)com.microej.wear.components.Navigator$Gesture"/>
	<method name="com.microej.wear.components.Navigator$Gesture.values()com.microej.wear.components.Navigator$Gesture[]"/>

	<type name="com.microej.wear.components.Renderable"/>
	<method name="com.microej.wear.components.Renderable.onAttached()void"/>
	<method name="com.microej.wear.components.Renderable.onDetached()void"/>
	<method name="com.microej.wear.components.Renderable.render(ej.microui.display.GraphicsContext)void"/>
	<method name="com.microej.wear.components.Renderable.showOnDisplay()void"/>

	<type name="com.microej.wear.components.TimeConfigurationListener"/>
	<method name="com.microej.wear.components.TimeConfigurationListener.onTimeConfigurationChanged(long,java.lang.String,int)void"/>

	<type name="com.microej.wear.components.Watchface"/>
	<method name="com.microej.wear.components.Watchface.createRenderable()com.microej.wear.components.Renderable"/>
	<method name="com.microej.wear.components.Watchface.onPreviewAttached()void"/>
	<method name="com.microej.wear.components.Watchface.onPreviewDetached()void"/>
	<method name="com.microej.wear.components.Watchface.renderPreview(ej.microui.display.GraphicsContext,int,int,int)void"/>

	<type name="com.microej.wear.services.ComponentService"/>
	<method name="com.microej.wear.services.ComponentService.getActivities()com.microej.wear.components.Activity[]"/>
	<method name="com.microej.wear.services.ComponentService.getComplicationDataSources()com.microej.wear.components.ComplicationDataSource[]"/>
	<method name="com.microej.wear.services.ComponentService.getNavigator()com.microej.wear.components.Navigator"/>
	<method name="com.microej.wear.services.ComponentService.getWatchfaces()com.microej.wear.components.Watchface[]"/>
	<method name="com.microej.wear.services.ComponentService.registerActivity(com.microej.wear.components.Activity)void"/>
	<method name="com.microej.wear.services.ComponentService.registerComplicationDataSource(com.microej.wear.components.ComplicationDataSource)void"/>
	<method name="com.microej.wear.services.ComponentService.registerWatchface(com.microej.wear.components.Watchface)void"/>
	<method name="com.microej.wear.services.ComponentService.setNavigator(com.microej.wear.components.Navigator)void"/>

	<type name="com.microej.wear.services.DeviceService"/>
	<method name="com.microej.wear.services.DeviceService.getBatteryLevel()int"/>
	<method name="com.microej.wear.services.DeviceService.isBatteryCharging()boolean"/>
	<method name="com.microej.wear.services.DeviceService.getDeviceName()java.lang.String"/>
	<method name="com.microej.wear.services.DeviceService.getDeviceBluetoothAddress()java.lang.String"/>

	<type name="com.microej.wear.services.ExternalResourceService"/>
	<method name="com.microej.wear.services.ExternalResourceService.createExternalImage(java.lang.String,int,com.microej.wear.services.ExternalResourceService$ImageFormat)com.microej.wear.services.ExternalResourceService$Writer"/>
	<method name="com.microej.wear.services.ExternalResourceService.createExternalResource(java.lang.String,int)com.microej.wear.services.ExternalResourceService$Writer"/>
	<method name="com.microej.wear.services.ExternalResourceService.deleteExternalResource(java.lang.String)boolean"/>
	<method name="com.microej.wear.services.ExternalResourceService.getExternalResourcePath(java.lang.String)java.lang.String"/>

	<type name="com.microej.wear.services.ExternalResourceService$ImageFormat"/>
	<field name="com.microej.wear.services.ExternalResourceService$ImageFormat.A8"/>
	<field name="com.microej.wear.services.ExternalResourceService$ImageFormat.ARGB4444"/>
	<field name="com.microej.wear.services.ExternalResourceService$ImageFormat.RGB565"/>
	<method name="com.microej.wear.services.ExternalResourceService$ImageFormat.valueOf(java.lang.String)com.microej.wear.services.ExternalResourceService$ImageFormat"/>
	<method name="com.microej.wear.services.ExternalResourceService$ImageFormat.values()com.microej.wear.services.ExternalResourceService$ImageFormat[]"/>

	<type name="com.microej.wear.services.ExternalResourceService$Writer"/>
	<method name="com.microej.wear.services.ExternalResourceService$Writer.commit()void"/>
	<method name="com.microej.wear.services.ExternalResourceService$Writer.close()void"/>
	<method name="com.microej.wear.services.ExternalResourceService$Writer.write(byte[],int,int,int)void"/>

	<type name="com.microej.wear.services.FontService"/>
	<method name="com.microej.wear.services.FontService.getBoldItalicFont()ej.microvg.VectorFont"/>
	<method name="com.microej.wear.services.FontService.getLightFont()ej.microvg.VectorFont"/>
	<method name="com.microej.wear.services.FontService.getRegularFont()ej.microvg.VectorFont"/>
	<method name="com.microej.wear.services.FontService.getMonospaceFont()ej.microvg.VectorFont"/>
	<method name="com.microej.wear.services.FontService.getSemiBoldFont()ej.microvg.VectorFont"/>

	<type name="com.microej.wear.services.HealthService"/>
	<method name="com.microej.wear.services.HealthService.getAwakeSleepDuration()int"/>
	<method name="com.microej.wear.services.HealthService.getCalories()int"/>
	<method name="com.microej.wear.services.HealthService.getDeepSleepDuration()int"/>
	<method name="com.microej.wear.services.HealthService.getHeartRate()int"/>
	<method name="com.microej.wear.services.HealthService.getLightSleepDuration()int"/>
	<method name="com.microej.wear.services.HealthService.getOxygenSaturation()int"/>
	<method name="com.microej.wear.services.HealthService.getRemSleepDuration()int"/>
	<method name="com.microej.wear.services.HealthService.getSteps()int"/>

	<type name="com.microej.wear.services.ResourceService"/>
	<method name="com.microej.wear.services.ResourceService.getImagePath(java.lang.String)java.lang.String"/>

	<type name="com.microej.wear.services.TimeService"/>
	<method name="com.microej.wear.services.TimeService.addConfigurationListener(com.microej.wear.components.TimeConfigurationListener)void"/>
	<method name="com.microej.wear.services.TimeService.getCurrentTime()long"/>
	<method name="com.microej.wear.services.TimeService.getTimeZoneId()java.lang.String"/>
	<method name="com.microej.wear.services.TimeService.getTimeZoneOffset()int"/>
	<method name="com.microej.wear.services.TimeService.removeConfigurationListener(com.microej.wear.components.TimeConfigurationListener)void"/>

</require>
