import typing

import android.graphics
import android.hardware.camera2
import android.os
import android.util
import android.view
import java
import java.chaquopy
import java.lang
import java.util
import java.util.concurrent

class BlackLevelPattern(java.lang.Object):
    COUNT: typing.ClassVar[int] = ...
    def __init__(self, offsets: java.chaquopy.JavaArrayJInt, /) -> None: ...
    def copyTo(self, destination: java.chaquopy.JavaArrayJInt, offset: int | java.jint | java.lang.Integer, /) -> None: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getOffsetForIndex(self, column: int | java.jint | java.lang.Integer, row: int | java.jint | java.lang.Integer, /) -> int: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class Capability(java.lang.Object):
    def __init__(self, mode: int | java.jint | java.lang.Integer, maxStreamingSize: android.util.Size, zoomRatioRange: android.util.Range[java.lang.Float], /) -> None: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getMaxStreamingSize(self) -> android.util.Size: ...
    def getMode(self) -> int: ...
    def getZoomRatioRange(self) -> android.util.Range[java.lang.Float]: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class ColorSpaceProfiles(java.lang.Object):
    UNSPECIFIED: typing.ClassVar[int] = ...
    def __init__(self, elements: java.chaquopy.JavaArrayJLong, /) -> None: ...
    def getSupportedColorSpaces(self, imageFormat: int | java.jint | java.lang.Integer, /) -> java.util.Set[android.graphics.ColorSpace.Named]: ...
    def getSupportedColorSpacesForDynamicRange(self, imageFormat: int | java.jint | java.lang.Integer, dynamicRangeProfile: int | java.jlong | java.lang.Long, /) -> java.util.Set[android.graphics.ColorSpace.Named]: ...
    def getSupportedDynamicRangeProfiles(self, colorSpace: android.graphics.ColorSpace.Named, imageFormat: int | java.jint | java.lang.Integer, /) -> java.util.Set[java.lang.Long]: ...
    def getSupportedImageFormatsForColorSpace(self, colorSpace: android.graphics.ColorSpace.Named, /) -> java.util.Set[java.lang.Integer]: ...

class ColorSpaceTransform(java.lang.Object):
    @typing.overload
    def __init__(self, elements: java.chaquopy.JavaArrayJInt, /) -> None: ...
    @typing.overload
    def __init__(self, elements: java.chaquopy.JavaArray[android.util.Rational], /) -> None: ...
    @typing.overload
    def copyElements(self, destination: java.chaquopy.JavaArrayJInt, offset: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def copyElements(self, destination: java.chaquopy.JavaArray[android.util.Rational], offset: int | java.jint | java.lang.Integer, /) -> None: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getElement(self, column: int | java.jint | java.lang.Integer, row: int | java.jint | java.lang.Integer, /) -> android.util.Rational: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class DeviceStateSensorOrientationMap(java.lang.Object):
    FOLDED: typing.ClassVar[int] = ...
    NORMAL: typing.ClassVar[int] = ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getSensorOrientation(self, deviceState: int | java.jlong | java.lang.Long, /) -> int: ...
    def hashCode(self) -> int: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def addOrientationForState(self, deviceState: int | java.jlong | java.lang.Long, angle: int | java.jlong | java.lang.Long, /) -> DeviceStateSensorOrientationMap.Builder: ...
        def build(self) -> DeviceStateSensorOrientationMap: ...

class DynamicRangeProfiles(java.lang.Object):
    DOLBY_VISION_10B_HDR_OEM: typing.ClassVar[int] = ...
    DOLBY_VISION_10B_HDR_OEM_PO: typing.ClassVar[int] = ...
    DOLBY_VISION_10B_HDR_REF: typing.ClassVar[int] = ...
    DOLBY_VISION_10B_HDR_REF_PO: typing.ClassVar[int] = ...
    DOLBY_VISION_8B_HDR_OEM: typing.ClassVar[int] = ...
    DOLBY_VISION_8B_HDR_OEM_PO: typing.ClassVar[int] = ...
    DOLBY_VISION_8B_HDR_REF: typing.ClassVar[int] = ...
    DOLBY_VISION_8B_HDR_REF_PO: typing.ClassVar[int] = ...
    HDR10: typing.ClassVar[int] = ...
    HDR10_PLUS: typing.ClassVar[int] = ...
    HLG10: typing.ClassVar[int] = ...
    PUBLIC_MAX: typing.ClassVar[int] = ...
    STANDARD: typing.ClassVar[int] = ...
    def __init__(self, elements: java.chaquopy.JavaArrayJLong, /) -> None: ...
    def getProfileCaptureRequestConstraints(self, profile: int | java.jlong | java.lang.Long, /) -> java.util.Set[java.lang.Long]: ...
    def getSupportedProfiles(self) -> java.util.Set[java.lang.Long]: ...
    def isExtraLatencyPresent(self, profile: int | java.jlong | java.lang.Long, /) -> bool: ...

class ExtensionSessionConfiguration(java.lang.Object):
    def __init__(self, extension: int | java.jint | java.lang.Integer, outputs: java.util.List[OutputConfiguration], executor: java.util.concurrent.Executor, listener: android.hardware.camera2.CameraExtensionSession.StateCallback, /) -> None: ...
    def clearColorSpace(self) -> None: ...
    def getColorSpace(self) -> android.graphics.ColorSpace | None: ...
    def getExecutor(self) -> java.util.concurrent.Executor: ...
    def getExtension(self) -> int: ...
    def getOutputConfigurations(self) -> java.util.List[OutputConfiguration]: ...
    def getPostviewOutputConfiguration(self) -> OutputConfiguration | None: ...
    def getStateCallback(self) -> android.hardware.camera2.CameraExtensionSession.StateCallback: ...
    def setColorSpace(self, colorSpace: android.graphics.ColorSpace.Named, /) -> None: ...
    def setPostviewOutputConfiguration(self, postviewOutput: OutputConfiguration, /) -> None: ...

class Face(java.lang.Object):
    ID_UNSUPPORTED: typing.ClassVar[int] = ...
    SCORE_MAX: typing.ClassVar[int] = ...
    SCORE_MIN: typing.ClassVar[int] = ...
    def getBounds(self) -> android.graphics.Rect: ...
    def getId(self) -> int: ...
    def getLeftEyePosition(self) -> android.graphics.Point: ...
    def getMouthPosition(self) -> android.graphics.Point: ...
    def getRightEyePosition(self) -> android.graphics.Point: ...
    def getScore(self) -> int: ...
    def toString(self) -> str: ...

    class Builder(java.lang.Object):
        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, current: Face, /) -> None: ...
        def build(self) -> Face: ...
        def setBounds(self, bounds: android.graphics.Rect, /) -> Face.Builder: ...
        def setId(self, id: int | java.jint | java.lang.Integer, /) -> Face.Builder: ...
        def setLeftEyePosition(self, leftEyePosition: android.graphics.Point, /) -> Face.Builder: ...
        def setMouthPosition(self, mouthPosition: android.graphics.Point, /) -> Face.Builder: ...
        def setRightEyePosition(self, rightEyePosition: android.graphics.Point, /) -> Face.Builder: ...
        def setScore(self, score: int | java.jint | java.lang.Integer, /) -> Face.Builder: ...

class InputConfiguration(java.lang.Object):
    @typing.overload
    def __init__(self, multiResolutionInputs: java.util.Collection[MultiResolutionStreamInfo], format: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, format: int | java.jint | java.lang.Integer, /) -> None: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getFormat(self) -> int: ...
    def getHeight(self) -> int: ...
    def getWidth(self) -> int: ...
    def hashCode(self) -> int: ...
    def isMultiResolution(self) -> bool: ...
    def toString(self) -> str: ...

class LensIntrinsicsSample(java.lang.Object):
    def __init__(self, timestampNs: int | java.jlong | java.lang.Long, lensIntrinsics: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getLensIntrinsics(self) -> java.chaquopy.JavaArrayJFloat: ...
    def getTimestampNanos(self) -> int: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class LensShadingMap(java.lang.Object):
    MINIMUM_GAIN_FACTOR: typing.ClassVar[float] = ...
    def copyGainFactors(self, destination: java.chaquopy.JavaArrayJFloat, offset: int | java.jint | java.lang.Integer, /) -> None: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getColumnCount(self) -> int: ...
    def getGainFactor(self, colorChannel: int | java.jint | java.lang.Integer, column: int | java.jint | java.lang.Integer, row: int | java.jint | java.lang.Integer, /) -> float: ...
    def getGainFactorCount(self) -> int: ...
    def getGainFactorVector(self, column: int | java.jint | java.lang.Integer, row: int | java.jint | java.lang.Integer, /) -> RggbChannelVector: ...
    def getRowCount(self) -> int: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class MandatoryStreamCombination(java.lang.Object):
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getDescription(self) -> java.lang.CharSequence: ...
    def getStreamsInformation(self) -> java.util.List[MandatoryStreamCombination.MandatoryStreamInformation]: ...
    def hashCode(self) -> int: ...
    def isReprocessable(self) -> bool: ...

    class MandatoryStreamInformation(java.lang.Object):
        def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
        def get10BitFormat(self) -> int: ...
        def getAvailableSizes(self) -> java.util.List[android.util.Size]: ...
        def getFormat(self) -> int: ...
        def getStreamUseCase(self) -> int: ...
        def hashCode(self) -> int: ...
        def is10BitCapable(self) -> bool: ...
        def isInput(self) -> bool: ...
        def isMaximumSize(self) -> bool: ...
        def isUltraHighResolution(self) -> bool: ...

class MeteringRectangle(java.lang.Object):
    METERING_WEIGHT_DONT_CARE: typing.ClassVar[int] = ...
    METERING_WEIGHT_MAX: typing.ClassVar[int] = ...
    METERING_WEIGHT_MIN: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self, rect: android.graphics.Rect, meteringWeight: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, xy: android.graphics.Point, dimensions: android.util.Size, meteringWeight: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, meteringWeight: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def equals(self, other: MeteringRectangle, /) -> bool: ...
    @typing.overload
    def equals(self, other: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getHeight(self) -> int: ...
    def getMeteringWeight(self) -> int: ...
    def getRect(self) -> android.graphics.Rect: ...
    def getSize(self) -> android.util.Size: ...
    def getUpperLeftPoint(self) -> android.graphics.Point: ...
    def getWidth(self) -> int: ...
    def getX(self) -> int: ...
    def getY(self) -> int: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class MultiResolutionStreamConfigurationMap(java.lang.Object):
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getInputFormats(self) -> java.chaquopy.JavaArrayJInt: ...
    def getInputInfo(self, format: int | java.jint | java.lang.Integer, /) -> java.util.Collection[MultiResolutionStreamInfo]: ...
    def getOutputFormats(self) -> java.chaquopy.JavaArrayJInt: ...
    def getOutputInfo(self, format: int | java.jint | java.lang.Integer, /) -> java.util.Collection[MultiResolutionStreamInfo]: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class MultiResolutionStreamInfo(java.lang.Object):
    def __init__(self, streamWidth: int | java.jint | java.lang.Integer, streamHeight: int | java.jint | java.lang.Integer, physicalCameraId: str | java.lang.String, /) -> None: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getHeight(self) -> int: ...
    def getPhysicalCameraId(self) -> str: ...
    def getWidth(self) -> int: ...
    def hashCode(self) -> int: ...

class OisSample(java.lang.Object):
    def __init__(self, timestamp: int | java.jlong | java.lang.Long, xShift: float | java.jfloat | java.lang.Float, yShift: float | java.jfloat | java.lang.Float, /) -> None: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getTimestamp(self) -> int: ...
    def getXshift(self) -> float: ...
    def getYshift(self) -> float: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class OutputConfiguration(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[OutputConfiguration]] = ...
    MIRROR_MODE_AUTO: typing.ClassVar[int] = ...
    MIRROR_MODE_H: typing.ClassVar[int] = ...
    MIRROR_MODE_NONE: typing.ClassVar[int] = ...
    MIRROR_MODE_V: typing.ClassVar[int] = ...
    SURFACE_GROUP_ID_NONE: typing.ClassVar[int] = ...
    TIMESTAMP_BASE_CHOREOGRAPHER_SYNCED: typing.ClassVar[int] = ...
    TIMESTAMP_BASE_DEFAULT: typing.ClassVar[int] = ...
    TIMESTAMP_BASE_MONOTONIC: typing.ClassVar[int] = ...
    TIMESTAMP_BASE_REALTIME: typing.ClassVar[int] = ...
    TIMESTAMP_BASE_SENSOR: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self, surface: android.view.Surface, /) -> None: ...
    @typing.overload
    def __init__(self, format: int | java.jint | java.lang.Integer, surfaceSize: android.util.Size, /) -> None: ...
    @typing.overload
    def __init__(self, surfaceGroupId: int | java.jint | java.lang.Integer, surface: android.view.Surface, /) -> None: ...
    @typing.overload
    def __init__(self, surfaceSize: android.util.Size, klass: typing.Type[java.lang.Object], /) -> None: ...
    @typing.overload
    def __init__(self, surfaceGroupId: int | java.jint | java.lang.Integer, format: int | java.jint | java.lang.Integer, surfaceSize: android.util.Size, /) -> None: ...
    @typing.overload
    def __init__(self, format: int | java.jint | java.lang.Integer, surfaceSize: android.util.Size, usage: int | java.jlong | java.lang.Long, /) -> None: ...
    @typing.overload
    def __init__(self, surfaceGroupId: int | java.jint | java.lang.Integer, format: int | java.jint | java.lang.Integer, surfaceSize: android.util.Size, usage: int | java.jlong | java.lang.Long, /) -> None: ...
    def addSensorPixelModeUsed(self, sensorPixelModeUsed: int | java.jint | java.lang.Integer, /) -> None: ...
    def addSurface(self, surface: android.view.Surface, /) -> None: ...
    @typing.overload
    @staticmethod
    def createInstancesForMultiResolutionOutput(multiResolutionImageReader: android.hardware.camera2.MultiResolutionImageReader, /) -> java.util.Collection[OutputConfiguration]: ...
    @typing.overload
    @staticmethod
    def createInstancesForMultiResolutionOutput(streams: java.util.Collection[MultiResolutionStreamInfo], format: int | java.jint | java.lang.Integer, /) -> java.util.List[OutputConfiguration]: ...
    def describeContents(self) -> int: ...
    def enableSurfaceSharing(self) -> None: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getDynamicRangeProfile(self) -> int: ...
    def getMaxSharedSurfaceCount(self) -> int: ...
    @typing.overload
    def getMirrorMode(self) -> int: ...
    @typing.overload
    def getMirrorMode(self, surface: android.view.Surface, /) -> int: ...
    def getStreamUseCase(self) -> int: ...
    def getSurface(self) -> android.view.Surface | None: ...
    def getSurfaceGroupId(self) -> int: ...
    def getSurfaces(self) -> java.util.List[android.view.Surface]: ...
    def getTimestampBase(self) -> int: ...
    def hashCode(self) -> int: ...
    def isReadoutTimestampEnabled(self) -> bool: ...
    def removeSensorPixelModeUsed(self, sensorPixelModeUsed: int | java.jint | java.lang.Integer, /) -> None: ...
    def removeSurface(self, surface: android.view.Surface, /) -> None: ...
    def setDynamicRangeProfile(self, profile: int | java.jlong | java.lang.Long, /) -> None: ...
    @typing.overload
    def setMirrorMode(self, mirrorMode: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setMirrorMode(self, surface: android.view.Surface, mirrorMode: int | java.jint | java.lang.Integer, /) -> None: ...
    def setPhysicalCameraId(self, physicalCameraId: str | java.lang.String, /) -> None: ...
    def setReadoutTimestampEnabled(self, on: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setStreamUseCase(self, streamUseCase: int | java.jlong | java.lang.Long, /) -> None: ...
    @staticmethod
    def setSurfacesForMultiResolutionOutput(outputConfigurations: java.util.Collection[OutputConfiguration], multiResolutionImageReader: android.hardware.camera2.MultiResolutionImageReader, /) -> None: ...
    def setTimestampBase(self, timestampBase: int | java.jint | java.lang.Integer, /) -> None: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class RecommendedStreamConfigurationMap(java.lang.Object):
    USECASE_10BIT_OUTPUT: typing.ClassVar[int] = ...
    USECASE_LOW_LATENCY_SNAPSHOT: typing.ClassVar[int] = ...
    USECASE_PREVIEW: typing.ClassVar[int] = ...
    USECASE_RAW: typing.ClassVar[int] = ...
    USECASE_RECORD: typing.ClassVar[int] = ...
    USECASE_SNAPSHOT: typing.ClassVar[int] = ...
    USECASE_VIDEO_SNAPSHOT: typing.ClassVar[int] = ...
    USECASE_ZSL: typing.ClassVar[int] = ...
    def getHighResolutionOutputSizes(self, format: int | java.jint | java.lang.Integer, /) -> java.util.Set[android.util.Size] | None: ...
    def getHighSpeedVideoFpsRanges(self) -> java.util.Set[android.util.Range[java.lang.Integer]] | None: ...
    def getHighSpeedVideoFpsRangesFor(self, size: android.util.Size, /) -> java.util.Set[android.util.Range[java.lang.Integer]] | None: ...
    def getHighSpeedVideoSizes(self) -> java.util.Set[android.util.Size] | None: ...
    def getHighSpeedVideoSizesFor(self, fpsRange: android.util.Range[java.lang.Integer], /) -> java.util.Set[android.util.Size] | None: ...
    def getInputFormats(self) -> java.util.Set[java.lang.Integer] | None: ...
    def getInputSizes(self, format: int | java.jint | java.lang.Integer, /) -> java.util.Set[android.util.Size] | None: ...
    def getOutputFormats(self) -> java.util.Set[java.lang.Integer]: ...
    @typing.overload
    def getOutputMinFrameDuration(self, format: int | java.jint | java.lang.Integer, size: android.util.Size, /) -> int: ...
    @typing.overload
    def getOutputMinFrameDuration(self, klass: typing.Type[java.lang.Object], size: android.util.Size, /) -> int: ...
    @typing.overload
    def getOutputSizes(self, format: int | java.jint | java.lang.Integer, /) -> java.util.Set[android.util.Size] | None: ...
    @typing.overload
    def getOutputSizes(self, klass: typing.Type[java.lang.Object], /) -> java.util.Set[android.util.Size] | None: ...
    @typing.overload
    def getOutputStallDuration(self, format: int | java.jint | java.lang.Integer, size: android.util.Size, /) -> int: ...
    @typing.overload
    def getOutputStallDuration(self, klass: typing.Type[java.lang.Object], size: android.util.Size, /) -> int: ...
    def getRecommendedUseCase(self) -> int: ...
    def getValidOutputFormatsForInput(self, inputFormat: int | java.jint | java.lang.Integer, /) -> java.util.Set[java.lang.Integer] | None: ...
    @typing.overload
    def isOutputSupportedFor(self, format: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def isOutputSupportedFor(self, surface: android.view.Surface, /) -> bool: ...

class RggbChannelVector(java.lang.Object):
    BLUE: typing.ClassVar[int] = ...
    COUNT: typing.ClassVar[int] = ...
    GREEN_EVEN: typing.ClassVar[int] = ...
    GREEN_ODD: typing.ClassVar[int] = ...
    RED: typing.ClassVar[int] = ...
    def __init__(self, red: float | java.jfloat | java.lang.Float, greenEven: float | java.jfloat | java.lang.Float, greenOdd: float | java.jfloat | java.lang.Float, blue: float | java.jfloat | java.lang.Float, /) -> None: ...
    def copyTo(self, destination: java.chaquopy.JavaArrayJFloat, offset: int | java.jint | java.lang.Integer, /) -> None: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getBlue(self) -> float: ...
    def getComponent(self, colorChannel: int | java.jint | java.lang.Integer, /) -> float: ...
    def getGreenEven(self) -> float: ...
    def getGreenOdd(self) -> float: ...
    def getRed(self) -> float: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class SessionConfiguration(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[SessionConfiguration]] = ...
    SESSION_HIGH_SPEED: typing.ClassVar[int] = ...
    SESSION_REGULAR: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self, sessionType: int | java.jint | java.lang.Integer, outputs: java.util.List[OutputConfiguration], /) -> None: ...
    @typing.overload
    def __init__(self, sessionType: int | java.jint | java.lang.Integer, outputs: java.util.List[OutputConfiguration], executor: java.util.concurrent.Executor, cb: android.hardware.camera2.CameraCaptureSession.StateCallback, /) -> None: ...
    def clearColorSpace(self) -> None: ...
    def describeContents(self) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getColorSpace(self) -> android.graphics.ColorSpace | None: ...
    def getExecutor(self) -> java.util.concurrent.Executor: ...
    def getInputConfiguration(self) -> InputConfiguration: ...
    def getOutputConfigurations(self) -> java.util.List[OutputConfiguration]: ...
    def getSessionParameters(self) -> android.hardware.camera2.CaptureRequest: ...
    def getSessionType(self) -> int: ...
    def getStateCallback(self) -> android.hardware.camera2.CameraCaptureSession.StateCallback: ...
    def hashCode(self) -> int: ...
    def setColorSpace(self, colorSpace: android.graphics.ColorSpace.Named, /) -> None: ...
    def setInputConfiguration(self, input: InputConfiguration, /) -> None: ...
    def setSessionParameters(self, params: android.hardware.camera2.CaptureRequest, /) -> None: ...
    def setStateCallback(self, executor: java.util.concurrent.Executor, cb: android.hardware.camera2.CameraCaptureSession.StateCallback, /) -> None: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class StreamConfigurationMap(java.lang.Object):
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getHighResolutionOutputSizes(self, format: int | java.jint | java.lang.Integer, /) -> java.chaquopy.JavaArray[android.util.Size]: ...
    def getHighSpeedVideoFpsRanges(self) -> java.chaquopy.JavaArray[android.util.Range[java.lang.Integer]]: ...
    def getHighSpeedVideoFpsRangesFor(self, size: android.util.Size, /) -> java.chaquopy.JavaArray[android.util.Range[java.lang.Integer]]: ...
    def getHighSpeedVideoSizes(self) -> java.chaquopy.JavaArray[android.util.Size]: ...
    def getHighSpeedVideoSizesFor(self, fpsRange: android.util.Range[java.lang.Integer], /) -> java.chaquopy.JavaArray[android.util.Size]: ...
    def getInputFormats(self) -> java.chaquopy.JavaArrayJInt: ...
    def getInputSizes(self, format: int | java.jint | java.lang.Integer, /) -> java.chaquopy.JavaArray[android.util.Size]: ...
    def getOutputFormats(self) -> java.chaquopy.JavaArrayJInt: ...
    @typing.overload
    def getOutputMinFrameDuration(self, format: int | java.jint | java.lang.Integer, size: android.util.Size, /) -> int: ...
    @typing.overload
    def getOutputMinFrameDuration(self, klass: typing.Type[java.lang.Object], size: android.util.Size, /) -> int: ...
    @typing.overload
    def getOutputSizes(self, format: int | java.jint | java.lang.Integer, /) -> java.chaquopy.JavaArray[android.util.Size]: ...
    @typing.overload
    def getOutputSizes(self, klass: typing.Type[java.lang.Object], /) -> java.chaquopy.JavaArray[android.util.Size]: ...
    @typing.overload
    def getOutputStallDuration(self, format: int | java.jint | java.lang.Integer, size: android.util.Size, /) -> int: ...
    @typing.overload
    def getOutputStallDuration(self, klass: typing.Type[java.lang.Object], size: android.util.Size, /) -> int: ...
    def getValidOutputFormatsForInput(self, inputFormat: int | java.jint | java.lang.Integer, /) -> java.chaquopy.JavaArrayJInt: ...
    def hashCode(self) -> int: ...
    @typing.overload
    def isOutputSupportedFor(self, format: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def isOutputSupportedFor(self, surface: android.view.Surface, /) -> bool: ...
    @typing.overload
    @staticmethod
    def isOutputSupportedFor(klass: typing.Type[java.lang.Object], /) -> bool: ...
    def toString(self) -> str: ...

class TonemapCurve(java.lang.Object):
    CHANNEL_BLUE: typing.ClassVar[int] = ...
    CHANNEL_GREEN: typing.ClassVar[int] = ...
    CHANNEL_RED: typing.ClassVar[int] = ...
    LEVEL_BLACK: typing.ClassVar[float] = ...
    LEVEL_WHITE: typing.ClassVar[float] = ...
    POINT_SIZE: typing.ClassVar[int] = ...
    def __init__(self, red: java.chaquopy.JavaArrayJFloat, green: java.chaquopy.JavaArrayJFloat, blue: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    def copyColorCurve(self, colorChannel: int | java.jint | java.lang.Integer, destination: java.chaquopy.JavaArrayJFloat, offset: int | java.jint | java.lang.Integer, /) -> None: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getPoint(self, colorChannel: int | java.jint | java.lang.Integer, index: int | java.jint | java.lang.Integer, /) -> android.graphics.PointF: ...
    def getPointCount(self, colorChannel: int | java.jint | java.lang.Integer, /) -> int: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
