import typing

import android.os
import java
import java.lang
import java.util

class Light(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[Light]] = ...
    LIGHT_CAPABILITY_BRIGHTNESS: typing.ClassVar[int] = ...
    LIGHT_CAPABILITY_COLOR_RGB: typing.ClassVar[int] = ...
    LIGHT_CAPABILITY_RGB: typing.ClassVar[int] = ...
    LIGHT_TYPE_INPUT: typing.ClassVar[int] = ...
    LIGHT_TYPE_KEYBOARD_BACKLIGHT: typing.ClassVar[int] = ...
    LIGHT_TYPE_MICROPHONE: typing.ClassVar[int] = ...
    LIGHT_TYPE_PLAYER_ID: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getId(self) -> int: ...
    def getName(self) -> str: ...
    def getOrdinal(self) -> int: ...
    def getType(self) -> int: ...
    def hasBrightnessControl(self) -> bool: ...
    def hasRgbControl(self) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class LightState(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[LightState]] = ...
    def describeContents(self) -> int: ...
    def getColor(self) -> int: ...
    def getPlayerId(self) -> int: ...
    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) -> LightState: ...
        def setColor(self, color: int | java.jint | java.lang.Integer, /) -> LightState.Builder: ...
        def setPlayerId(self, playerId: int | java.jint | java.lang.Integer, /) -> LightState.Builder: ...

class LightsManager(java.lang.Object):
    def getLightState(self, arg1: Light, /) -> LightState: ...
    def getLights(self) -> java.util.List[Light]: ...
    def openSession(self) -> LightsManager.LightsSession: ...

    class LightsSession(java.lang.AutoCloseable):
        def close(self) -> None: ...
        def requestLights(self, arg1: LightsRequest, /) -> None: ...

class LightsRequest(java.lang.Object):
    def getLightStates(self) -> java.util.List[LightState]: ...
    def getLights(self) -> java.util.List[java.lang.Integer]: ...
    def getLightsAndStates(self) -> java.util.Map[Light, LightState]: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def addLight(self, light: Light, state: LightState, /) -> LightsRequest.Builder: ...
        def build(self) -> LightsRequest: ...
        def clearLight(self, light: Light, /) -> LightsRequest.Builder: ...
