// Signature format: 4.0
package androidx.camera.view {

  public abstract class CameraController {
    method @MainThread public void clearImageAnalysisAnalyzer();
    method @MainThread public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> enableTorch(boolean);
    method @MainThread public androidx.camera.core.CameraSelector getCameraSelector();
    method @MainThread public int getImageAnalysisBackpressureStrategy();
    method @MainThread public int getImageAnalysisImageQueueDepth();
    method @MainThread public int getImageCaptureFlashMode();
    method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> getInitializationFuture();
    method @MainThread public androidx.lifecycle.LiveData<java.lang.Integer!> getTorchState();
    method @MainThread public androidx.lifecycle.LiveData<androidx.camera.core.ZoomState!> getZoomState();
    method @MainThread public boolean hasCamera(androidx.camera.core.CameraSelector);
    method @MainThread public boolean isImageAnalysisEnabled();
    method @MainThread public boolean isImageCaptureEnabled();
    method @MainThread public boolean isPinchToZoomEnabled();
    method @MainThread public boolean isTapToFocusEnabled();
    method @MainThread public void setCameraSelector(androidx.camera.core.CameraSelector);
    method @MainThread public void setEnabledUseCases(int);
    method @MainThread public void setImageAnalysisAnalyzer(java.util.concurrent.Executor, androidx.camera.core.ImageAnalysis.Analyzer);
    method @MainThread public void setImageAnalysisBackpressureStrategy(int);
    method @MainThread public void setImageAnalysisImageQueueDepth(int);
    method @MainThread public void setImageCaptureFlashMode(int);
    method @MainThread public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setLinearZoom(float);
    method @MainThread public void setPinchToZoomEnabled(boolean);
    method @MainThread public void setTapToFocusEnabled(boolean);
    method @MainThread public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setZoomRatio(float);
    method @MainThread public void takePicture(androidx.camera.core.ImageCapture.OutputFileOptions, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
    method @MainThread public void takePicture(java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageCapturedCallback);
    field public static final int IMAGE_ANALYSIS = 2; // 0x2
    field public static final int IMAGE_CAPTURE = 1; // 0x1
  }

  public final class CameraView extends android.widget.FrameLayout {
    ctor public CameraView(android.content.Context);
    ctor public CameraView(android.content.Context, android.util.AttributeSet?);
    ctor public CameraView(android.content.Context, android.util.AttributeSet?, int);
    ctor @RequiresApi(21) public CameraView(android.content.Context, android.util.AttributeSet?, int, int);
    method @RequiresPermission(android.Manifest.permission.CAMERA) public void bindToLifecycle(androidx.lifecycle.LifecycleOwner);
    method public void enableTorch(boolean);
    method public Integer? getCameraLensFacing();
    method public androidx.camera.view.CameraView.CaptureMode getCaptureMode();
    method public int getFlash();
    method public float getMaxZoomRatio();
    method public float getMinZoomRatio();
    method public androidx.lifecycle.LiveData<androidx.camera.view.PreviewView.StreamState!> getPreviewStreamState();
    method public androidx.camera.view.PreviewView.ScaleType getScaleType();
    method public float getZoomRatio();
    method @RequiresPermission(android.Manifest.permission.CAMERA) public boolean hasCameraWithLensFacing(int);
    method public boolean isPinchToZoomEnabled();
    method public boolean isTorchOn();
    method public boolean isZoomSupported();
    method public void setCameraLensFacing(Integer?);
    method public void setCaptureMode(androidx.camera.view.CameraView.CaptureMode);
    method public void setFlash(int);
    method public void setPinchToZoomEnabled(boolean);
    method public void setScaleType(androidx.camera.view.PreviewView.ScaleType);
    method public void setZoomRatio(float);
    method public void takePicture(java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageCapturedCallback);
    method public void takePicture(androidx.camera.core.ImageCapture.OutputFileOptions, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
    method public void toggleCamera();
  }

  public enum CameraView.CaptureMode {
    enum_constant public static final androidx.camera.view.CameraView.CaptureMode IMAGE;
  }

  public final class LifecycleCameraController extends androidx.camera.view.CameraController {
    ctor public LifecycleCameraController(android.content.Context);
    method @MainThread public void bindToLifecycle(androidx.lifecycle.LifecycleOwner);
    method @MainThread public void unbind();
  }

  public final class PreviewView extends android.widget.FrameLayout {
    ctor @UiThread public PreviewView(android.content.Context);
    ctor @UiThread public PreviewView(android.content.Context, android.util.AttributeSet?);
    ctor @UiThread public PreviewView(android.content.Context, android.util.AttributeSet?, int);
    ctor @UiThread public PreviewView(android.content.Context, android.util.AttributeSet?, int, int);
    method @UiThread public android.graphics.Bitmap? getBitmap();
    method @UiThread public androidx.camera.view.CameraController? getController();
    method @UiThread public androidx.camera.view.PreviewView.ImplementationMode getImplementationMode();
    method @UiThread public androidx.camera.core.MeteringPointFactory getMeteringPointFactory();
    method public androidx.lifecycle.LiveData<androidx.camera.view.PreviewView.StreamState!> getPreviewStreamState();
    method @UiThread public androidx.camera.view.PreviewView.ScaleType getScaleType();
    method @UiThread public androidx.camera.core.Preview.SurfaceProvider getSurfaceProvider();
    method @UiThread public androidx.camera.core.ViewPort? getViewPort();
    method @UiThread public androidx.camera.core.ViewPort? getViewPort(int);
    method @UiThread public void setController(androidx.camera.view.CameraController?);
    method @UiThread public void setImplementationMode(androidx.camera.view.PreviewView.ImplementationMode);
    method @UiThread public void setScaleType(androidx.camera.view.PreviewView.ScaleType);
  }

  public enum PreviewView.ImplementationMode {
    enum_constant public static final androidx.camera.view.PreviewView.ImplementationMode COMPATIBLE;
    enum_constant public static final androidx.camera.view.PreviewView.ImplementationMode PERFORMANCE;
  }

  public enum PreviewView.ScaleType {
    enum_constant public static final androidx.camera.view.PreviewView.ScaleType FILL_CENTER;
    enum_constant public static final androidx.camera.view.PreviewView.ScaleType FILL_END;
    enum_constant public static final androidx.camera.view.PreviewView.ScaleType FILL_START;
    enum_constant public static final androidx.camera.view.PreviewView.ScaleType FIT_CENTER;
    enum_constant public static final androidx.camera.view.PreviewView.ScaleType FIT_END;
    enum_constant public static final androidx.camera.view.PreviewView.ScaleType FIT_START;
  }

  public enum PreviewView.StreamState {
    enum_constant public static final androidx.camera.view.PreviewView.StreamState IDLE;
    enum_constant public static final androidx.camera.view.PreviewView.StreamState STREAMING;
  }

}

