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

  public final class AppInfo {
    ctor @VisibleForTesting public AppInfo(int, int, String);
    method public int getLatestCarAppApiLevel();
    method public String getLibraryDisplayVersion();
    method public int getMinCarAppApiLevel();
  }

  public class AppManager {
    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 public int getCarAppApiLevel();
    method public Object getCarService(String);
    method public <T> T getCarService(Class<T!>);
    method public String getCarServiceName(Class<?>);
    method public androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher();
    method public boolean isDarkMode();
    method public void startCarApp(android.content.Intent);
    method 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 public static final String EXTRA_START_CAR_APP_BINDER_KEY = "androidx.car.app.extra.START_CAR_APP_BINDER_KEY";
    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
  }

  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
  }

  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();
  }

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

  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 {
    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 public void onStableAreaChanged(android.graphics.Rect);
    method public void onSurfaceAvailable(androidx.car.app.SurfaceContainer);
    method public void onSurfaceDestroyed(androidx.car.app.SurfaceContainer);
    method public void onVisibleAreaChanged(android.graphics.Rect);
  }

  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 {

  @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.model {

  public final class Action {
    method public androidx.car.app.model.CarColor? getBackgroundColor();
    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 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
  }

  public static final class Action.Builder {
    ctor public Action.Builder();
    method public androidx.car.app.model.Action build();
    method public androidx.car.app.model.Action.Builder setBackgroundColor(androidx.car.app.model.CarColor);
    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 @androidx.car.app.annotations.ExperimentalCarApi public androidx.car.app.model.Action.Builder setTitle(androidx.car.app.model.CarText);
  }

  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();
  }

  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;
  }

  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 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
  }

  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);
  }

  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
  }

  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 public class CarSpan extends android.text.style.CharacterStyle {
    ctor public CarSpan();
    method public void updateDrawState(android.text.TextPaint);
  }

  public final class CarText {
    method public static androidx.car.app.model.CarText create(CharSequence);
    method @androidx.car.app.annotations.ExperimentalCarApi 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();
  }

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

  @androidx.car.app.annotations.ExperimentalCarApi @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();
  }

  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();
  }

  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
  }

  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();
  }

  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();
  }

  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();
  }

  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 @androidx.car.app.annotations.ExperimentalCarApi public androidx.car.app.model.GridItem.Builder setText(androidx.car.app.model.CarText);
    method public androidx.car.app.model.GridItem.Builder setTitle(CharSequence);
    method @androidx.car.app.annotations.ExperimentalCarApi public androidx.car.app.model.GridItem.Builder setTitle(androidx.car.app.model.CarText);
  }

  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);
  }

  public interface Item {
  }

  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);
  }

  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);
  }

  public final class MessageTemplate implements androidx.car.app.model.Template {
    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();
  }

  public static final class MessageTemplate.Builder {
    ctor public MessageTemplate.Builder(CharSequence);
    ctor @androidx.car.app.annotations.ExperimentalCarApi 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 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 public androidx.car.app.model.MessageTemplate.Builder setTitle(CharSequence);
  }

  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);
  }

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

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

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

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

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

  public final class Pane {
    method public java.util.List<androidx.car.app.model.Action!> getActions();
    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 public androidx.car.app.model.Pane.Builder setLoading(boolean);
  }

  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);
  }

  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();
  }

  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);
  }

  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);
  }

  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);
  }

  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 @androidx.car.app.annotations.ExperimentalCarApi 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 @androidx.car.app.annotations.ExperimentalCarApi 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);
  }

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

  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 void onSearchSubmitted(String);
    method public void onSearchTextChanged(String);
  }

  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();
  }

  public interface Template {
  }

  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();
  }

  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);
  }

  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.ExperimentalCarApi @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 int getInputType();
    method public int getKeyboardType();
    method public androidx.car.app.model.CarText? getMessage();
    method public androidx.car.app.model.signin.OnInputCompletedDelegate getOnInputCompletedDelegate();
    method public androidx.car.app.model.CarText? getPrompt();
    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.signin.InputSignInMethod.OnInputCompletedListener);
    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 setInputType(int);
    method public androidx.car.app.model.signin.InputSignInMethod.Builder setKeyboardType(int);
    method public androidx.car.app.model.signin.InputSignInMethod.Builder setMessage(CharSequence);
    method public androidx.car.app.model.signin.InputSignInMethod.Builder setPrompt(CharSequence);
    method public androidx.car.app.model.signin.InputSignInMethod.Builder setShowKeyboardByDefault(boolean);
  }

  public static interface InputSignInMethod.OnInputCompletedListener {
    method public void onInputCompleted(String);
  }

  @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(2) public interface OnInputCompletedDelegate {
    method public void sendInputCompleted(String, androidx.car.app.OnDoneCallback);
  }

  @androidx.car.app.annotations.ExperimentalCarApi @androidx.car.app.annotations.RequiresCarApi(2) public final class PinSignInMethod implements androidx.car.app.model.signin.SignInTemplate.SignInMethod {
    method public String getPin();
  }

  public static final class PinSignInMethod.Builder {
    ctor public PinSignInMethod.Builder(String);
    method public androidx.car.app.model.signin.PinSignInMethod build();
  }

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

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

  @androidx.car.app.annotations.ExperimentalCarApi @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();
  }

  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 setTitle(CharSequence);
  }

  public static interface SignInTemplate.SignInMethod {
  }

}

package androidx.car.app.navigation {

  public class NavigationManager {
    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 void onAutoDriveEnabled();
    method public void onStopNavigation();
  }

}

package androidx.car.app.navigation.model {

  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);
  }

  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();
  }

  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
  }

  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);
  }

  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 @androidx.car.app.annotations.ExperimentalCarApi 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 @androidx.car.app.annotations.ExperimentalCarApi 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);
  }

  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 public androidx.car.app.navigation.model.NavigationTemplate.NavigationInfo? getNavigationInfo();
  }

  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 public androidx.car.app.navigation.model.NavigationTemplate.Builder setNavigationInfo(androidx.car.app.navigation.model.NavigationTemplate.NavigationInfo);
  }

  public static interface NavigationTemplate.NavigationInfo {
  }

  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 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 public androidx.car.app.navigation.model.PlaceListNavigationTemplate.Builder setTitle(CharSequence);
  }

  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 public androidx.car.app.model.Action? getNavigateAction();
    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 public androidx.car.app.navigation.model.RoutePreviewNavigationTemplate.Builder setNavigateAction(androidx.car.app.model.Action);
    method public androidx.car.app.navigation.model.RoutePreviewNavigationTemplate.Builder setTitle(CharSequence);
  }

  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);
  }

  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(CharSequence);
    ctor @androidx.car.app.annotations.ExperimentalCarApi 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);
  }

  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);
  }

  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 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 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);
  }

}

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
  }

}

