import typing

import android.app
import android.app.wallpaper
import android.content
import android.os
import android.view
import java
import java.chaquopy
import java.io
import java.lang

class WallpaperService(android.app.Service):
    SERVICE_INTERFACE: typing.ClassVar[str] = ...
    SERVICE_META_DATA: typing.ClassVar[str] = ...
    def __init__(self) -> None: ...
    def dump(self, fd: java.io.FileDescriptor, out: java.io.PrintWriter, args: java.chaquopy.JavaArray[java.lang.String], /) -> None: ...
    def onBind(self, intent: android.content.Intent, /) -> android.os.IBinder: ...
    def onCreate(self) -> None: ...
    @typing.overload
    def onCreateEngine(self) -> WallpaperService.Engine | None: ...
    @typing.overload
    def onCreateEngine(self, description: android.app.wallpaper.WallpaperDescription, /) -> WallpaperService.Engine: ...
    def onDestroy(self) -> None: ...

    class Engine(java.lang.Object):
        def __init__(self, this_0: WallpaperService, /) -> None: ...
        def dump(self, prefix: str | java.lang.String, fd: java.io.FileDescriptor, out: java.io.PrintWriter, args: java.chaquopy.JavaArray[java.lang.String], /) -> None: ...
        def getDesiredMinimumHeight(self) -> int: ...
        def getDesiredMinimumWidth(self) -> int: ...
        def getDisplayContext(self) -> android.content.Context: ...
        def getSurfaceHolder(self) -> android.view.SurfaceHolder: ...
        def getWallpaperFlags(self) -> int: ...
        def isPreview(self) -> bool: ...
        def isVisible(self) -> bool: ...
        def notifyColorsChanged(self) -> None: ...
        def onApplyWallpaper(self, which: int | java.jint | java.lang.Integer, /) -> android.app.wallpaper.WallpaperDescription: ...
        def onApplyWindowInsets(self, insets: android.view.WindowInsets, /) -> None: ...
        def onCommand(self, action: str | java.lang.String, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, z: int | java.jint | java.lang.Integer, extras: android.os.Bundle, resultRequested: bool | java.jboolean | java.lang.Boolean, /) -> android.os.Bundle: ...
        def onComputeColors(self) -> android.app.WallpaperColors: ...
        def onCreate(self, surfaceHolder: android.view.SurfaceHolder, /) -> None: ...
        def onDesiredSizeChanged(self, desiredWidth: int | java.jint | java.lang.Integer, desiredHeight: int | java.jint | java.lang.Integer, /) -> None: ...
        def onDestroy(self) -> None: ...
        def onOffsetsChanged(self, xOffset: float | java.jfloat | java.lang.Float, yOffset: float | java.jfloat | java.lang.Float, xOffsetStep: float | java.jfloat | java.lang.Float, yOffsetStep: float | java.jfloat | java.lang.Float, xPixelOffset: int | java.jint | java.lang.Integer, yPixelOffset: int | java.jint | java.lang.Integer, /) -> None: ...
        def onSurfaceChanged(self, holder: android.view.SurfaceHolder, format: int | java.jint | java.lang.Integer, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, /) -> None: ...
        def onSurfaceCreated(self, holder: android.view.SurfaceHolder, /) -> None: ...
        def onSurfaceDestroyed(self, holder: android.view.SurfaceHolder, /) -> None: ...
        def onSurfaceRedrawNeeded(self, holder: android.view.SurfaceHolder, /) -> None: ...
        def onTouchEvent(self, event: android.view.MotionEvent, /) -> None: ...
        def onVisibilityChanged(self, visible: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
        def onWallpaperFlagsChanged(self, which: int | java.jint | java.lang.Integer, /) -> None: ...
        def onZoomChanged(self, zoom: float | java.jfloat | java.lang.Float, /) -> None: ...
        def setOffsetNotificationsEnabled(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
        def setTouchEventsEnabled(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
