// Signature format: 4.0
package androidx.camera.camera2.pipe.integration {

  @RequiresApi(21) public final class CameraPipeConfig {
    method public static androidx.camera.core.CameraXConfig defaultConfig();
  }

}

package androidx.camera.camera2.pipe.integration.interop {

  @RequiresApi(21) @androidx.camera.camera2.pipe.integration.interop.ExperimentalCamera2Interop public final class Camera2CameraControl {
    method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> addCaptureRequestOptions(androidx.camera.camera2.pipe.integration.interop.CaptureRequestOptions bundle);
    method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> clearCaptureRequestOptions();
    method public static androidx.camera.camera2.pipe.integration.interop.Camera2CameraControl from(androidx.camera.core.CameraControl cameraControl);
    method public androidx.camera.camera2.pipe.integration.interop.CaptureRequestOptions getCaptureRequestOptions();
    method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> setCaptureRequestOptions(androidx.camera.camera2.pipe.integration.interop.CaptureRequestOptions bundle);
  }

  @RequiresApi(21) @androidx.camera.camera2.pipe.integration.interop.ExperimentalCamera2Interop public final class Camera2CameraInfo {
    method public static androidx.camera.camera2.pipe.integration.interop.Camera2CameraInfo from(androidx.camera.core.CameraInfo cameraInfo);
    method public <T> T? getCameraCharacteristic(android.hardware.camera2.CameraCharacteristics.Key<T> key);
    method public String getCameraId();
  }

  @RequiresApi(21) @androidx.camera.camera2.pipe.integration.interop.ExperimentalCamera2Interop public final class Camera2Interop {
  }

  @RequiresApi(21) public static final class Camera2Interop.Extender<T> {
    ctor public Camera2Interop.Extender(androidx.camera.core.ExtendableBuilder<T> baseBuilder);
    method public <ValueT> androidx.camera.camera2.pipe.integration.interop.Camera2Interop.Extender<T> setCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT> key, ValueT value);
    method public androidx.camera.camera2.pipe.integration.interop.Camera2Interop.Extender<T> setDeviceStateCallback(android.hardware.camera2.CameraDevice.StateCallback stateCallback);
    method @RequiresApi(28) public androidx.camera.camera2.pipe.integration.interop.Camera2Interop.Extender<T> setPhysicalCameraId(String cameraId);
    method public androidx.camera.camera2.pipe.integration.interop.Camera2Interop.Extender<T> setSessionCaptureCallback(android.hardware.camera2.CameraCaptureSession.CaptureCallback captureCallback);
    method public androidx.camera.camera2.pipe.integration.interop.Camera2Interop.Extender<T> setSessionStateCallback(android.hardware.camera2.CameraCaptureSession.StateCallback stateCallback);
    method @RequiresApi(33) public androidx.camera.camera2.pipe.integration.interop.Camera2Interop.Extender<T> setStreamUseCase(long streamUseCase);
  }

  @RequiresApi(21) @androidx.camera.camera2.pipe.integration.interop.ExperimentalCamera2Interop public class CaptureRequestOptions {
    method public <ValueT> ValueT? getCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT> key);
  }

  @RequiresApi(21) public static final class CaptureRequestOptions.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.camera2.pipe.integration.interop.CaptureRequestOptions> {
    ctor public CaptureRequestOptions.Builder();
    method public androidx.camera.camera2.pipe.integration.interop.CaptureRequestOptions build();
    method public <ValueT> androidx.camera.camera2.pipe.integration.interop.CaptureRequestOptions.Builder clearCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT> key);
    method public <ValueT> androidx.camera.camera2.pipe.integration.interop.CaptureRequestOptions.Builder setCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT> key, ValueT value);
  }

  @kotlin.RequiresOptIn @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalCamera2Interop {
  }

}

