// Signature format: 4.0
package androidx.car.app {

  @androidx.car.app.annotations.CarProtocol public final class AppInfo {
    ctor @VisibleForTesting public AppInfo(int, int, String);
    method public int getLatestCarAppApiLevel();
    method public String getLibraryDisplayVersion();
    method public int getMinCarAppApiLevel();
    field public static final String MIN_API_LEVEL_METADATA_KEY = "androidx.car.app.minCarApiLevel";
  }

  public class AppManager implements androidx.car.app.managers.Manager {
    method public void invalidate();
    method public void setSurfaceCallback(androidx.car.app.SurfaceCallback?);
    method public void showToast(CharSequence, int);
  }

  public final class CarAppPermission {
    method public static void checkHasLibraryPermission(android.content.Context, String);
    method public static void checkHasPermission(android.content.Context, String);
    field public static final String ACCESS_SURFACE = "androidx.car.app.ACCESS_SURFACE";
    field public static final String MAP_TEMPLATES = "androidx.car.app.MAP_TEMPLATES";
    field public static final String NAVIGATION_TEMPLATES = "androidx.car.app.NAVIGATION_TEMPLATES";
  }

  public abstract class CarAppService extends android.app.Service {
    ctor public CarAppService();
    method public abstract androidx.car.app.validation.HostValidator createHostValidator();
    method @CallSuper public final void dump(java.io.FileDescriptor, java.io.PrintWriter, String![]?);
    method public final androidx.car.app.Session? getCurrentSession();
    method public final androidx.car.app.HostInfo? getHostInfo();
    method @CallSuper public final android.os.IBinder onBind(android.content.Intent);
    method public abstract androidx.car.app.Session onCreateSession();
    method public final boolean onUnbind(android.content.Intent);
    field public static final String CATEGORY_CHARGING_APP = "androidx.car.app.category.CHARGING";
    field public static final String CATEGORY_NAVIGATION_APP = "androidx.car.app.category.NAVIGATION";
    field public static final String CATEGORY_PARKING_APP = "androidx.car.app.category.PARKING";
    field public static final String SERVICE_INTERFACE = "androidx.car.app.CarAppService";
  }

  public class CarContext extends android.content.ContextWrapper {
    method public void finishCarApp();
    method @androidx.car.app.annotations.RequiresCarApi(2) public android.content.ComponentName? getCallingComponent();
    method public int getCarAppApiLevel();
    method public Object getCarService(String);
    method public <T> T getCarService(Class<T!>);
    method public String getCarServiceName(Class<?>);
    method public androidx.car.app.HostInfo? getHostInfo();
    method public androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher();
    method public boolean isDarkMode();
    method public void requestPermissions(java.util.List<java.lang.String!>, androidx.car.app.OnRequestPermissionsListener);
    method public void requestPermissions(java.util.List<java.lang.String!>, java.util.concurrent.Executor, androidx.car.app.OnRequestPermissionsListener);
    method @androidx.car.app.annotations.RequiresCarApi(2) public void setCarAppResult(int, android.content.Intent?);
    method public void startCarApp(android.content.Intent);
    method @Deprecated public static void startCarApp(android.content.Intent, android.content.Intent);
    field public static final String ACTION_NAVIGATE = "androidx.car.app.action.NAVIGATE";
    field public static final String APP_SERVICE = "app";
    field public static final String CAR_SERVICE = "car";
    field @androidx.car.app.annotations.RequiresCarApi(2) public static final String CONSTRAINT_SERVICE = "constraints";
    field public static final String EXTRA_START_CAR_APP_BINDER_KEY = "androidx.car.app.extra.START_CAR_APP_BINDER_KEY";
    field @androidx.car.app.annotations.RequiresCarApi(3) public static final String HARDWARE_SERVICE = "hardware";
    field public static final String NAVIGATION_SERVICE = "navigation";
    field public static final String SCREEN_SERVICE = "screen";
  }

  public final class CarToast {
    method public static androidx.car.app.CarToast makeText(androidx.car.app.CarContext, @StringRes int, int);
    method public static androidx.car.app.CarToast makeText(androidx.car.app.CarContext, CharSequence, int);
    method public void setDuration(int);
    method public void setText(@StringRes int);
    method public void setText(CharSequence);
    method public void show();
    field public static final int LENGTH_LONG = 1; // 0x1
    field public static final int LENGTH_SHORT = 0; // 0x0
  }

  @androidx.car.app.annotations.CarProtocol public final class FailureResponse {
    ctor public FailureResponse(Throwable);
    method public int getErrorType();
    method public String getStackTrace();
    field public static final int BUNDLER_EXCEPTION = 1; // 0x1
    field public static final int ILLEGAL_STATE_EXCEPTION = 2; // 0x2
    field public static final int INVALID_PARAMETER_EXCEPTION = 3; // 0x3
    field public static final int REMOTE_EXCEPTION = 6; // 0x6
    field public static final int RUNTIME_EXCEPTION = 5; // 0x5
    field public static final int SECURITY_EXCEPTION = 4; // 0x4
    field public static final int UNKNOWN_ERROR = 0; // 0x0
  }

  @androidx.car.app.annotations.CarProtocol public final class HandshakeInfo {
    ctor public HandshakeInfo(String, int);
    method public int getHostCarAppApiLevel();
    method public String getHostPackageName();
  }

  public final class HostException extends java.lang.RuntimeException {
    ctor public HostException(String);
    ctor public HostException(String, Throwable);
    ctor public HostException(Throwable);
  }

  public final class HostInfo {
    ctor public HostInfo(String, int);
    method public String getPackageName();
    method public int getUid();
  }

  @androidx.car.app.annotations.CarProtocol public interface OnDoneCallback {
    method public default void onFailure(androidx.car.app.serialization.Bundleable);
    method public default void onSuccess(androidx.car.app.serialization.Bundleable?);
  }

  public interface OnRequestPermissionsListener {
    method public void onRequestPermissionsResult(java.util.List<java.lang.String!>, java.util.List<java.lang.String!>);
  }

  public interface OnScreenResultListener {
    method public void onScreenResult(Object?);
  }

  public abstract class Screen implements androidx.lifecycle.LifecycleOwner {
    ctor protected Screen(androidx.car.app.CarContext);
    method public final void finish();
    method public final androidx.car.app.CarContext getCarContext();
    method public final androidx.lifecycle.Lifecycle getLifecycle();
    method public String? getMarker();
    method public final androidx.car.app.ScreenManager getScreenManager();
    method public final void invalidate();
    method public abstract androidx.car.app.model.Template onGetTemplate();
    method public void setMarker(String?);
    method public void setResult(Object?);
  }

  @MainThread public class ScreenManager implements androidx.car.app.managers.Manager {
    method public int getStackSize();
    method public androidx.car.app.Screen getTop();
    method public void pop();
    method public void popTo(String);
    method public void popToRoot();
    method public void push(androidx.car.app.Screen);
    method public void pushForResult(androidx.car.app.Screen, androidx.car.app.OnScreenResultListener);
    method public void remove(androidx.car.app.Screen);
  }

  public abstract class Session implements androidx.lifecycle.LifecycleOwner {
    ctor public Session();
    method public final androidx.car.app.CarContext getCarContext();
    method public androidx.lifecycle.Lifecycle getLifecycle();
    method public void onCarConfigurationChanged(android.content.res.Configuration);
    method public abstract androidx.car.app.Screen onCreateScreen(android.content.Intent);
    method public void onNewIntent(android.content.Intent);
  }

  public interface SurfaceCallback {
    method @androidx.car.app.annotations.RequiresCarApi(2) public default void onFling(float, float);
    method @androidx.car.app.annotations.RequiresCarApi(2) public default void onScale(float, float, float);
    method @androidx.car.app.annotations.RequiresCarApi(2) public default void onScroll(float, float);
    method public default void onStableAreaChanged(android.graphics.Rect);
    method public default void onSurfaceAvailable(androidx.car.app.SurfaceContainer);
    method public default void onSurfaceDestroyed(androidx.car.app.SurfaceContainer);
    method public default void onVisibleAreaChanged(android.graphics.Rect);
  }

  @androidx.car.app.annotations.CarProtocol public final class SurfaceContainer {
    ctor public SurfaceContainer(android.view.Surface?, int, int, int);
    method public int getDpi();
    method public int getHeight();
    method public android.view.Surface? getSurface();
    method public int getWidth();
  }

}

package androidx.car.app.annotations {

  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.PARAMETER}) public @interface CarProtocol {
  }

  @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) public @interface ExperimentalCarApi {
  }

  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) public @interface RequiresCarApi {
    method public abstract int value();
  }

}

package androidx.car.app.connection {

  public final class CarConnection {
    ctor public CarConnection(android.content.Context);
    method public androidx.lifecycle.LiveData<java.lang.Integer!> getType();
    field public static final String ACTION_CAR_CONNECTION_UPDATED = "androidx.car.app.connection.action.CAR_CONNECTION_UPDATED";
    field public static final String CAR_CONNECTION_STATE = "CarConnectionState";
    field public static final int CONNECTION_TYPE_NATIVE = 1; // 0x1
    field public static final int CONNECTION_TYPE_NOT_CONNECTED = 0; // 0x0
    field public static final int CONNECTION_TYPE_PROJECTION = 2; // 0x2
  }

}

package androidx.car.app.constraints {

  @androidx.car.app.annotations.RequiresCarApi(2) public class ConstraintManager implements androidx.car.app.managers.Manager {
    method public int getContentLimit(int);
    field public static final int CONTENT_LIMIT_TYPE_GRID = 1; // 0x1
    field public static final int CONTENT_LIMIT_TYPE_LIST = 0; // 0x0
    field public static final int CONTENT_LIMIT_TYPE_PANE = 4; // 0x4
    field public static final int CONTENT_LIMIT_TYPE_PLACE_LIST = 2; // 0x2
    field public static final int CONTENT_LIMIT_TYPE_ROUTE_LIST = 3; // 0x3
  }

}

package androidx.car.app.hardware {

  @MainThread @androidx.car.app.annotations.RequiresCarApi(3) public interface CarHardwareManager extends androidx.car.app.managers.Manager {
    method public default androidx.car.app.hardware.info.CarInfo getCarInfo();
    method public default androidx.car.app.hardware.info.CarSensors getCarSensors();
  }

}

package androidx.car.app.hardware.common {

  @androidx.car.app.annotations.CarProtocol @androidx.car.app.annotations.RequiresCarApi(3) public final class CarUnit {
    field @androidx.car.app.annotations.ExperimentalCarApi public static final int IMPERIAL_GALLON = 204; // 0xcc
    field public static final int KILOMETER = 3; // 0x3
    field public static final int KILOMETERS_PER_HOUR = 102; // 0x66
    field @androidx.car.app.annotations.ExperimentalCarApi public static final int LITER = 202; // 0xca
    field public static final int METER = 2; // 0x2
    field public static final int METERS_PER_SEC = 101; // 0x65
    field public static final int MILE = 4; // 0x4
    field public static final int MILES_PER_HOUR = 103; // 0x67
    field @androidx.car.app.annotations.ExperimentalCarApi public static final int MILLILITER = 201; // 0xc9
    field public static final int MILLIMETER = 1; // 0x1
    field @androidx.car.app.annotations.ExperimentalCarApi public static final int US_GALLON = 203; // 0xcb
  }

  @androidx.car.app.annotations.CarProtocol @androidx.car.app.annotations.RequiresCarApi(3) public final class CarValue<T> {
    ctor public CarValue(T?, long, int);
    method public int getStatus();
    method public long getTimestampMillis();
    method public T? getValue();
    field public static final int STATUS_SUCCESS = 1; // 0x1
    field public static final int STATUS_UNAVAILABLE = 3; // 0x3
    field public static final int STATUS_UNIMPLEMENTED = 2; // 0x2
    field public static final int STATUS_UNKNOWN = 0; // 0x0
  }

  @androidx.car.app.annotations.CarProtocol @androidx.car.app.annotations.RequiresCarApi(3) public interface OnCarDataAvailableListener<T> {
    method public void onCarDataAvailable(T);
  }

}

package androidx.car.app.hardware.info {

  @androidx.car.app.annotations.CarProtocol @androidx.car.app.annotations.RequiresCarApi(3) public final class Accelerometer {
    ctor public Accelerometer(androidx.car.app.hardware.common.CarValue<java.util.List<java.lang.Float!>!>);
    method public androidx.car.app.hardware.common.CarValue<java.util.List<java.lang.Float!>!> getForces();
  }

  @androidx.car.app.annotations.CarProtocol @androidx.car.app.annotations.RequiresCarApi(3) public final class CarHardwareLocation {
    ctor public CarHardwareLocation(androidx.car.app.hardware.common.CarValue<android.location.Location!>);
    method public androidx.car.app.hardware.common.CarValue<android.location.Location!> getLocation();
  }

  @MainThread @androidx.car.app.annotations.RequiresCarApi(3) public interface CarInfo {
    method public void addEnergyLevelListener(java.util.concurrent.Executor, androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.EnergyLevel!>);
    method public void addMileageListener(java.util.concurrent.Executor, androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.Mileage!>);
    method public void addSpeedListener(java.util.concurrent.Executor, androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.Speed!>);
    method public void addTollListener(java.util.concurrent.Executor, androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.TollCard!>);
    method public void fetchEnergyProfile(java.util.concurrent.Executor, androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.EnergyProfile!>);
    method public void fetchModel(java.util.concurrent.Executor, androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.Model!>);
    method public void removeEnergyLevelListener(androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.EnergyLevel!>);
    method public void removeMileageListener(androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.Mileage!>);
    method public void removeSpeedListener(androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.Speed!>);
    method public void removeTollListener(androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.TollCard!>);
  }

  @MainThread @androidx.car.app.annotations.RequiresCarApi(3) public interface CarSensors {
    method public void addAccelerometerListener(int, java.util.concurrent.Executor, androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.Accelerometer!>);
    method public void addCarHardwareLocationListener(int, java.util.concurrent.Executor, androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.CarHardwareLocation!>);
    method public void addCompassListener(int, java.util.concurrent.Executor, androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.Compass!>);
    method public void addGyroscopeListener(int, java.util.concurrent.Executor, androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.Gyroscope!>);
    method public void removeAccelerometerListener(androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.Accelerometer!>);
    method public void removeCarHardwareLocationListener(androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.CarHardwareLocation!>);
    method public void removeCompassListener(androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.Compass!>);
    method public void removeGyroscopeListener(androidx.car.app.hardware.common.OnCarDataAvailableListener<androidx.car.app.hardware.info.Gyroscope!>);
    field public static final int UPDATE_RATE_FASTEST = 3; // 0x3
    field public static final int UPDATE_RATE_NORMAL = 1; // 0x1
    field public static final int UPDATE_RATE_UI = 2; // 0x2
  }

  @androidx.car.app.annotations.CarProtocol @androidx.car.app.annotations.RequiresCarApi(3) public final class Compass {
    ctor public Compass(androidx.car.app.hardware.common.CarValue<java.util.List<java.lang.Float!>!>);
    method public androidx.car.app.hardware.common.CarValue<java.util.List<java.lang.Float!>!> getOrientations();
  }

  @androidx.car.app.annotations.CarProtocol @androidx.car.app.annotations.RequiresCarApi(3) public final class EnergyLevel {
    method public androidx.car.app.hardware.common.CarValue<java.lang.Float!> getBatteryPercent();
    method public androidx.car.app.hardware.common.CarValue<java.lang.Integer!> getDistanceDisplayUnit();
    method public androidx.car.app.hardware.common.CarValue<java.lang.Boolean!> getEnergyIsLow();
    method public androidx.car.app.hardware.common.CarValue<java.lang.Float!> getFuelPercent();
    method @androidx.car.app.annotations.ExperimentalCarApi public androidx.car.app.hardware.common.CarValue<java.lang.Integer!> getFuelVolumeDisplayUnit();
    method public androidx.car.app.hardware.common.CarValue<java.lang.Float!> getRangeRemainingMeters();
  }

  public static final class EnergyLevel.Builder {
    ctor public EnergyLevel.Builder();
    method public androidx.car.app.hardware.info.EnergyLevel build();
    method public androidx.car.app.hardware.info.EnergyLevel.Builder setBatteryPercent(androidx.car.app.hardware.common.CarValue<java.lang.Float!>);
    method public androidx.car.app.hardware.info.EnergyLevel.Builder setDistanceDisplayUnit(androidx.car.app.hardware.common.CarValue<java.lang.Integer!>);
    method public androidx.car.app.hardware.info.EnergyLevel.Builder setEnergyIsLow(androidx.car.app.hardware.common.CarValue<java.lang.Boolean!>);
    method public androidx.car.app.hardware.info.EnergyLevel.Builder setFuelPercent(androidx.car.app.hardware.common.CarValue<java.lang.Float!>);
    method @androidx.car.app.annotations.ExperimentalCarApi public androidx.car.app.hardware.info.EnergyLevel.Builder setFuelVolumeDisplayUnit(androidx.car.app.hardware.common.CarValue<java.lang.Integer!>);
    method public androidx.car.app.hardware.info.EnergyLevel.Builder setRangeRemainingMeters(androidx.car.app.hardware.common.CarValue<java.lang.Float!>);
  }

  @androidx.car.app.annotations.CarProtocol @androidx.car.app.annotations.RequiresCarApi(3) public final class EnergyProfile {
    method public androidx.car.app.hardware.common.CarValue<java.util.List<java.lang.Integer!>!> getEvConnectorTypes();
    method public androidx.car.app.hardware.common.CarValue<java.util.List<java.lang.Integer!>!> getFuelTypes();
    field public static final int EVCONNECTOR_TYPE_CHADEMO = 3; // 0x3
    field public static final int EVCONNECTOR_TYPE_COMBO_1 = 4; // 0x4
    field public static final int EVCONNECTOR_TYPE_COMBO_2 = 5; // 0x5
    field public static final int EVCONNECTOR_TYPE_GBT = 9; // 0x9
    field public static final int EVCONNECTOR_TYPE_GBT_DC = 10; // 0xa
    field public static final int EVCONNECTOR_TYPE_J1772 = 1; // 0x1
    field public static final int EVCONNECTOR_TYPE_MENNEKES = 2; // 0x2
    field public static final int EVCONNECTOR_TYPE_OTHER = 101; // 0x65
    field public static final int EVCONNECTOR_TYPE_SCAME = 11; // 0xb
    field public static final int EVCONNECTOR_TYPE_TESLA_HPWC = 7; // 0x7
    field public static final int EVCONNECTOR_TYPE_TESLA_ROADSTER = 6; // 0x6
    field public static final int EVCONNECTOR_TYPE_TESLA_SUPERCHARGER = 8; // 0x8
    field public static final int EVCONNECTOR_TYPE_UNKNOWN = 0; // 0x0
    field public static final int FUEL_TYPE_BIODIESEL = 5; // 0x5
    field public static final int FUEL_TYPE_CNG = 8; // 0x8
    field public static final int FUEL_TYPE_DIESEL_1 = 3; // 0x3
    field public static final int FUEL_TYPE_DIESEL_2 = 4; // 0x4
    field public static final int FUEL_TYPE_E85 = 6; // 0x6
    field public static final int FUEL_TYPE_ELECTRIC = 10; // 0xa
    field public static final int FUEL_TYPE_HYDROGEN = 11; // 0xb
    field public static final int FUEL_TYPE_LEADED = 2; // 0x2
    field public static final int FUEL_TYPE_LNG = 9; // 0x9
    field public static final int FUEL_TYPE_LPG = 7; // 0x7
    field public static final int FUEL_TYPE_OTHER = 12; // 0xc
    field public static final int FUEL_TYPE_UNKNOWN = 0; // 0x0
    field public static final int FUEL_TYPE_UNLEADED = 1; // 0x1
  }

  public static final class EnergyProfile.Builder {
    ctor public EnergyProfile.Builder();
    method public androidx.car.app.hardware.info.EnergyProfile build();
    method public androidx.car.app.hardware.info.EnergyProfile.Builder setEvConnectorTypes(androidx.car.app.hardware.common.CarValue<java.util.List<java.lang.Integer!>!>);
    method public androidx.car.app.hardware.info.EnergyProfile.Builder setFuelTypes(androidx.car.app.hardware.common.CarValue<java.util.List<java.lang.Integer!>!>);
  }

  @androidx.car.app.annotations.CarProtocol @androidx.car.app.annotations.RequiresCarApi(3) public final class Gyroscope {
    ctor public Gyroscope(androidx.car.app.hardware.common.CarValue<java.util.List<java.lang.Float!>!>);
    method public androidx.car.app.hardware.common.CarValue<java.util.List<java.lang.Float!>!> getRotations();
  }

  @androidx.car.app.annotations.CarProtocol @androidx.car.app.annotations.RequiresCarApi(3) public final class Mileage {
    method public androidx.car.app.hardware.common.CarValue<java.lang.Integer!> getDistanceDisplayUnit();
    method public androidx.car.app.hardware.common.CarValue<java.lang.Float!> getOdometerMeters();
  }

  public static final class Mileage.Builder {
    ctor public Mileage.Builder();
    method public androidx.car.app.hardware.info.Mileage build();
    method public androidx.car.app.hardware.info.Mileage.Builder setDistanceDisplayUnit(androidx.car.app.hardware.common.CarValue<java.lang.Integer!>);
    method public androidx.car.app.hardware.info.Mileage.Builder setOdometerMeters(androidx.car.app.hardware.common.CarValue<java.lang.Float!>);
  }

  @androidx.car.app.annotations.CarProtocol @androidx.car.app.annotations.RequiresCarApi(3) public final class Model {
    method public androidx.car.app.hardware.common.CarValue<java.lang.String!> getManufacturer();
    method public androidx.car.app.hardware.common.CarValue<java.lang.String!> getName();
    method public androidx.car.app.hardware.common.CarValue<java.lang.Integer!> getYear();
  }

  public static final class Model.Builder {
    ctor public Model.Builder();
    method public androidx.car.app.hardware.info.Model build();
    method public androidx.car.app.hardware.info.Model.Builder setManufacturer(androidx.car.app.hardware.common.CarValue<java.lang.String!>);
    method public androidx.car.app.hardware.info.Model.Builder setName(androidx.car.app.hardware.common.CarValue<java.lang.String!>);
    method public androidx.car.app.hardware.info.Model.Builder setYear(androidx.car.app.hardware.common.CarValue<java.lang.Integer!>);
  }

  @androidx.car.app.annotations.CarProtocol @androidx.car.app.annotations.RequiresCarApi(3) public final class Speed {
    method public androidx.car.app.hardware.common.CarValue<java.lang.Float!> getDisplaySpeedMetersPerSecond();
    method public androidx.car.app.hardware.common.CarValue<java.lang.Float!> getRawSpeedMetersPerSecond();
    method public androidx.car.app.hardware.common.CarValue<java.lang.Integer!> getSpeedDisplayUnit();
  }

  public static final class Speed.Builder {
    ctor public Speed.Builder();
    method public androidx.car.app.hardware.info.Speed build();
    method public androidx.car.app.hardware.info.Speed.Builder setDisplaySpeedMetersPerSecond(androidx.car.app.hardware.common.CarValue<java.lang.Float!>);
    method public androidx.car.app.hardware.info.Speed.Builder setRawSpeedMetersPerSecond(androidx.car.app.hardware.common.CarValue<java.lang.Float!>);
    method public androidx.car.app.hardware.info.Speed.Builder setSpeedDisplayUnit(androidx.car.app.hardware.common.CarValue<java.lang.Integer!>);
  }

  @androidx.car.app.annotations.CarProtocol @androidx.car.app.annotations.RequiresCarApi(3) public final class TollCard {
    method public androidx.car.app.hardware.common.CarValue<java.lang.Integer!> getCardState();
    field public static final int TOLLCARD_STATE_INVALID = 2; // 0x2
    field public static final int TOLLCARD_STATE_NOT_INSERTED = 3; // 0x3
    field public static final int TOLLCARD_STATE_UNKNOWN = 0; // 0x0
    field public static final int TOLLCARD_STATE_VALID = 1; // 0x1
  }

  public static final class TollCard.Builder {
    ctor public TollCard.Builder();
    method public androidx.car.app.hardware.info.TollCard build();
    method public androidx.car.app.hardware.info.TollCard.Builder setCardState(androidx.car.app.hardware.common.CarValue<java.lang.Integer!>);
  }

}

package androidx.car.app.managers {

  public interface Manager {
  }

}

package androidx.car.app.model {

  @androidx.car.app.annotations.CarProtocol public final class Action {
    method public androidx.car.app.model.CarColor? getBackgroundColor();
    method @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(4) public int getFlags();
    method public androidx.car.app.model.CarIcon? getIcon();
    method public androidx.car.app.model.OnClickDelegate? getOnClickDelegate();
    method public androidx.car.app.model.CarText? getTitle();
    method public int getType();
    method public boolean isStandard();
    method public static String typeToString(int);
    field public static final androidx.car.app.model.Action APP_ICON;
    field public static final androidx.car.app.model.Action BACK;
    field @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(4) public static final int FLAG_PRIMARY = 1; // 0x1
    field public static final androidx.car.app.model.Action PAN;
    field public static final int TYPE_APP_ICON = 65538; // 0x10002
    field public static final int TYPE_BACK = 65539; // 0x10003
    field public static final int TYPE_CUSTOM = 1; // 0x1
    field public static final int TYPE_PAN = 65540; // 0x10004
  }

  public static final class Action.Builder {
    ctor public Action.Builder();
    ctor @androidx.car.app.annotations.RequiresCarApi(2) public Action.Builder(androidx.car.app.model.Action);
    method public androidx.car.app.model.Action build();
    method public androidx.car.app.model.Action.Builder setBackgroundColor(androidx.car.app.model.CarColor);
    method @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(4) public androidx.car.app.model.Action.Builder setFlags(int);
    method public androidx.car.app.model.Action.Builder setIcon(androidx.car.app.model.CarIcon);
    method public androidx.car.app.model.Action.Builder setOnClickListener(androidx.car.app.model.OnClickListener);
    method public androidx.car.app.model.Action.Builder setTitle(CharSequence);
    method public androidx.car.app.model.Action.Builder setTitle(androidx.car.app.model.CarText);
  }

  @androidx.car.app.annotations.CarProtocol public final class ActionStrip {
    method public java.util.List<androidx.car.app.model.Action!> getActions();
    method public androidx.car.app.model.Action? getFirstActionOfType(int);
  }

  public static final class ActionStrip.Builder {
    ctor public ActionStrip.Builder();
    method public androidx.car.app.model.ActionStrip.Builder addAction(androidx.car.app.model.Action);
    method public androidx.car.app.model.ActionStrip build();
  }

  @androidx.car.app.annotations.CarProtocol public final class CarColor {
    method public static androidx.car.app.model.CarColor createCustom(@ColorInt int, @ColorInt int);
    method @ColorInt public int getColor();
    method @ColorInt public int getColorDark();
    method public int getType();
    field public static final androidx.car.app.model.CarColor BLUE;
    field public static final androidx.car.app.model.CarColor DEFAULT;
    field public static final androidx.car.app.model.CarColor GREEN;
    field public static final androidx.car.app.model.CarColor PRIMARY;
    field public static final androidx.car.app.model.CarColor RED;
    field public static final androidx.car.app.model.CarColor SECONDARY;
    field public static final int TYPE_BLUE = 6; // 0x6
    field public static final int TYPE_CUSTOM = 0; // 0x0
    field public static final int TYPE_DEFAULT = 1; // 0x1
    field public static final int TYPE_GREEN = 5; // 0x5
    field public static final int TYPE_PRIMARY = 2; // 0x2
    field public static final int TYPE_RED = 4; // 0x4
    field public static final int TYPE_SECONDARY = 3; // 0x3
    field public static final int TYPE_YELLOW = 7; // 0x7
    field public static final androidx.car.app.model.CarColor YELLOW;
  }

  @androidx.car.app.annotations.CarProtocol public final class CarIcon {
    method public androidx.core.graphics.drawable.IconCompat? getIcon();
    method public androidx.car.app.model.CarColor? getTint();
    method public int getType();
    field public static final androidx.car.app.model.CarIcon ALERT;
    field public static final androidx.car.app.model.CarIcon APP_ICON;
    field public static final androidx.car.app.model.CarIcon BACK;
    field public static final androidx.car.app.model.CarIcon ERROR;
    field @androidx.car.app.annotations.RequiresCarApi(2) public static final androidx.car.app.model.CarIcon PAN;
    field public static final int TYPE_ALERT = 4; // 0x4
    field public static final int TYPE_APP_ICON = 5; // 0x5
    field public static final int TYPE_BACK = 3; // 0x3
    field public static final int TYPE_CUSTOM = 1; // 0x1
    field public static final int TYPE_ERROR = 6; // 0x6
    field public static final int TYPE_PAN = 7; // 0x7
  }

  public static final class CarIcon.Builder {
    ctor public CarIcon.Builder(androidx.core.graphics.drawable.IconCompat);
    ctor public CarIcon.Builder(androidx.car.app.model.CarIcon);
    method public androidx.car.app.model.CarIcon build();
    method public androidx.car.app.model.CarIcon.Builder setTint(androidx.car.app.model.CarColor);
  }

  @androidx.car.app.annotations.CarProtocol public final class CarIconSpan extends androidx.car.app.model.CarSpan {
    method public static androidx.car.app.model.CarIconSpan create(androidx.car.app.model.CarIcon);
    method public static androidx.car.app.model.CarIconSpan create(androidx.car.app.model.CarIcon, int);
    method public int getAlignment();
    method public androidx.car.app.model.CarIcon getIcon();
    field public static final int ALIGN_BASELINE = 1; // 0x1
    field public static final int ALIGN_BOTTOM = 0; // 0x0
    field public static final int ALIGN_CENTER = 2; // 0x2
  }

  @androidx.car.app.annotations.CarProtocol public final class CarLocation {
    method public static androidx.car.app.model.CarLocation create(double, double);
    method public static androidx.car.app.model.CarLocation create(android.location.Location);
    method public double getLatitude();
    method public double getLongitude();
  }

  @Keep @androidx.car.app.annotations.CarProtocol public class CarSpan extends android.text.style.CharacterStyle {
    ctor public CarSpan();
    method public void updateDrawState(android.text.TextPaint);
  }

  @androidx.car.app.annotations.CarProtocol public final class CarText {
    method public static androidx.car.app.model.CarText create(CharSequence);
    method public java.util.List<java.lang.CharSequence!> getVariants();
    method public boolean isEmpty();
    method public static boolean isNullOrEmpty(androidx.car.app.model.CarText?);
    method public CharSequence toCharSequence();
  }

  public static final class CarText.Builder {
    ctor public CarText.Builder(CharSequence);
    method @androidx.car.app.annotations.RequiresCarApi(2) public androidx.car.app.model.CarText.Builder addVariant(CharSequence);
    method public androidx.car.app.model.CarText build();
  }

  @androidx.car.app.annotations.CarProtocol @androidx.car.app.annotations.RequiresCarApi(2) public final class ClickableSpan extends androidx.car.app.model.CarSpan {
    method public static androidx.car.app.model.ClickableSpan create(androidx.car.app.model.OnClickListener);
    method public androidx.car.app.model.OnClickDelegate getOnClickDelegate();
  }

  @androidx.car.app.annotations.CarProtocol public final class DateTimeWithZone {
    method public static androidx.car.app.model.DateTimeWithZone create(long, @IntRange(from=0xffff02e0, to=64800) int, String);
    method public static androidx.car.app.model.DateTimeWithZone create(long, java.util.TimeZone);
    method @RequiresApi(26) public static androidx.car.app.model.DateTimeWithZone create(java.time.ZonedDateTime);
    method public long getTimeSinceEpochMillis();
    method public int getZoneOffsetSeconds();
    method public String? getZoneShortName();
  }

  @androidx.car.app.annotations.CarProtocol public final class Distance {
    method public static androidx.car.app.model.Distance create(double, int);
    method public double getDisplayDistance();
    method public int getDisplayUnit();
    field public static final int UNIT_FEET = 6; // 0x6
    field public static final int UNIT_KILOMETERS = 2; // 0x2
    field public static final int UNIT_KILOMETERS_P1 = 3; // 0x3
    field public static final int UNIT_METERS = 1; // 0x1
    field public static final int UNIT_MILES = 4; // 0x4
    field public static final int UNIT_MILES_P1 = 5; // 0x5
    field public static final int UNIT_YARDS = 7; // 0x7
  }

  @androidx.car.app.annotations.CarProtocol public final class DistanceSpan extends androidx.car.app.model.CarSpan {
    method public static androidx.car.app.model.DistanceSpan create(androidx.car.app.model.Distance);
    method public androidx.car.app.model.Distance getDistance();
  }

  @androidx.car.app.annotations.CarProtocol public final class DurationSpan extends androidx.car.app.model.CarSpan {
    method public static androidx.car.app.model.DurationSpan create(long);
    method @RequiresApi(26) public static androidx.car.app.model.DurationSpan create(java.time.Duration);
    method public long getDurationSeconds();
  }

  @androidx.car.app.annotations.CarProtocol public final class ForegroundCarColorSpan extends androidx.car.app.model.CarSpan {
    method public static androidx.car.app.model.ForegroundCarColorSpan create(androidx.car.app.model.CarColor);
    method public androidx.car.app.model.CarColor getColor();
  }

  @androidx.car.app.annotations.CarProtocol public final class GridItem implements androidx.car.app.model.Item {
    method public androidx.car.app.model.CarIcon? getImage();
    method public int getImageType();
    method public androidx.car.app.model.OnClickDelegate? getOnClickDelegate();
    method public androidx.car.app.model.CarText? getText();
    method public androidx.car.app.model.CarText? getTitle();
    method public boolean isLoading();
    field public static final int IMAGE_TYPE_ICON = 1; // 0x1
    field public static final int IMAGE_TYPE_LARGE = 2; // 0x2
  }

  public static final class GridItem.Builder {
    ctor public GridItem.Builder();
    method public androidx.car.app.model.GridItem build();
    method public androidx.car.app.model.GridItem.Builder setImage(androidx.car.app.model.CarIcon);
    method public androidx.car.app.model.GridItem.Builder setImage(androidx.car.app.model.CarIcon, int);
    method public androidx.car.app.model.GridItem.Builder setLoading(boolean);
    method public androidx.car.app.model.GridItem.Builder setOnClickListener(androidx.car.app.model.OnClickListener);
    method public androidx.car.app.model.GridItem.Builder setText(CharSequence);
    method public androidx.car.app.model.GridItem.Builder setText(androidx.car.app.model.CarText);
    method public androidx.car.app.model.GridItem.Builder setTitle(CharSequence);
    method public androidx.car.app.model.GridItem.Builder setTitle(androidx.car.app.model.CarText);
  }

  @androidx.car.app.annotations.CarProtocol public final class GridTemplate implements androidx.car.app.model.Template {
    method public androidx.car.app.model.ActionStrip? getActionStrip();
    method public androidx.car.app.model.Action? getHeaderAction();
    method public androidx.car.app.model.ItemList? getSingleList();
    method public androidx.car.app.model.CarText? getTitle();
    method public boolean isLoading();
  }

  public static final class GridTemplate.Builder {
    ctor public GridTemplate.Builder();
    method public androidx.car.app.model.GridTemplate build();
    method public androidx.car.app.model.GridTemplate.Builder setActionStrip(androidx.car.app.model.ActionStrip);
    method public androidx.car.app.model.GridTemplate.Builder setHeaderAction(androidx.car.app.model.Action);
    method public androidx.car.app.model.GridTemplate.Builder setLoading(boolean);
    method public androidx.car.app.model.GridTemplate.Builder setSingleList(androidx.car.app.model.ItemList);
    method public androidx.car.app.model.GridTemplate.Builder setTitle(CharSequence);
  }

  @androidx.car.app.annotations.RequiresCarApi(2) public interface InputCallback {
    method public default void onInputSubmitted(String);
    method public default void onInputTextChanged(String);
  }

  @androidx.car.app.annotations.RequiresCarApi(2) public interface InputCallbackDelegate {
    method public void sendInputSubmitted(String, androidx.car.app.OnDoneCallback);
    method public void sendInputTextChanged(String, androidx.car.app.OnDoneCallback);
  }

  @androidx.car.app.annotations.CarProtocol public interface Item {
  }

  @androidx.car.app.annotations.CarProtocol public final class ItemList {
    method public java.util.List<androidx.car.app.model.Item!> getItems();
    method public androidx.car.app.model.CarText? getNoItemsMessage();
    method public androidx.car.app.model.OnItemVisibilityChangedDelegate? getOnItemVisibilityChangedDelegate();
    method public androidx.car.app.model.OnSelectedDelegate? getOnSelectedDelegate();
    method public int getSelectedIndex();
  }

  public static final class ItemList.Builder {
    ctor public ItemList.Builder();
    method public androidx.car.app.model.ItemList.Builder addItem(androidx.car.app.model.Item);
    method public androidx.car.app.model.ItemList build();
    method public androidx.car.app.model.ItemList.Builder setNoItemsMessage(CharSequence);
    method public androidx.car.app.model.ItemList.Builder setOnItemsVisibilityChangedListener(androidx.car.app.model.ItemList.OnItemVisibilityChangedListener);
    method public androidx.car.app.model.ItemList.Builder setOnSelectedListener(androidx.car.app.model.ItemList.OnSelectedListener);
    method public androidx.car.app.model.ItemList.Builder setSelectedIndex(@IntRange(from=0) int);
  }

  public static interface ItemList.OnItemVisibilityChangedListener {
    method public void onItemVisibilityChanged(int, int);
  }

  public static interface ItemList.OnSelectedListener {
    method public void onSelected(int);
  }

  @androidx.car.app.annotations.CarProtocol public final class ListTemplate implements androidx.car.app.model.Template {
    method public androidx.car.app.model.ActionStrip? getActionStrip();
    method public androidx.car.app.model.Action? getHeaderAction();
    method public java.util.List<androidx.car.app.model.SectionedItemList!> getSectionedLists();
    method public androidx.car.app.model.ItemList? getSingleList();
    method public androidx.car.app.model.CarText? getTitle();
    method public boolean isLoading();
  }

  public static final class ListTemplate.Builder {
    ctor public ListTemplate.Builder();
    method public androidx.car.app.model.ListTemplate.Builder addSectionedList(androidx.car.app.model.SectionedItemList);
    method public androidx.car.app.model.ListTemplate build();
    method public androidx.car.app.model.ListTemplate.Builder setActionStrip(androidx.car.app.model.ActionStrip);
    method public androidx.car.app.model.ListTemplate.Builder setHeaderAction(androidx.car.app.model.Action);
    method public androidx.car.app.model.ListTemplate.Builder setLoading(boolean);
    method public androidx.car.app.model.ListTemplate.Builder setSingleList(androidx.car.app.model.ItemList);
    method public androidx.car.app.model.ListTemplate.Builder setTitle(CharSequence);
  }

  @androidx.car.app.annotations.RequiresCarApi(2) public final class LongMessageTemplate implements androidx.car.app.model.Template {
    method public androidx.car.app.model.ActionStrip? getActionStrip();
    method public java.util.List<androidx.car.app.model.Action!> getActions();
    method public androidx.car.app.model.Action? getHeaderAction();
    method public androidx.car.app.model.CarText getMessage();
    method public androidx.car.app.model.CarText? getTitle();
  }

  @androidx.car.app.annotations.RequiresCarApi(2) public static final class LongMessageTemplate.Builder {
    ctor public LongMessageTemplate.Builder(CharSequence);
    method public androidx.car.app.model.LongMessageTemplate.Builder addAction(androidx.car.app.model.Action);
    method public androidx.car.app.model.LongMessageTemplate build();
    method public androidx.car.app.model.LongMessageTemplate.Builder setActionStrip(androidx.car.app.model.ActionStrip);
    method public androidx.car.app.model.LongMessageTemplate.Builder setHeaderAction(androidx.car.app.model.Action);
    method public androidx.car.app.model.LongMessageTemplate.Builder setTitle(CharSequence);
  }

  @androidx.car.app.annotations.CarProtocol public final class MessageTemplate implements androidx.car.app.model.Template {
    method @androidx.car.app.annotations.RequiresCarApi(2) public androidx.car.app.model.ActionStrip? getActionStrip();
    method public java.util.List<androidx.car.app.model.Action!> getActions();
    method public androidx.car.app.model.CarText? getDebugMessage();
    method public androidx.car.app.model.Action? getHeaderAction();
    method public androidx.car.app.model.CarIcon? getIcon();
    method public androidx.car.app.model.CarText getMessage();
    method public androidx.car.app.model.CarText? getTitle();
    method @androidx.car.app.annotations.RequiresCarApi(2) public boolean isLoading();
  }

  public static final class MessageTemplate.Builder {
    ctor public MessageTemplate.Builder(CharSequence);
    ctor public MessageTemplate.Builder(androidx.car.app.model.CarText);
    method public androidx.car.app.model.MessageTemplate.Builder addAction(androidx.car.app.model.Action);
    method public androidx.car.app.model.MessageTemplate build();
    method @androidx.car.app.annotations.RequiresCarApi(2) public androidx.car.app.model.MessageTemplate.Builder setActionStrip(androidx.car.app.model.ActionStrip);
    method public androidx.car.app.model.MessageTemplate.Builder setDebugMessage(Throwable);
    method public androidx.car.app.model.MessageTemplate.Builder setDebugMessage(String);
    method public androidx.car.app.model.MessageTemplate.Builder setHeaderAction(androidx.car.app.model.Action);
    method public androidx.car.app.model.MessageTemplate.Builder setIcon(androidx.car.app.model.CarIcon);
    method @androidx.car.app.annotations.RequiresCarApi(2) public androidx.car.app.model.MessageTemplate.Builder setLoading(boolean);
    method public androidx.car.app.model.MessageTemplate.Builder setTitle(CharSequence);
  }

  @androidx.car.app.annotations.CarProtocol public final class Metadata {
    method public androidx.car.app.model.Place? getPlace();
    field public static final androidx.car.app.model.Metadata EMPTY_METADATA;
  }

  public static final class Metadata.Builder {
    ctor public Metadata.Builder();
    ctor public Metadata.Builder(androidx.car.app.model.Metadata);
    method public androidx.car.app.model.Metadata build();
    method public androidx.car.app.model.Metadata.Builder setPlace(androidx.car.app.model.Place);
  }

  @androidx.car.app.annotations.CarProtocol public interface OnCheckedChangeDelegate {
    method public void sendCheckedChange(boolean, androidx.car.app.OnDoneCallback);
  }

  @androidx.car.app.annotations.CarProtocol public interface OnClickDelegate {
    method public boolean isParkedOnly();
    method public void sendClick(androidx.car.app.OnDoneCallback);
  }

  public interface OnClickListener {
    method public void onClick();
  }

  @androidx.car.app.annotations.CarProtocol public interface OnItemVisibilityChangedDelegate {
    method public void sendItemVisibilityChanged(int, int, androidx.car.app.OnDoneCallback);
  }

  @androidx.car.app.annotations.CarProtocol public interface OnSelectedDelegate {
    method public void sendSelected(int, androidx.car.app.OnDoneCallback);
  }

  @androidx.car.app.annotations.CarProtocol public final class Pane {
    method public java.util.List<androidx.car.app.model.Action!> getActions();
    method @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(4) public androidx.car.app.model.CarIcon? getImage();
    method public java.util.List<androidx.car.app.model.Row!> getRows();
    method public boolean isLoading();
  }

  public static final class Pane.Builder {
    ctor public Pane.Builder();
    method public androidx.car.app.model.Pane.Builder addAction(androidx.car.app.model.Action);
    method public androidx.car.app.model.Pane.Builder addRow(androidx.car.app.model.Row);
    method public androidx.car.app.model.Pane build();
    method @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(4) public androidx.car.app.model.Pane.Builder setImage(androidx.car.app.model.CarIcon);
    method public androidx.car.app.model.Pane.Builder setLoading(boolean);
  }

  @androidx.car.app.annotations.CarProtocol public final class PaneTemplate implements androidx.car.app.model.Template {
    method public androidx.car.app.model.ActionStrip? getActionStrip();
    method public androidx.car.app.model.Action? getHeaderAction();
    method public androidx.car.app.model.Pane getPane();
    method public androidx.car.app.model.CarText? getTitle();
  }

  public static final class PaneTemplate.Builder {
    ctor public PaneTemplate.Builder(androidx.car.app.model.Pane);
    method public androidx.car.app.model.PaneTemplate build();
    method public androidx.car.app.model.PaneTemplate.Builder setActionStrip(androidx.car.app.model.ActionStrip);
    method public androidx.car.app.model.PaneTemplate.Builder setHeaderAction(androidx.car.app.model.Action);
    method public androidx.car.app.model.PaneTemplate.Builder setTitle(CharSequence);
  }

  @androidx.car.app.annotations.CarProtocol public final class ParkedOnlyOnClickListener implements androidx.car.app.model.OnClickListener {
    method public static androidx.car.app.model.ParkedOnlyOnClickListener create(androidx.car.app.model.OnClickListener);
    method public void onClick();
  }

  @androidx.car.app.annotations.CarProtocol public final class Place {
    method public androidx.car.app.model.CarLocation getLocation();
    method public androidx.car.app.model.PlaceMarker? getMarker();
  }

  public static final class Place.Builder {
    ctor public Place.Builder(androidx.car.app.model.CarLocation);
    ctor public Place.Builder(androidx.car.app.model.Place);
    method public androidx.car.app.model.Place build();
    method public androidx.car.app.model.Place.Builder setMarker(androidx.car.app.model.PlaceMarker);
  }

  @androidx.car.app.annotations.CarProtocol public final class PlaceListMapTemplate implements androidx.car.app.model.Template {
    method public androidx.car.app.model.ActionStrip? getActionStrip();
    method public androidx.car.app.model.Place? getAnchor();
    method public androidx.car.app.model.Action? getHeaderAction();
    method public androidx.car.app.model.ItemList? getItemList();
    method public androidx.car.app.model.CarText? getTitle();
    method public boolean isCurrentLocationEnabled();
    method public boolean isLoading();
  }

  public static final class PlaceListMapTemplate.Builder {
    ctor public PlaceListMapTemplate.Builder();
    method public androidx.car.app.model.PlaceListMapTemplate build();
    method public androidx.car.app.model.PlaceListMapTemplate.Builder setActionStrip(androidx.car.app.model.ActionStrip);
    method public androidx.car.app.model.PlaceListMapTemplate.Builder setAnchor(androidx.car.app.model.Place);
    method public androidx.car.app.model.PlaceListMapTemplate.Builder setCurrentLocationEnabled(boolean);
    method public androidx.car.app.model.PlaceListMapTemplate.Builder setHeaderAction(androidx.car.app.model.Action);
    method public androidx.car.app.model.PlaceListMapTemplate.Builder setItemList(androidx.car.app.model.ItemList);
    method public androidx.car.app.model.PlaceListMapTemplate.Builder setLoading(boolean);
    method public androidx.car.app.model.PlaceListMapTemplate.Builder setTitle(CharSequence);
    method public androidx.car.app.model.PlaceListMapTemplate.Builder setTitle(androidx.car.app.model.CarText);
  }

  @androidx.car.app.annotations.CarProtocol public final class PlaceMarker {
    method public androidx.car.app.model.CarColor? getColor();
    method public androidx.car.app.model.CarIcon? getIcon();
    method public int getIconType();
    method public androidx.car.app.model.CarText? getLabel();
    field public static final int TYPE_ICON = 0; // 0x0
    field public static final int TYPE_IMAGE = 1; // 0x1
  }

  public static final class PlaceMarker.Builder {
    ctor public PlaceMarker.Builder();
    method public androidx.car.app.model.PlaceMarker build();
    method public androidx.car.app.model.PlaceMarker.Builder setColor(androidx.car.app.model.CarColor);
    method public androidx.car.app.model.PlaceMarker.Builder setIcon(androidx.car.app.model.CarIcon, int);
    method public androidx.car.app.model.PlaceMarker.Builder setLabel(CharSequence);
  }

  @androidx.car.app.annotations.CarProtocol public final class Row implements androidx.car.app.model.Item {
    method public androidx.car.app.model.CarIcon? getImage();
    method public androidx.car.app.model.Metadata? getMetadata();
    method public androidx.car.app.model.OnClickDelegate? getOnClickDelegate();
    method public int getRowImageType();
    method public java.util.List<androidx.car.app.model.CarText!> getTexts();
    method public androidx.car.app.model.CarText? getTitle();
    method public androidx.car.app.model.Toggle? getToggle();
    method public boolean isBrowsable();
    method public androidx.car.app.model.Row row();
    method public CharSequence yourBoat();
    field public static final int IMAGE_TYPE_ICON = 4; // 0x4
    field public static final int IMAGE_TYPE_LARGE = 2; // 0x2
    field public static final int IMAGE_TYPE_SMALL = 1; // 0x1
  }

  public static final class Row.Builder {
    ctor public Row.Builder();
    method public androidx.car.app.model.Row.Builder addText(CharSequence);
    method public androidx.car.app.model.Row.Builder addText(androidx.car.app.model.CarText);
    method public androidx.car.app.model.Row build();
    method public androidx.car.app.model.Row.Builder setBrowsable(boolean);
    method public androidx.car.app.model.Row.Builder setImage(androidx.car.app.model.CarIcon);
    method public androidx.car.app.model.Row.Builder setImage(androidx.car.app.model.CarIcon, int);
    method public androidx.car.app.model.Row.Builder setMetadata(androidx.car.app.model.Metadata);
    method public androidx.car.app.model.Row.Builder setOnClickListener(androidx.car.app.model.OnClickListener);
    method public androidx.car.app.model.Row.Builder setTitle(CharSequence);
    method public androidx.car.app.model.Row.Builder setTitle(androidx.car.app.model.CarText);
    method public androidx.car.app.model.Row.Builder setToggle(androidx.car.app.model.Toggle);
  }

  @androidx.car.app.annotations.CarProtocol public interface SearchCallbackDelegate {
    method public void sendSearchSubmitted(String, androidx.car.app.OnDoneCallback);
    method public void sendSearchTextChanged(String, androidx.car.app.OnDoneCallback);
  }

  @androidx.car.app.annotations.CarProtocol public final class SearchTemplate implements androidx.car.app.model.Template {
    method public androidx.car.app.model.ActionStrip? getActionStrip();
    method public androidx.car.app.model.Action? getHeaderAction();
    method public String? getInitialSearchText();
    method public androidx.car.app.model.ItemList? getItemList();
    method public androidx.car.app.model.SearchCallbackDelegate getSearchCallbackDelegate();
    method public String? getSearchHint();
    method public boolean isLoading();
    method public boolean isShowKeyboardByDefault();
  }

  public static final class SearchTemplate.Builder {
    ctor public SearchTemplate.Builder(androidx.car.app.model.SearchTemplate.SearchCallback);
    method public androidx.car.app.model.SearchTemplate build();
    method public androidx.car.app.model.SearchTemplate.Builder setActionStrip(androidx.car.app.model.ActionStrip);
    method public androidx.car.app.model.SearchTemplate.Builder setHeaderAction(androidx.car.app.model.Action);
    method public androidx.car.app.model.SearchTemplate.Builder setInitialSearchText(String);
    method public androidx.car.app.model.SearchTemplate.Builder setItemList(androidx.car.app.model.ItemList);
    method public androidx.car.app.model.SearchTemplate.Builder setLoading(boolean);
    method public androidx.car.app.model.SearchTemplate.Builder setSearchHint(String);
    method public androidx.car.app.model.SearchTemplate.Builder setShowKeyboardByDefault(boolean);
  }

  public static interface SearchTemplate.SearchCallback {
    method public default void onSearchSubmitted(String);
    method public default void onSearchTextChanged(String);
  }

  @androidx.car.app.annotations.CarProtocol public final class SectionedItemList {
    method public static androidx.car.app.model.SectionedItemList create(androidx.car.app.model.ItemList, CharSequence);
    method public androidx.car.app.model.CarText getHeader();
    method public androidx.car.app.model.ItemList getItemList();
  }

  @androidx.car.app.annotations.CarProtocol public interface Template {
  }

  @androidx.car.app.annotations.CarProtocol public final class TemplateInfo {
    ctor public TemplateInfo(Class<? extends androidx.car.app.model.Template>, String);
    method public Class<? extends androidx.car.app.model.Template> getTemplateClass();
    method public String getTemplateId();
  }

  @androidx.car.app.annotations.CarProtocol public final class TemplateWrapper {
    method public static androidx.car.app.model.TemplateWrapper copyOf(androidx.car.app.model.TemplateWrapper);
    method public int getCurrentTaskStep();
    method public String getId();
    method public androidx.car.app.model.Template getTemplate();
    method public java.util.List<androidx.car.app.model.TemplateInfo!> getTemplateInfosForScreenStack();
    method public boolean isRefresh();
    method public void setCurrentTaskStep(int);
    method public void setId(String);
    method public void setRefresh(boolean);
    method public void setTemplate(androidx.car.app.model.Template);
    method public static androidx.car.app.model.TemplateWrapper wrap(androidx.car.app.model.Template);
    method public static androidx.car.app.model.TemplateWrapper wrap(androidx.car.app.model.Template, String);
  }

  @androidx.car.app.annotations.CarProtocol public final class Toggle {
    method public androidx.car.app.model.OnCheckedChangeDelegate getOnCheckedChangeDelegate();
    method public boolean isChecked();
  }

  public static final class Toggle.Builder {
    ctor public Toggle.Builder(androidx.car.app.model.Toggle.OnCheckedChangeListener);
    method public androidx.car.app.model.Toggle build();
    method public androidx.car.app.model.Toggle.Builder setChecked(boolean);
  }

  public static interface Toggle.OnCheckedChangeListener {
    method public void onCheckedChange(boolean);
  }

}

package androidx.car.app.model.signin {

  @androidx.car.app.annotations.RequiresCarApi(2) public final class InputSignInMethod implements androidx.car.app.model.signin.SignInTemplate.SignInMethod {
    method public androidx.car.app.model.CarText? getDefaultValue();
    method public androidx.car.app.model.CarText? getErrorMessage();
    method public androidx.car.app.model.CarText? getHint();
    method public androidx.car.app.model.InputCallbackDelegate getInputCallbackDelegate();
    method public int getInputType();
    method public int getKeyboardType();
    method public boolean isShowKeyboardByDefault();
    field public static final int INPUT_TYPE_DEFAULT = 1; // 0x1
    field public static final int INPUT_TYPE_PASSWORD = 2; // 0x2
    field public static final int KEYBOARD_DEFAULT = 1; // 0x1
    field public static final int KEYBOARD_EMAIL = 2; // 0x2
    field public static final int KEYBOARD_NUMBER = 4; // 0x4
    field public static final int KEYBOARD_PHONE = 3; // 0x3
  }

  public static final class InputSignInMethod.Builder {
    ctor public InputSignInMethod.Builder(androidx.car.app.model.InputCallback);
    method public androidx.car.app.model.signin.InputSignInMethod build();
    method public androidx.car.app.model.signin.InputSignInMethod.Builder setDefaultValue(String);
    method public androidx.car.app.model.signin.InputSignInMethod.Builder setErrorMessage(CharSequence);
    method public androidx.car.app.model.signin.InputSignInMethod.Builder setHint(CharSequence);
    method public androidx.car.app.model.signin.InputSignInMethod.Builder setInputType(int);
    method public androidx.car.app.model.signin.InputSignInMethod.Builder setKeyboardType(int);
    method public androidx.car.app.model.signin.InputSignInMethod.Builder setShowKeyboardByDefault(boolean);
  }

  @androidx.car.app.annotations.RequiresCarApi(2) public final class PinSignInMethod implements androidx.car.app.model.signin.SignInTemplate.SignInMethod {
    ctor public PinSignInMethod(CharSequence);
    method public androidx.car.app.model.CarText getPinCode();
  }

  @androidx.car.app.annotations.RequiresCarApi(2) public final class ProviderSignInMethod implements androidx.car.app.model.signin.SignInTemplate.SignInMethod {
    ctor public ProviderSignInMethod(androidx.car.app.model.Action);
    method public androidx.car.app.model.Action getAction();
  }

  @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(4) public final class QRCodeSignInMethod implements androidx.car.app.model.signin.SignInTemplate.SignInMethod {
    ctor public QRCodeSignInMethod(android.net.Uri);
    method public android.net.Uri getUri();
  }

  @androidx.car.app.annotations.RequiresCarApi(2) public final class SignInTemplate implements androidx.car.app.model.Template {
    method public androidx.car.app.model.ActionStrip? getActionStrip();
    method public java.util.List<androidx.car.app.model.Action!> getActions();
    method public androidx.car.app.model.CarText? getAdditionalText();
    method public androidx.car.app.model.Action? getHeaderAction();
    method public androidx.car.app.model.CarText? getInstructions();
    method public androidx.car.app.model.signin.SignInTemplate.SignInMethod getSignInMethod();
    method public androidx.car.app.model.CarText? getTitle();
    method public boolean isLoading();
  }

  @androidx.car.app.annotations.RequiresCarApi(2) public static final class SignInTemplate.Builder {
    ctor public SignInTemplate.Builder(androidx.car.app.model.signin.SignInTemplate.SignInMethod);
    method public androidx.car.app.model.signin.SignInTemplate.Builder addAction(androidx.car.app.model.Action);
    method public androidx.car.app.model.signin.SignInTemplate build();
    method public androidx.car.app.model.signin.SignInTemplate.Builder setActionStrip(androidx.car.app.model.ActionStrip);
    method public androidx.car.app.model.signin.SignInTemplate.Builder setAdditionalText(CharSequence);
    method public androidx.car.app.model.signin.SignInTemplate.Builder setHeaderAction(androidx.car.app.model.Action);
    method public androidx.car.app.model.signin.SignInTemplate.Builder setInstructions(CharSequence);
    method public androidx.car.app.model.signin.SignInTemplate.Builder setLoading(boolean);
    method public androidx.car.app.model.signin.SignInTemplate.Builder setTitle(CharSequence);
  }

  public static interface SignInTemplate.SignInMethod {
  }

}

package androidx.car.app.navigation {

  public class NavigationManager implements androidx.car.app.managers.Manager {
    method @MainThread public void clearNavigationManagerCallback();
    method @MainThread public void navigationEnded();
    method @MainThread public void navigationStarted();
    method @MainThread public void setNavigationManagerCallback(androidx.car.app.navigation.NavigationManagerCallback);
    method @MainThread public void setNavigationManagerCallback(java.util.concurrent.Executor, androidx.car.app.navigation.NavigationManagerCallback);
    method @MainThread public void updateTrip(androidx.car.app.navigation.model.Trip);
  }

  public interface NavigationManagerCallback {
    method public default void onAutoDriveEnabled();
    method public default void onStopNavigation();
  }

}

package androidx.car.app.navigation.model {

  @androidx.car.app.annotations.CarProtocol public final class Destination {
    method public androidx.car.app.model.CarText? getAddress();
    method public androidx.car.app.model.CarIcon? getImage();
    method public androidx.car.app.model.CarText? getName();
  }

  public static final class Destination.Builder {
    ctor public Destination.Builder();
    method public androidx.car.app.navigation.model.Destination build();
    method public androidx.car.app.navigation.model.Destination.Builder setAddress(CharSequence);
    method public androidx.car.app.navigation.model.Destination.Builder setImage(androidx.car.app.model.CarIcon);
    method public androidx.car.app.navigation.model.Destination.Builder setName(CharSequence);
  }

  @androidx.car.app.annotations.CarProtocol public final class Lane {
    method public java.util.List<androidx.car.app.navigation.model.LaneDirection!> getDirections();
  }

  public static final class Lane.Builder {
    ctor public Lane.Builder();
    method public androidx.car.app.navigation.model.Lane.Builder addDirection(androidx.car.app.navigation.model.LaneDirection);
    method public androidx.car.app.navigation.model.Lane build();
  }

  @androidx.car.app.annotations.CarProtocol public final class LaneDirection {
    method public static androidx.car.app.navigation.model.LaneDirection create(int, boolean);
    method public int getShape();
    method public boolean isRecommended();
    field public static final int SHAPE_NORMAL_LEFT = 5; // 0x5
    field public static final int SHAPE_NORMAL_RIGHT = 6; // 0x6
    field public static final int SHAPE_SHARP_LEFT = 7; // 0x7
    field public static final int SHAPE_SHARP_RIGHT = 8; // 0x8
    field public static final int SHAPE_SLIGHT_LEFT = 3; // 0x3
    field public static final int SHAPE_SLIGHT_RIGHT = 4; // 0x4
    field public static final int SHAPE_STRAIGHT = 2; // 0x2
    field public static final int SHAPE_UNKNOWN = 1; // 0x1
    field public static final int SHAPE_U_TURN_LEFT = 9; // 0x9
    field public static final int SHAPE_U_TURN_RIGHT = 10; // 0xa
  }

  @androidx.car.app.annotations.CarProtocol public final class Maneuver {
    method public androidx.car.app.model.CarIcon? getIcon();
    method public int getRoundaboutExitAngle();
    method public int getRoundaboutExitNumber();
    method public int getType();
    field public static final int TYPE_DEPART = 1; // 0x1
    field public static final int TYPE_DESTINATION = 39; // 0x27
    field public static final int TYPE_DESTINATION_LEFT = 41; // 0x29
    field public static final int TYPE_DESTINATION_RIGHT = 42; // 0x2a
    field public static final int TYPE_DESTINATION_STRAIGHT = 40; // 0x28
    field public static final int TYPE_FERRY_BOAT = 37; // 0x25
    field public static final int TYPE_FERRY_BOAT_LEFT = 47; // 0x2f
    field public static final int TYPE_FERRY_BOAT_RIGHT = 48; // 0x30
    field public static final int TYPE_FERRY_TRAIN = 38; // 0x26
    field public static final int TYPE_FERRY_TRAIN_LEFT = 49; // 0x31
    field public static final int TYPE_FERRY_TRAIN_RIGHT = 50; // 0x32
    field public static final int TYPE_FORK_LEFT = 25; // 0x19
    field public static final int TYPE_FORK_RIGHT = 26; // 0x1a
    field public static final int TYPE_KEEP_LEFT = 3; // 0x3
    field public static final int TYPE_KEEP_RIGHT = 4; // 0x4
    field public static final int TYPE_MERGE_LEFT = 27; // 0x1b
    field public static final int TYPE_MERGE_RIGHT = 28; // 0x1c
    field public static final int TYPE_MERGE_SIDE_UNSPECIFIED = 29; // 0x1d
    field public static final int TYPE_NAME_CHANGE = 2; // 0x2
    field public static final int TYPE_OFF_RAMP_NORMAL_LEFT = 23; // 0x17
    field public static final int TYPE_OFF_RAMP_NORMAL_RIGHT = 24; // 0x18
    field public static final int TYPE_OFF_RAMP_SLIGHT_LEFT = 21; // 0x15
    field public static final int TYPE_OFF_RAMP_SLIGHT_RIGHT = 22; // 0x16
    field public static final int TYPE_ON_RAMP_NORMAL_LEFT = 15; // 0xf
    field public static final int TYPE_ON_RAMP_NORMAL_RIGHT = 16; // 0x10
    field public static final int TYPE_ON_RAMP_SHARP_LEFT = 17; // 0x11
    field public static final int TYPE_ON_RAMP_SHARP_RIGHT = 18; // 0x12
    field public static final int TYPE_ON_RAMP_SLIGHT_LEFT = 13; // 0xd
    field public static final int TYPE_ON_RAMP_SLIGHT_RIGHT = 14; // 0xe
    field public static final int TYPE_ON_RAMP_U_TURN_LEFT = 19; // 0x13
    field public static final int TYPE_ON_RAMP_U_TURN_RIGHT = 20; // 0x14
    field public static final int TYPE_ROUNDABOUT_ENTER_AND_EXIT_CCW = 34; // 0x22
    field public static final int TYPE_ROUNDABOUT_ENTER_AND_EXIT_CCW_WITH_ANGLE = 35; // 0x23
    field public static final int TYPE_ROUNDABOUT_ENTER_AND_EXIT_CW = 32; // 0x20
    field public static final int TYPE_ROUNDABOUT_ENTER_AND_EXIT_CW_WITH_ANGLE = 33; // 0x21
    field public static final int TYPE_ROUNDABOUT_ENTER_CCW = 45; // 0x2d
    field public static final int TYPE_ROUNDABOUT_ENTER_CW = 43; // 0x2b
    field public static final int TYPE_ROUNDABOUT_EXIT_CCW = 46; // 0x2e
    field public static final int TYPE_ROUNDABOUT_EXIT_CW = 44; // 0x2c
    field public static final int TYPE_STRAIGHT = 36; // 0x24
    field public static final int TYPE_TURN_NORMAL_LEFT = 7; // 0x7
    field public static final int TYPE_TURN_NORMAL_RIGHT = 8; // 0x8
    field public static final int TYPE_TURN_SHARP_LEFT = 9; // 0x9
    field public static final int TYPE_TURN_SHARP_RIGHT = 10; // 0xa
    field public static final int TYPE_TURN_SLIGHT_LEFT = 5; // 0x5
    field public static final int TYPE_TURN_SLIGHT_RIGHT = 6; // 0x6
    field public static final int TYPE_UNKNOWN = 0; // 0x0
    field public static final int TYPE_U_TURN_LEFT = 11; // 0xb
    field public static final int TYPE_U_TURN_RIGHT = 12; // 0xc
  }

  public static final class Maneuver.Builder {
    ctor public Maneuver.Builder(int);
    method public androidx.car.app.navigation.model.Maneuver build();
    method public androidx.car.app.navigation.model.Maneuver.Builder setIcon(androidx.car.app.model.CarIcon);
    method public androidx.car.app.navigation.model.Maneuver.Builder setRoundaboutExitAngle(@IntRange(from=1, to=360) int);
    method public androidx.car.app.navigation.model.Maneuver.Builder setRoundaboutExitNumber(@IntRange(from=1) int);
  }

  @androidx.car.app.annotations.CarProtocol public final class MessageInfo implements androidx.car.app.navigation.model.NavigationTemplate.NavigationInfo {
    method public androidx.car.app.model.CarIcon? getImage();
    method public androidx.car.app.model.CarText? getText();
    method public androidx.car.app.model.CarText? getTitle();
  }

  public static final class MessageInfo.Builder {
    ctor public MessageInfo.Builder(CharSequence);
    ctor public MessageInfo.Builder(androidx.car.app.model.CarText);
    method public androidx.car.app.navigation.model.MessageInfo build();
    method public androidx.car.app.navigation.model.MessageInfo.Builder setImage(androidx.car.app.model.CarIcon);
    method public androidx.car.app.navigation.model.MessageInfo.Builder setText(CharSequence);
    method public androidx.car.app.navigation.model.MessageInfo.Builder setText(androidx.car.app.model.CarText);
    method public androidx.car.app.navigation.model.MessageInfo.Builder setTitle(CharSequence);
  }

  @androidx.car.app.annotations.CarProtocol public final class NavigationTemplate implements androidx.car.app.model.Template {
    method public androidx.car.app.model.ActionStrip? getActionStrip();
    method public androidx.car.app.model.CarColor? getBackgroundColor();
    method public androidx.car.app.navigation.model.TravelEstimate? getDestinationTravelEstimate();
    method @androidx.car.app.annotations.RequiresCarApi(2) public androidx.car.app.model.ActionStrip? getMapActionStrip();
    method public androidx.car.app.navigation.model.NavigationTemplate.NavigationInfo? getNavigationInfo();
    method @androidx.car.app.annotations.RequiresCarApi(2) public androidx.car.app.navigation.model.PanModeDelegate? getPanModeDelegate();
    method @Deprecated @androidx.car.app.annotations.RequiresCarApi(2) public androidx.car.app.model.Toggle? getPanModeToggle();
  }

  public static final class NavigationTemplate.Builder {
    ctor public NavigationTemplate.Builder();
    method public androidx.car.app.navigation.model.NavigationTemplate build();
    method public androidx.car.app.navigation.model.NavigationTemplate.Builder setActionStrip(androidx.car.app.model.ActionStrip);
    method public androidx.car.app.navigation.model.NavigationTemplate.Builder setBackgroundColor(androidx.car.app.model.CarColor);
    method public androidx.car.app.navigation.model.NavigationTemplate.Builder setDestinationTravelEstimate(androidx.car.app.navigation.model.TravelEstimate);
    method @androidx.car.app.annotations.RequiresCarApi(2) public androidx.car.app.navigation.model.NavigationTemplate.Builder setMapActionStrip(androidx.car.app.model.ActionStrip);
    method public androidx.car.app.navigation.model.NavigationTemplate.Builder setNavigationInfo(androidx.car.app.navigation.model.NavigationTemplate.NavigationInfo);
    method @androidx.car.app.annotations.RequiresCarApi(2) public androidx.car.app.navigation.model.NavigationTemplate.Builder setPanModeListener(androidx.car.app.navigation.model.PanModeListener);
  }

  public static interface NavigationTemplate.NavigationInfo {
  }

  @androidx.car.app.annotations.CarProtocol @androidx.car.app.annotations.RequiresCarApi(2) public interface PanModeDelegate {
    method public void sendPanModeChanged(boolean, androidx.car.app.OnDoneCallback);
  }

  public interface PanModeListener {
    method public void onPanModeChanged(boolean);
  }

  @androidx.car.app.annotations.CarProtocol public final class PlaceListNavigationTemplate implements androidx.car.app.model.Template {
    method public androidx.car.app.model.ActionStrip? getActionStrip();
    method public androidx.car.app.model.Action? getHeaderAction();
    method public androidx.car.app.model.ItemList? getItemList();
    method @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(4) public androidx.car.app.model.ActionStrip? getMapActionStrip();
    method @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(4) public androidx.car.app.navigation.model.PanModeDelegate? getPanModeDelegate();
    method public androidx.car.app.model.CarText? getTitle();
    method public boolean isLoading();
  }

  public static final class PlaceListNavigationTemplate.Builder {
    ctor public PlaceListNavigationTemplate.Builder();
    method public androidx.car.app.navigation.model.PlaceListNavigationTemplate build();
    method public androidx.car.app.navigation.model.PlaceListNavigationTemplate.Builder setActionStrip(androidx.car.app.model.ActionStrip);
    method public androidx.car.app.navigation.model.PlaceListNavigationTemplate.Builder setHeaderAction(androidx.car.app.model.Action);
    method public androidx.car.app.navigation.model.PlaceListNavigationTemplate.Builder setItemList(androidx.car.app.model.ItemList);
    method public androidx.car.app.navigation.model.PlaceListNavigationTemplate.Builder setLoading(boolean);
    method @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(4) public androidx.car.app.navigation.model.PlaceListNavigationTemplate.Builder setMapActionStrip(androidx.car.app.model.ActionStrip);
    method @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(4) public androidx.car.app.navigation.model.PlaceListNavigationTemplate.Builder setPanModeListener(androidx.car.app.navigation.model.PanModeListener);
    method public androidx.car.app.navigation.model.PlaceListNavigationTemplate.Builder setTitle(CharSequence);
    method public androidx.car.app.navigation.model.PlaceListNavigationTemplate.Builder setTitle(androidx.car.app.model.CarText);
  }

  @androidx.car.app.annotations.CarProtocol public final class RoutePreviewNavigationTemplate implements androidx.car.app.model.Template {
    method public androidx.car.app.model.ActionStrip? getActionStrip();
    method public androidx.car.app.model.Action? getHeaderAction();
    method public androidx.car.app.model.ItemList? getItemList();
    method @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(4) public androidx.car.app.model.ActionStrip? getMapActionStrip();
    method public androidx.car.app.model.Action? getNavigateAction();
    method @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(4) public androidx.car.app.navigation.model.PanModeDelegate? getPanModeDelegate();
    method public androidx.car.app.model.CarText? getTitle();
    method public boolean isLoading();
  }

  public static final class RoutePreviewNavigationTemplate.Builder {
    ctor public RoutePreviewNavigationTemplate.Builder();
    method public androidx.car.app.navigation.model.RoutePreviewNavigationTemplate build();
    method public androidx.car.app.navigation.model.RoutePreviewNavigationTemplate.Builder setActionStrip(androidx.car.app.model.ActionStrip);
    method public androidx.car.app.navigation.model.RoutePreviewNavigationTemplate.Builder setHeaderAction(androidx.car.app.model.Action);
    method public androidx.car.app.navigation.model.RoutePreviewNavigationTemplate.Builder setItemList(androidx.car.app.model.ItemList);
    method public androidx.car.app.navigation.model.RoutePreviewNavigationTemplate.Builder setLoading(boolean);
    method @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(4) public androidx.car.app.navigation.model.RoutePreviewNavigationTemplate.Builder setMapActionStrip(androidx.car.app.model.ActionStrip);
    method public androidx.car.app.navigation.model.RoutePreviewNavigationTemplate.Builder setNavigateAction(androidx.car.app.model.Action);
    method @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(4) public androidx.car.app.navigation.model.RoutePreviewNavigationTemplate.Builder setPanModeListener(androidx.car.app.navigation.model.PanModeListener);
    method public androidx.car.app.navigation.model.RoutePreviewNavigationTemplate.Builder setTitle(CharSequence);
    method public androidx.car.app.navigation.model.RoutePreviewNavigationTemplate.Builder setTitle(androidx.car.app.model.CarText);
  }

  @androidx.car.app.annotations.CarProtocol public final class RoutingInfo implements androidx.car.app.navigation.model.NavigationTemplate.NavigationInfo {
    method public androidx.car.app.model.Distance? getCurrentDistance();
    method public androidx.car.app.navigation.model.Step? getCurrentStep();
    method public androidx.car.app.model.CarIcon? getJunctionImage();
    method public androidx.car.app.navigation.model.Step? getNextStep();
    method public boolean isLoading();
  }

  public static final class RoutingInfo.Builder {
    ctor public RoutingInfo.Builder();
    method public androidx.car.app.navigation.model.RoutingInfo build();
    method public androidx.car.app.navigation.model.RoutingInfo.Builder setCurrentStep(androidx.car.app.navigation.model.Step, androidx.car.app.model.Distance);
    method public androidx.car.app.navigation.model.RoutingInfo.Builder setJunctionImage(androidx.car.app.model.CarIcon);
    method public androidx.car.app.navigation.model.RoutingInfo.Builder setLoading(boolean);
    method public androidx.car.app.navigation.model.RoutingInfo.Builder setNextStep(androidx.car.app.navigation.model.Step);
  }

  @androidx.car.app.annotations.CarProtocol public final class Step {
    method public androidx.car.app.model.CarText? getCue();
    method public java.util.List<androidx.car.app.navigation.model.Lane!> getLanes();
    method public androidx.car.app.model.CarIcon? getLanesImage();
    method public androidx.car.app.navigation.model.Maneuver? getManeuver();
    method public androidx.car.app.model.CarText? getRoad();
  }

  public static final class Step.Builder {
    ctor public Step.Builder();
    ctor public Step.Builder(CharSequence);
    ctor public Step.Builder(androidx.car.app.model.CarText);
    method public androidx.car.app.navigation.model.Step.Builder addLane(androidx.car.app.navigation.model.Lane);
    method public androidx.car.app.navigation.model.Step build();
    method public androidx.car.app.navigation.model.Step.Builder setCue(CharSequence);
    method public androidx.car.app.navigation.model.Step.Builder setLanesImage(androidx.car.app.model.CarIcon);
    method public androidx.car.app.navigation.model.Step.Builder setManeuver(androidx.car.app.navigation.model.Maneuver);
    method public androidx.car.app.navigation.model.Step.Builder setRoad(CharSequence);
  }

  @androidx.car.app.annotations.CarProtocol public final class TravelEstimate {
    method public androidx.car.app.model.DateTimeWithZone? getArrivalTimeAtDestination();
    method public androidx.car.app.model.Distance? getRemainingDistance();
    method public androidx.car.app.model.CarColor? getRemainingDistanceColor();
    method public androidx.car.app.model.CarColor? getRemainingTimeColor();
    method public long getRemainingTimeSeconds();
    field public static final long REMAINING_TIME_UNKNOWN = -1L; // 0xffffffffffffffffL
  }

  public static final class TravelEstimate.Builder {
    ctor public TravelEstimate.Builder(androidx.car.app.model.Distance, androidx.car.app.model.DateTimeWithZone);
    ctor @RequiresApi(26) public TravelEstimate.Builder(androidx.car.app.model.Distance, java.time.ZonedDateTime);
    method public androidx.car.app.navigation.model.TravelEstimate build();
    method public androidx.car.app.navigation.model.TravelEstimate.Builder setRemainingDistanceColor(androidx.car.app.model.CarColor);
    method @RequiresApi(26) public androidx.car.app.navigation.model.TravelEstimate.Builder setRemainingTime(java.time.Duration);
    method public androidx.car.app.navigation.model.TravelEstimate.Builder setRemainingTimeColor(androidx.car.app.model.CarColor);
    method public androidx.car.app.navigation.model.TravelEstimate.Builder setRemainingTimeSeconds(@IntRange(from=0xffffffff) long);
  }

  @androidx.car.app.annotations.CarProtocol public final class Trip {
    method public androidx.car.app.model.CarText? getCurrentRoad();
    method public java.util.List<androidx.car.app.navigation.model.TravelEstimate!> getDestinationTravelEstimates();
    method public java.util.List<androidx.car.app.navigation.model.Destination!> getDestinations();
    method public java.util.List<androidx.car.app.navigation.model.TravelEstimate!> getStepTravelEstimates();
    method public java.util.List<androidx.car.app.navigation.model.Step!> getSteps();
    method public boolean isLoading();
  }

  public static final class Trip.Builder {
    ctor public Trip.Builder();
    method public androidx.car.app.navigation.model.Trip.Builder addDestination(androidx.car.app.navigation.model.Destination, androidx.car.app.navigation.model.TravelEstimate);
    method public androidx.car.app.navigation.model.Trip.Builder addStep(androidx.car.app.navigation.model.Step, androidx.car.app.navigation.model.TravelEstimate);
    method public androidx.car.app.navigation.model.Trip build();
    method public androidx.car.app.navigation.model.Trip.Builder setCurrentRoad(CharSequence);
    method public androidx.car.app.navigation.model.Trip.Builder setLoading(boolean);
  }

}

package androidx.car.app.notification {

  public final class CarAppExtender implements androidx.core.app.NotificationCompat.Extender {
    ctor public CarAppExtender(android.app.Notification);
    method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
    method public java.util.List<android.app.Notification.Action!> getActions();
    method public String? getChannelId();
    method public androidx.car.app.model.CarColor? getColor();
    method public android.app.PendingIntent? getContentIntent();
    method public CharSequence? getContentText();
    method public CharSequence? getContentTitle();
    method public android.app.PendingIntent? getDeleteIntent();
    method public int getImportance();
    method public android.graphics.Bitmap? getLargeIcon();
    method @DrawableRes public int getSmallIcon();
    method public static boolean isExtended(android.app.Notification);
  }

  public static final class CarAppExtender.Builder {
    ctor public CarAppExtender.Builder();
    method public androidx.car.app.notification.CarAppExtender.Builder addAction(@DrawableRes int, CharSequence, android.app.PendingIntent);
    method public androidx.car.app.notification.CarAppExtender build();
    method public androidx.car.app.notification.CarAppExtender.Builder setChannelId(String);
    method public androidx.car.app.notification.CarAppExtender.Builder setColor(androidx.car.app.model.CarColor);
    method public androidx.car.app.notification.CarAppExtender.Builder setContentIntent(android.app.PendingIntent);
    method public androidx.car.app.notification.CarAppExtender.Builder setContentText(CharSequence);
    method public androidx.car.app.notification.CarAppExtender.Builder setContentTitle(CharSequence);
    method public androidx.car.app.notification.CarAppExtender.Builder setDeleteIntent(android.app.PendingIntent);
    method public androidx.car.app.notification.CarAppExtender.Builder setImportance(int);
    method public androidx.car.app.notification.CarAppExtender.Builder setLargeIcon(android.graphics.Bitmap);
    method public androidx.car.app.notification.CarAppExtender.Builder setSmallIcon(int);
  }

  public final class CarNotificationManager {
    method public boolean areNotificationsEnabled();
    method public void cancel(int);
    method public void cancel(String?, int);
    method public void cancelAll();
    method public void createNotificationChannel(androidx.core.app.NotificationChannelCompat);
    method public void createNotificationChannelGroup(androidx.core.app.NotificationChannelGroupCompat);
    method public void createNotificationChannelGroups(java.util.List<androidx.core.app.NotificationChannelGroupCompat!>);
    method public void createNotificationChannels(java.util.List<androidx.core.app.NotificationChannelCompat!>);
    method public void deleteNotificationChannel(String);
    method public void deleteNotificationChannelGroup(String);
    method public void deleteUnlistedNotificationChannels(java.util.Collection<java.lang.String!>);
    method public static androidx.car.app.notification.CarNotificationManager from(android.content.Context);
    method public static java.util.Set<java.lang.String!> getEnabledListenerPackages(android.content.Context);
    method public int getImportance();
    method public androidx.core.app.NotificationChannelCompat? getNotificationChannel(String);
    method public androidx.core.app.NotificationChannelCompat? getNotificationChannel(String, String);
    method public androidx.core.app.NotificationChannelGroupCompat? getNotificationChannelGroup(String);
    method public java.util.List<androidx.core.app.NotificationChannelGroupCompat!> getNotificationChannelGroups();
    method public java.util.List<androidx.core.app.NotificationChannelCompat!> getNotificationChannels();
    method public void notify(int, androidx.core.app.NotificationCompat.Builder);
    method public void notify(String?, int, androidx.core.app.NotificationCompat.Builder);
  }

  public final class CarPendingIntent {
    method public static android.app.PendingIntent getCarApp(android.content.Context, int, android.content.Intent, int);
  }

}

package androidx.car.app.serialization {

  public final class Bundleable implements android.os.Parcelable {
    method public static androidx.car.app.serialization.Bundleable create(Object) throws androidx.car.app.serialization.BundlerException;
    method public int describeContents();
    method public Object get() throws androidx.car.app.serialization.BundlerException;
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<androidx.car.app.serialization.Bundleable!> CREATOR;
  }

  public class BundlerException extends java.lang.Exception {
    ctor public BundlerException(String?, Throwable);
    ctor public BundlerException(String?);
  }

}

package androidx.car.app.validation {

  public final class HostValidator {
    method public java.util.Map<java.lang.String!,java.util.List<java.lang.String!>!> getAllowedHosts();
    method public boolean isValidHost(androidx.car.app.HostInfo);
    field public static final androidx.car.app.validation.HostValidator ALLOW_ALL_HOSTS_VALIDATOR;
    field public static final String TEMPLATE_RENDERER_PERMISSION = "android.car.permission.TEMPLATE_RENDERER";
  }

  public static final class HostValidator.Builder {
    ctor public HostValidator.Builder(android.content.Context);
    method public androidx.car.app.validation.HostValidator.Builder addAllowedHost(String, String);
    method public androidx.car.app.validation.HostValidator.Builder addAllowedHosts(@ArrayRes int);
    method public androidx.car.app.validation.HostValidator build();
  }

}

package androidx.car.app.versioning {

  public final class CarAppApiLevels {
    method public static int getLatest();
    method public static int getOldest();
    field public static final int LEVEL_1 = 1; // 0x1
    field public static final int LEVEL_2 = 2; // 0x2
    field public static final int LEVEL_3 = 3; // 0x3
    field @androidx.car.app.annotations.ExperimentalCarApi public static final int LEVEL_4 = 4; // 0x4
  }

}

