// Signature format: 4.0
package androidx.camera.testing.fakes {

  @RequiresApi(21) public final class FakeAppConfig {
    method public static androidx.camera.core.CameraXConfig create();
    method public static androidx.camera.core.CameraXConfig create(androidx.camera.core.CameraSelector?);
  }

  @RequiresApi(21) public class FakeCamera implements androidx.camera.core.Camera {
    ctor public FakeCamera();
    ctor public FakeCamera(androidx.camera.core.impl.CameraControlInternal);
    ctor public FakeCamera(androidx.camera.core.impl.CameraControlInternal?, androidx.camera.core.impl.CameraInfoInternal);
    ctor public FakeCamera(String);
    ctor public FakeCamera(String, androidx.camera.core.impl.CameraControlInternal?, androidx.camera.core.impl.CameraInfoInternal);
    method public void attachUseCases(java.util.Collection<androidx.camera.core.UseCase!>);
    method public void close();
    method public void detachUseCases(java.util.Collection<androidx.camera.core.UseCase!>);
    method public java.util.Set<androidx.camera.core.UseCase!> getAttachedUseCases();
    method @IntRange(from=0) public int getAvailableCameraCount();
    method public androidx.camera.core.impl.CameraControlInternal getCameraControlInternal();
    method public androidx.camera.core.impl.CameraInfoInternal getCameraInfoInternal();
    method public androidx.camera.core.impl.Observable<androidx.camera.core.impl.CameraInternal.State!> getCameraState();
    method public androidx.camera.core.impl.CameraConfig getExtendedConfig();
    method public boolean getHasTransform();
    method public java.util.List<androidx.camera.core.UseCase!> getUseCaseActiveHistory();
    method public java.util.List<androidx.camera.core.UseCase!> getUseCaseInactiveHistory();
    method public java.util.List<androidx.camera.core.UseCase!> getUseCaseResetHistory();
    method public java.util.List<androidx.camera.core.UseCase!> getUseCaseUpdateHistory();
    method public void onUseCaseActive(androidx.camera.core.UseCase);
    method public void onUseCaseInactive(androidx.camera.core.UseCase);
    method public void onUseCaseReset(androidx.camera.core.UseCase);
    method public void onUseCaseUpdated(androidx.camera.core.UseCase);
    method public void open();
    method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> release();
    method public void setAvailableCameraCount(@IntRange(from=0) int);
    method public void setExtendedConfig(androidx.camera.core.impl.CameraConfig?);
    method public void setHasTransform(boolean);
  }

  @RequiresApi(21) public final class FakeCameraControl implements androidx.camera.core.CameraControl {
    ctor public FakeCameraControl();
    ctor public FakeCameraControl(androidx.camera.core.impl.CameraControlInternal.ControlUpdateCallback);
    ctor public FakeCameraControl(java.util.concurrent.Executor, androidx.camera.core.impl.CameraControlInternal.ControlUpdateCallback);
    method public void addInteropConfig(androidx.camera.core.impl.Config);
    method public void addZslConfig(androidx.camera.core.impl.SessionConfig.Builder);
    method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> cancelFocusAndMetering();
    method public void clearInteropConfig();
    method public void clearNewCaptureRequestListener();
    method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> enableTorch(boolean);
    method public int getExposureCompensationIndex();
    method public int getFlashMode();
    method public androidx.camera.core.impl.Config getInteropConfig();
    method public androidx.camera.core.FocusMeteringAction? getLastSubmittedFocusMeteringAction();
    method public float getLinearZoom();
    method public androidx.camera.core.ImageCapture.ScreenFlash? getScreenFlash();
    method public android.graphics.Rect getSensorRect();
    method public androidx.camera.core.impl.SessionConfig getSessionConfig();
    method public boolean getTorchEnabled();
    method public float getZoomRatio();
    method public boolean isZslConfigAdded();
    method public boolean isZslDisabledByByUserCaseConfig();
    method public void notifyAllRequestsOnCaptureCancelled();
    method public void notifyAllRequestsOnCaptureCompleted(androidx.camera.core.impl.CameraCaptureResult);
    method public void notifyAllRequestsOnCaptureFailed();
    method public com.google.common.util.concurrent.ListenableFuture<java.lang.Integer!> setExposureCompensationIndex(int);
    method public void setFlashMode(int);
    method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setLinearZoom(float);
    method public void setOnNewCaptureRequestListener(androidx.camera.testing.fakes.FakeCameraControl.OnNewCaptureRequestListener);
    method public void setOnNewCaptureRequestListener(java.util.concurrent.Executor, androidx.camera.testing.fakes.FakeCameraControl.OnNewCaptureRequestListener);
    method public void setScreenFlash(androidx.camera.core.ImageCapture.ScreenFlash?);
    method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setZoomRatio(float);
    method public void setZslDisabledByUserCaseConfig(boolean);
    method public com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.FocusMeteringResult!> startFocusAndMetering(androidx.camera.core.FocusMeteringAction);
    method public com.google.common.util.concurrent.ListenableFuture<java.util.List<java.lang.Void!>!> submitStillCaptureRequests(java.util.List<androidx.camera.core.impl.CaptureConfig!>, int, int);
    field public static final androidx.camera.core.impl.CameraControlInternal DEFAULT_EMPTY_INSTANCE;
  }

  @RequiresApi(21) public static interface FakeCameraControl.OnNewCaptureRequestListener {
    method public void onNewCaptureRequests(java.util.List<androidx.camera.core.impl.CaptureConfig!>);
  }

  @RequiresApi(21) public final class FakeCameraInfoInternal implements androidx.camera.core.CameraInfo {
    ctor public FakeCameraInfoInternal();
    ctor public FakeCameraInfoInternal(int, int);
    ctor public FakeCameraInfoInternal(String);
    ctor public FakeCameraInfoInternal(String, int);
    ctor public FakeCameraInfoInternal(String, int, int);
    method public void addCameraQuirk(androidx.camera.core.impl.Quirk);
    method public void addSessionCaptureCallback(java.util.concurrent.Executor, androidx.camera.core.impl.CameraCaptureCallback);
    method public String getCameraId();
    method public androidx.camera.core.impl.Quirks getCameraQuirks();
    method public androidx.lifecycle.LiveData<androidx.camera.core.CameraState!> getCameraState();
    method public androidx.camera.core.impl.EncoderProfilesProvider getEncoderProfilesProvider();
    method public androidx.camera.core.ExposureState getExposureState();
    method public String getImplementationType();
    method public int getSensorRotationDegrees();
    method public int getSensorRotationDegrees(int);
    method public java.util.Set<androidx.camera.core.DynamicRange!> getSupportedDynamicRanges();
    method public java.util.List<android.util.Size!> getSupportedHighResolutions(int);
    method public java.util.List<android.util.Size!> getSupportedResolutions(int);
    method public androidx.camera.core.impl.Timebase getTimebase();
    method public androidx.lifecycle.LiveData<java.lang.Integer!> getTorchState();
    method public androidx.lifecycle.LiveData<androidx.camera.core.ZoomState!> getZoomState();
    method public boolean hasFlashUnit();
    method public boolean isPreviewStabilizationSupported();
    method public boolean isPrivateReprocessingSupported();
    method public boolean isVideoStabilizationSupported();
    method public void removeSessionCaptureCallback(androidx.camera.core.impl.CameraCaptureCallback);
    method public void setEncoderProfilesProvider(androidx.camera.core.impl.EncoderProfilesProvider);
    method public void setExposureState(int, android.util.Range<java.lang.Integer!>, android.util.Rational, boolean);
    method public void setImplementationType(String);
    method public void setIntrinsicZoomRatio(float);
    method public void setIsFocusMeteringSupported(boolean);
    method public void setPrivateReprocessingSupported(boolean);
    method public void setSupportedDynamicRanges(java.util.Set<androidx.camera.core.DynamicRange!>);
    method public void setSupportedHighResolutions(int, java.util.List<android.util.Size!>);
    method public void setSupportedResolutions(int, java.util.List<android.util.Size!>);
    method public void setTimebase(androidx.camera.core.impl.Timebase);
    method public void setTorch(int);
    method public void setZoom(float, float, float, float);
  }

}

