// Signature format: 4.0
package androidx.wear.watchface.client {

  public final class ComplicationSlotMetadata {
    ctor public ComplicationSlotMetadata(androidx.wear.watchface.complications.ComplicationSlotBounds? bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isInitiallyEnabled, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras);
    method public androidx.wear.watchface.complications.ComplicationSlotBounds? getBounds();
    method public int getBoundsType();
    method public android.os.Bundle getComplicationConfigExtras();
    method public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getDefaultDataSourcePolicy();
    method public boolean getFixedComplicationDataSource();
    method public java.util.List<androidx.wear.watchface.complications.data.ComplicationType> getSupportedTypes();
    method public boolean isInitiallyEnabled();
    property public final androidx.wear.watchface.complications.ComplicationSlotBounds? bounds;
    property public final int boundsType;
    property public final android.os.Bundle complicationConfigExtras;
    property public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy;
    property public final boolean fixedComplicationDataSource;
    property public final boolean isInitiallyEnabled;
    property public final java.util.List<androidx.wear.watchface.complications.data.ComplicationType> supportedTypes;
  }

  public final class ComplicationSlotState {
    ctor public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras, Integer? nameResourceId, Integer? screenReaderNameResourceId);
    ctor @Deprecated public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras);
    method public android.graphics.Rect getBounds();
    method public int getBoundsType();
    method public android.os.Bundle getComplicationConfigExtras();
    method public androidx.wear.watchface.complications.data.ComplicationType getCurrentType();
    method public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getDefaultDataSourcePolicy();
    method @Deprecated public androidx.wear.watchface.complications.data.ComplicationType getDefaultDataSourceType();
    method public boolean getFixedComplicationDataSource();
    method public Integer? getNameResourceId();
    method public Integer? getScreenReaderNameResourceId();
    method public java.util.List<androidx.wear.watchface.complications.data.ComplicationType> getSupportedTypes();
    method public boolean isEnabled();
    method public boolean isInitiallyEnabled();
    property public final android.graphics.Rect bounds;
    property public final int boundsType;
    property public final android.os.Bundle complicationConfigExtras;
    property public final androidx.wear.watchface.complications.data.ComplicationType currentType;
    property public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy;
    property @Deprecated public final androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType;
    property public final boolean fixedComplicationDataSource;
    property public final boolean isEnabled;
    property public final boolean isInitiallyEnabled;
    property public final Integer? nameResourceId;
    property public final Integer? screenReaderNameResourceId;
    property public final java.util.List<androidx.wear.watchface.complications.data.ComplicationType> supportedTypes;
  }

  @Deprecated public final class DefaultComplicationDataSourcePolicyAndType {
    ctor @Deprecated public DefaultComplicationDataSourcePolicyAndType(androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy policy, androidx.wear.watchface.complications.data.ComplicationType type);
    method @Deprecated public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getPolicy();
    method @Deprecated public androidx.wear.watchface.complications.data.ComplicationType getType();
    property public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy policy;
    property public final androidx.wear.watchface.complications.data.ComplicationType type;
  }

  public final class DeviceConfig {
    ctor public DeviceConfig(boolean hasLowBitAmbient, boolean hasBurnInProtection, long analogPreviewReferenceTimeMillis, long digitalPreviewReferenceTimeMillis);
    method public long getAnalogPreviewReferenceTimeMillis();
    method public long getDigitalPreviewReferenceTimeMillis();
    method public boolean getHasBurnInProtection();
    method public boolean getHasLowBitAmbient();
    property public final long analogPreviewReferenceTimeMillis;
    property public final long digitalPreviewReferenceTimeMillis;
    property public final boolean hasBurnInProtection;
    property public final boolean hasLowBitAmbient;
  }

  public final class DeviceConfigKt {
  }

  public interface EditorListener {
    method public void onEditorStateChanged(androidx.wear.watchface.client.EditorState editorState);
  }

  public interface EditorServiceClient {
    method public void addListener(androidx.wear.watchface.client.EditorListener editorListener, java.util.concurrent.Executor listenerExecutor);
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void closeEditor() throws android.os.RemoteException;
    method public void removeListener(androidx.wear.watchface.client.EditorListener editorListener);
  }

  public final class EditorState {
    method public java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData> getPreviewComplicationsData();
    method public android.graphics.Bitmap? getPreviewImage();
    method public boolean getShouldCommitChanges();
    method public androidx.wear.watchface.style.UserStyleData getUserStyle();
    method public androidx.wear.watchface.client.WatchFaceId getWatchFaceId();
    property public final java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData> previewComplicationsData;
    property public final android.graphics.Bitmap? previewImage;
    property public final boolean shouldCommitChanges;
    property public final androidx.wear.watchface.style.UserStyleData userStyle;
    property public final androidx.wear.watchface.client.WatchFaceId watchFaceId;
  }

  public final class EditorStateKt {
  }

  public interface HeadlessWatchFaceClient extends java.lang.AutoCloseable {
    method @AnyThread public void addClientDisconnectListener(androidx.wear.watchface.client.HeadlessWatchFaceClient.ClientDisconnectListener listener, java.util.concurrent.Executor executor);
    method public default static androidx.wear.watchface.client.HeadlessWatchFaceClient createFromBundle(android.os.Bundle bundle);
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> getComplicationSlotsState();
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.time.Instant getPreviewReferenceInstant();
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default byte[] getUserStyleSchemaDigestHash() throws android.os.RemoteException;
    method @AnyThread public boolean isConnectionAlive();
    method @AnyThread public void removeClientDisconnectListener(androidx.wear.watchface.client.HeadlessWatchFaceClient.ClientDisconnectListener listener);
    method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap? renderComplicationToBitmap(int complicationSlotId, androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.complications.data.ComplicationData complicationData, androidx.wear.watchface.style.UserStyle? userStyle) throws android.os.RemoteException;
    method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.style.UserStyle? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData) throws android.os.RemoteException;
    method public android.os.Bundle toBundle();
    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> complicationSlotsState;
    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.time.Instant previewReferenceInstant;
    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
    field public static final String BINDER_KEY = "HeadlessWatchFaceClient";
    field public static final androidx.wear.watchface.client.HeadlessWatchFaceClient.Companion Companion;
  }

  public static interface HeadlessWatchFaceClient.ClientDisconnectListener {
    method public void onClientDisconnected();
  }

  public static final class HeadlessWatchFaceClient.Companion {
    method public androidx.wear.watchface.client.HeadlessWatchFaceClient createFromBundle(android.os.Bundle bundle);
  }

  public interface InteractiveWatchFaceClient extends java.lang.AutoCloseable {
    method @AnyThread public void addClientDisconnectListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.ClientDisconnectListener listener, java.util.concurrent.Executor executor);
    method public void addOnWatchFaceReadyListener(java.util.concurrent.Executor executor, androidx.wear.watchface.client.InteractiveWatchFaceClient.OnWatchFaceReadyListener listener);
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default Integer? getComplicationIdAt(@Px int x, @Px int y) throws android.os.RemoteException;
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> getComplicationSlotsState();
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.List<androidx.wear.watchface.ContentDescriptionLabel> getContentDescriptionLabels();
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public String getInstanceId();
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.OverlayStyle getOverlayStyle();
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.time.Instant getPreviewReferenceInstant();
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
    method @AnyThread public boolean isConnectionAlive();
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void performAmbientTick() throws android.os.RemoteException;
    method @AnyThread public void removeClientDisconnectListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.ClientDisconnectListener listener);
    method public void removeOnWatchFaceReadyListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.OnWatchFaceReadyListener listener);
    method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.style.UserStyle? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? idAndComplicationData) throws android.os.RemoteException;
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void sendTouchEvent(@Px int xPosition, @Px int yPosition, @androidx.wear.watchface.TapType int tapType) throws android.os.RemoteException;
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void setWatchUiState(androidx.wear.watchface.client.WatchUiState watchUiState) throws android.os.RemoteException;
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void updateComplicationData(java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData> slotIdToComplicationData) throws android.os.RemoteException;
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void updateWatchFaceInstance(String newInstanceId, androidx.wear.watchface.style.UserStyle userStyle) throws android.os.RemoteException;
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void updateWatchFaceInstance(String newInstanceId, androidx.wear.watchface.style.UserStyleData userStyle) throws android.os.RemoteException;
    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> complicationSlotsState;
    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.util.List<androidx.wear.watchface.ContentDescriptionLabel> contentDescriptionLabels;
    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract String instanceId;
    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.OverlayStyle overlayStyle;
    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.time.Instant previewReferenceInstant;
    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
    field public static final androidx.wear.watchface.client.InteractiveWatchFaceClient.Companion Companion;
    field public static final int TAP_TYPE_CANCEL = 1; // 0x1
    field public static final int TAP_TYPE_DOWN = 0; // 0x0
    field public static final int TAP_TYPE_UP = 2; // 0x2
  }

  public static interface InteractiveWatchFaceClient.ClientDisconnectListener {
    method public void onClientDisconnected();
  }

  public static final class InteractiveWatchFaceClient.Companion {
    field public static final int TAP_TYPE_CANCEL = 1; // 0x1
    field public static final int TAP_TYPE_DOWN = 0; // 0x0
    field public static final int TAP_TYPE_UP = 2; // 0x2
  }

  public static fun interface InteractiveWatchFaceClient.OnWatchFaceReadyListener {
    method public void onWatchFaceReady();
  }

  public final class OverlayStyle {
    ctor public OverlayStyle(android.graphics.Color? backgroundColor, android.graphics.Color? foregroundColor);
    ctor public OverlayStyle();
    method public android.graphics.Color? getBackgroundColor();
    method public android.graphics.Color? getForegroundColor();
    property public final android.graphics.Color? backgroundColor;
    property public final android.graphics.Color? foregroundColor;
  }

  public interface WatchFaceControlClient extends java.lang.AutoCloseable {
    method @Deprecated @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, @Px int surfaceWidth, @Px int surfaceHeight) throws android.os.RemoteException;
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(String id, android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, @Px int surfaceWidth, @Px int surfaceHeight) throws android.os.RemoteException;
    method @kotlin.jvm.Throws(exceptionClasses={ServiceNotBoundException::class, ServiceStartFailureException::class}) public default static suspend Object? createWatchFaceControlClient(android.content.Context context, String watchFacePackageName, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.WatchFaceControlClient>) throws androidx.wear.watchface.client.WatchFaceControlClient.ServiceNotBoundException, androidx.wear.watchface.client.WatchFaceControlClient.ServiceStartFailureException;
    method @Deprecated @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.DefaultComplicationDataSourcePolicyAndType> getDefaultComplicationDataSourcePoliciesAndType(android.content.ComponentName watchFaceName) throws android.os.RemoteException;
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.EditorServiceClient getEditorServiceClient() throws android.os.RemoteException;
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.InteractiveWatchFaceClient? getInteractiveWatchFaceClientInstance(String instanceId) throws android.os.RemoteException;
    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public suspend Object? getOrCreateInteractiveWatchFaceClient(String id, androidx.wear.watchface.client.DeviceConfig deviceConfig, androidx.wear.watchface.client.WatchUiState watchUiState, androidx.wear.watchface.style.UserStyleData? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.InteractiveWatchFaceClient>) throws android.os.RemoteException;
    method public default boolean hasComplicationDataCache();
    field public static final androidx.wear.watchface.client.WatchFaceControlClient.Companion Companion;
  }

  public static final class WatchFaceControlClient.Companion {
    method @kotlin.jvm.Throws(exceptionClasses={ServiceNotBoundException::class, ServiceStartFailureException::class}) public suspend Object? createWatchFaceControlClient(android.content.Context context, String watchFacePackageName, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.WatchFaceControlClient>) throws androidx.wear.watchface.client.WatchFaceControlClient.ServiceNotBoundException, androidx.wear.watchface.client.WatchFaceControlClient.ServiceStartFailureException;
  }

  public static final class WatchFaceControlClient.ServiceNotBoundException extends java.lang.Exception {
    ctor public WatchFaceControlClient.ServiceNotBoundException();
  }

  public static final class WatchFaceControlClient.ServiceStartFailureException extends java.lang.Exception {
    ctor public WatchFaceControlClient.ServiceStartFailureException(optional String message);
  }

  public final class WatchFaceExceptionKt {
  }

  public final class WatchFaceId {
    ctor public WatchFaceId(String id);
    method public String getId();
    property public final String id;
  }

  public interface WatchFaceMetadataClient extends java.lang.AutoCloseable {
    method public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotMetadata> getComplicationSlotMetadataMap();
    method public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
    method public boolean isUserStyleSchemaStatic();
    property public abstract boolean isUserStyleSchemaStatic;
    field public static final androidx.wear.watchface.client.WatchFaceMetadataClient.Companion Companion;
  }

  public static final class WatchFaceMetadataClient.Companion {
    method @kotlin.jvm.Throws(exceptionClasses={ServiceNotBoundException::class, ServiceStartFailureException::class, PackageManager.NameNotFoundException::class}) public suspend Object? create(android.content.Context context, android.content.ComponentName watchFaceName, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.WatchFaceMetadataClient>) throws android.content.pm.PackageManager.NameNotFoundException, androidx.wear.watchface.client.WatchFaceMetadataClient.ServiceNotBoundException, androidx.wear.watchface.client.WatchFaceMetadataClient.ServiceStartFailureException;
  }

  public static final class WatchFaceMetadataClient.ServiceNotBoundException extends java.lang.Exception {
    ctor public WatchFaceMetadataClient.ServiceNotBoundException();
  }

  public static final class WatchFaceMetadataClient.ServiceStartFailureException extends java.lang.Exception {
    ctor public WatchFaceMetadataClient.ServiceStartFailureException(optional String message);
  }

  public final class WatchUiState {
    ctor public WatchUiState(boolean inAmbientMode, int interruptionFilter);
    method public boolean getInAmbientMode();
    method public int getInterruptionFilter();
    property public final boolean inAmbientMode;
    property public final int interruptionFilter;
  }

}

