import typing

import android.content
import android.content.res
import android.net
import android.os
import android.view
import java
import java.lang
import java.util
import java.util.concurrent

class EmbeddedPhotoPickerClient(java.lang.Object):
    def onSelectionComplete(self) -> None: ...
    def onSessionError(self, arg1: java.lang.Throwable, /) -> None: ...
    def onSessionOpened(self, arg1: EmbeddedPhotoPickerSession, /) -> None: ...
    def onUriPermissionGranted(self, arg1: java.util.List[android.net.Uri], /) -> None: ...
    def onUriPermissionRevoked(self, arg1: java.util.List[android.net.Uri], /) -> None: ...

class EmbeddedPhotoPickerFeatureInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[EmbeddedPhotoPickerFeatureInfo]] = ...
    def describeContents(self) -> int: ...
    def getAccentColor(self) -> int: ...
    def getMaxSelectionLimit(self) -> int: ...
    def getMimeTypes(self) -> java.util.List[java.lang.String]: ...
    def getPreSelectedUris(self) -> java.util.List[android.net.Uri]: ...
    def getThemeNightMode(self) -> int: ...
    def isOrderedSelection(self) -> bool: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> EmbeddedPhotoPickerFeatureInfo: ...
        def setAccentColor(self, accentColor: int | java.jlong | java.lang.Long, /) -> EmbeddedPhotoPickerFeatureInfo.Builder: ...
        def setMaxSelectionLimit(self, maxSelectionLimit: int | java.jint | java.lang.Integer, /) -> EmbeddedPhotoPickerFeatureInfo.Builder: ...
        def setMimeTypes(self, mimeTypes: java.util.List[java.lang.String], /) -> EmbeddedPhotoPickerFeatureInfo.Builder: ...
        def setOrderedSelection(self, orderedSelection: bool | java.jboolean | java.lang.Boolean, /) -> EmbeddedPhotoPickerFeatureInfo.Builder: ...
        def setPreSelectedUris(self, preSelectedUris: java.util.List[android.net.Uri], /) -> EmbeddedPhotoPickerFeatureInfo.Builder: ...
        def setThemeNightMode(self, themeNightMode: int | java.jint | java.lang.Integer, /) -> EmbeddedPhotoPickerFeatureInfo.Builder: ...

class EmbeddedPhotoPickerProvider(java.lang.Object):
    def openSession(self, arg1: android.os.IBinder, arg2: int | java.jint | java.lang.Integer, arg3: int | java.jint | java.lang.Integer, arg4: int | java.jint | java.lang.Integer, arg5: EmbeddedPhotoPickerFeatureInfo, arg6: java.util.concurrent.Executor, arg7: EmbeddedPhotoPickerClient, /) -> None: ...

class EmbeddedPhotoPickerProviderFactory(java.lang.Object):
    @staticmethod
    def create(context: android.content.Context, /) -> EmbeddedPhotoPickerProvider: ...

class EmbeddedPhotoPickerSession(java.lang.Object):
    def close(self) -> None: ...
    def getSurfacePackage(self) -> android.view.SurfaceControlViewHost.SurfacePackage: ...
    def notifyConfigurationChanged(self, arg1: android.content.res.Configuration, /) -> None: ...
    def notifyPhotoPickerExpanded(self, arg1: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def notifyResized(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, /) -> None: ...
    def notifyVisibilityChanged(self, arg1: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def requestRevokeUriPermission(self, arg1: java.util.List[android.net.Uri], /) -> None: ...
