import typing

import android.app
import android.content
import android.content.pm
import android.net
import android.os
import java
import java.chaquopy
import java.lang
import java.util

class Condition(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[Condition]] = ...
    FLAG_RELEVANT_ALWAYS: typing.ClassVar[int] = ...
    FLAG_RELEVANT_NOW: typing.ClassVar[int] = ...
    SCHEME: typing.ClassVar[str] = ...
    SOURCE_CONTEXT: typing.ClassVar[int] = ...
    SOURCE_SCHEDULE: typing.ClassVar[int] = ...
    SOURCE_UNKNOWN: typing.ClassVar[int] = ...
    SOURCE_USER_ACTION: typing.ClassVar[int] = ...
    STATE_ERROR: typing.ClassVar[int] = ...
    STATE_FALSE: typing.ClassVar[int] = ...
    STATE_TRUE: typing.ClassVar[int] = ...
    STATE_UNKNOWN: typing.ClassVar[int] = ...
    flags: int = ...
    icon: int = ...
    id: android.net.Uri = ...
    line1: str = ...
    line2: str = ...
    source: int = ...
    state: int = ...
    summary: str = ...
    @typing.overload
    def __init__(self, source: android.os.Parcel, /) -> None: ...
    @typing.overload
    def __init__(self, id: android.net.Uri, summary: str | java.lang.String, state: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, id: android.net.Uri, summary: str | java.lang.String, state: int | java.jint | java.lang.Integer, source: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, id: android.net.Uri, summary: str | java.lang.String, line1: str | java.lang.String, line2: str | java.lang.String, icon: int | java.jint | java.lang.Integer, state: int | java.jint | java.lang.Integer, flags: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, id: android.net.Uri, summary: str | java.lang.String, line1: str | java.lang.String, line2: str | java.lang.String, icon: int | java.jint | java.lang.Integer, state: int | java.jint | java.lang.Integer, source: int | java.jint | java.lang.Integer, flags: int | java.jint | java.lang.Integer, /) -> None: ...
    def copy(self) -> Condition: ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def hashCode(self) -> int: ...
    @staticmethod
    def isValidId(id: android.net.Uri, pkg: str | java.lang.String, /) -> bool: ...
    @staticmethod
    def newId(context: android.content.Context, /) -> android.net.Uri.Builder: ...
    @staticmethod
    def relevanceToString(flags: int | java.jint | java.lang.Integer, /) -> str: ...
    @staticmethod
    def stateToString(state: int | java.jint | java.lang.Integer, /) -> str: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class ConditionProviderService(android.app.Service):
    EXTRA_RULE_ID: typing.ClassVar[str] = ...
    META_DATA_CONFIGURATION_ACTIVITY: typing.ClassVar[str] = ...
    META_DATA_RULE_INSTANCE_LIMIT: typing.ClassVar[str] = ...
    META_DATA_RULE_TYPE: typing.ClassVar[str] = ...
    SERVICE_INTERFACE: typing.ClassVar[str] = ...
    def __init__(self) -> None: ...
    def notifyCondition(self, condition: Condition, /) -> None: ...
    def notifyConditions(self, *conditions: Condition) -> None: ...
    def onBind(self, intent: android.content.Intent, /) -> android.os.IBinder: ...
    def onConnected(self) -> None: ...
    def onRequestConditions(self, relevance: int | java.jint | java.lang.Integer, /) -> None: ...
    def onSubscribe(self, arg1: android.net.Uri, /) -> None: ...
    def onUnsubscribe(self, arg1: android.net.Uri, /) -> None: ...
    @staticmethod
    def requestRebind(componentName: android.content.ComponentName, /) -> None: ...
    def requestUnbind(self) -> None: ...

class NotificationListenerService(android.app.Service):
    ACTION_SETTINGS_HOME: typing.ClassVar[str] = ...
    FLAG_FILTER_TYPE_ALERTING: typing.ClassVar[int] = ...
    FLAG_FILTER_TYPE_CONVERSATIONS: typing.ClassVar[int] = ...
    FLAG_FILTER_TYPE_ONGOING: typing.ClassVar[int] = ...
    FLAG_FILTER_TYPE_SILENT: typing.ClassVar[int] = ...
    HINT_HOST_DISABLE_CALL_EFFECTS: typing.ClassVar[int] = ...
    HINT_HOST_DISABLE_EFFECTS: typing.ClassVar[int] = ...
    HINT_HOST_DISABLE_NOTIFICATION_EFFECTS: typing.ClassVar[int] = ...
    INTERRUPTION_FILTER_ALARMS: typing.ClassVar[int] = ...
    INTERRUPTION_FILTER_ALL: typing.ClassVar[int] = ...
    INTERRUPTION_FILTER_NONE: typing.ClassVar[int] = ...
    INTERRUPTION_FILTER_PRIORITY: typing.ClassVar[int] = ...
    INTERRUPTION_FILTER_UNKNOWN: typing.ClassVar[int] = ...
    META_DATA_DEFAULT_AUTOBIND: typing.ClassVar[str] = ...
    META_DATA_DEFAULT_FILTER_TYPES: typing.ClassVar[str] = ...
    META_DATA_DISABLED_FILTER_TYPES: typing.ClassVar[str] = ...
    NOTIFICATION_CHANNEL_OR_GROUP_ADDED: typing.ClassVar[int] = ...
    NOTIFICATION_CHANNEL_OR_GROUP_DELETED: typing.ClassVar[int] = ...
    NOTIFICATION_CHANNEL_OR_GROUP_UPDATED: typing.ClassVar[int] = ...
    REASON_APP_CANCEL: typing.ClassVar[int] = ...
    REASON_APP_CANCEL_ALL: typing.ClassVar[int] = ...
    REASON_ASSISTANT_CANCEL: typing.ClassVar[int] = ...
    REASON_CANCEL: typing.ClassVar[int] = ...
    REASON_CANCEL_ALL: typing.ClassVar[int] = ...
    REASON_CHANNEL_BANNED: typing.ClassVar[int] = ...
    REASON_CHANNEL_REMOVED: typing.ClassVar[int] = ...
    REASON_CLEAR_DATA: typing.ClassVar[int] = ...
    REASON_CLICK: typing.ClassVar[int] = ...
    REASON_ERROR: typing.ClassVar[int] = ...
    REASON_GROUP_OPTIMIZATION: typing.ClassVar[int] = ...
    REASON_GROUP_SUMMARY_CANCELED: typing.ClassVar[int] = ...
    REASON_LISTENER_CANCEL: typing.ClassVar[int] = ...
    REASON_LISTENER_CANCEL_ALL: typing.ClassVar[int] = ...
    REASON_LOCKDOWN: typing.ClassVar[int] = ...
    REASON_PACKAGE_BANNED: typing.ClassVar[int] = ...
    REASON_PACKAGE_CHANGED: typing.ClassVar[int] = ...
    REASON_PACKAGE_SUSPENDED: typing.ClassVar[int] = ...
    REASON_PROFILE_TURNED_OFF: typing.ClassVar[int] = ...
    REASON_SNOOZED: typing.ClassVar[int] = ...
    REASON_TIMEOUT: typing.ClassVar[int] = ...
    REASON_UNAUTOBUNDLED: typing.ClassVar[int] = ...
    REASON_USER_STOPPED: typing.ClassVar[int] = ...
    SERVICE_INTERFACE: typing.ClassVar[str] = ...
    SUPPRESSED_EFFECT_SCREEN_OFF: typing.ClassVar[int] = ...
    SUPPRESSED_EFFECT_SCREEN_ON: typing.ClassVar[int] = ...
    def __init__(self) -> None: ...
    def attachBaseContext(self, base: android.content.Context, /) -> None: ...
    def cancelAllNotifications(self) -> None: ...
    @typing.overload
    def cancelNotification(self, key: str | java.lang.String, /) -> None: ...
    @typing.overload
    def cancelNotification(self, pkg: str | java.lang.String, tag: str | java.lang.String, id: int | java.jint | java.lang.Integer, /) -> None: ...
    def cancelNotifications(self, keys: java.chaquopy.JavaArray[java.lang.String], /) -> None: ...
    def clearRequestedListenerHints(self) -> None: ...
    def createConversationNotificationChannelForPackage(self, pkg: str | java.lang.String, user: android.os.UserHandle, parentChannelId: str | java.lang.String, conversationId: str | java.lang.String, /) -> android.app.NotificationChannel: ...
    @typing.overload
    def getActiveNotifications(self) -> java.chaquopy.JavaArray[StatusBarNotification]: ...
    @typing.overload
    def getActiveNotifications(self, keys: java.chaquopy.JavaArray[java.lang.String], /) -> java.chaquopy.JavaArray[StatusBarNotification]: ...
    def getCurrentInterruptionFilter(self) -> int: ...
    def getCurrentListenerHints(self) -> int: ...
    def getCurrentRanking(self) -> NotificationListenerService.RankingMap: ...
    def getNotificationChannelGroups(self, pkg: str | java.lang.String, user: android.os.UserHandle, /) -> java.util.List[android.app.NotificationChannelGroup]: ...
    def getNotificationChannels(self, pkg: str | java.lang.String, user: android.os.UserHandle, /) -> java.util.List[android.app.NotificationChannel]: ...
    def getSnoozedNotifications(self) -> java.chaquopy.JavaArray[StatusBarNotification]: ...
    def migrateNotificationFilter(self, defaultTypes: int | java.jint | java.lang.Integer, disallowedPkgs: java.util.List[java.lang.String], /) -> None: ...
    def onBind(self, intent: android.content.Intent, /) -> android.os.IBinder: ...
    def onDestroy(self) -> None: ...
    def onInterruptionFilterChanged(self, interruptionFilter: int | java.jint | java.lang.Integer, /) -> None: ...
    def onListenerConnected(self) -> None: ...
    def onListenerDisconnected(self) -> None: ...
    def onListenerHintsChanged(self, hints: int | java.jint | java.lang.Integer, /) -> None: ...
    def onNotificationChannelGroupModified(self, pkg: str | java.lang.String, user: android.os.UserHandle, group: android.app.NotificationChannelGroup, modificationType: int | java.jint | java.lang.Integer, /) -> None: ...
    def onNotificationChannelModified(self, pkg: str | java.lang.String, user: android.os.UserHandle, channel: android.app.NotificationChannel, modificationType: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def onNotificationPosted(self, sbn: StatusBarNotification, /) -> None: ...
    @typing.overload
    def onNotificationPosted(self, sbn: StatusBarNotification, rankingMap: NotificationListenerService.RankingMap, /) -> None: ...
    def onNotificationRankingUpdate(self, rankingMap: NotificationListenerService.RankingMap, /) -> None: ...
    @typing.overload
    def onNotificationRemoved(self, sbn: StatusBarNotification, /) -> None: ...
    @typing.overload
    def onNotificationRemoved(self, sbn: StatusBarNotification, rankingMap: NotificationListenerService.RankingMap, /) -> None: ...
    @typing.overload
    def onNotificationRemoved(self, sbn: StatusBarNotification, rankingMap: NotificationListenerService.RankingMap, reason: int | java.jint | java.lang.Integer, /) -> None: ...
    def onSilentStatusBarIconsVisibilityChanged(self, hideSilentStatusIcons: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def requestInterruptionFilter(self, interruptionFilter: int | java.jint | java.lang.Integer, /) -> None: ...
    def requestListenerHints(self, hints: int | java.jint | java.lang.Integer, /) -> None: ...
    @staticmethod
    def requestRebind(componentName: android.content.ComponentName, /) -> None: ...
    @typing.overload
    def requestUnbind(self) -> None: ...
    @typing.overload
    @staticmethod
    def requestUnbind(componentName: android.content.ComponentName, /) -> None: ...
    def setNotificationsShown(self, keys: java.chaquopy.JavaArray[java.lang.String], /) -> None: ...
    def snoozeNotification(self, key: str | java.lang.String, durationMs: int | java.jlong | java.lang.Long, /) -> None: ...
    def updateNotificationChannel(self, pkg: str | java.lang.String, user: android.os.UserHandle, channel: android.app.NotificationChannel, /) -> None: ...

    class RankingMap(android.os.Parcelable):
        CREATOR: typing.ClassVar[android.os.Parcelable.Creator[NotificationListenerService.RankingMap]] = ...
        def describeContents(self) -> int: ...
        def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
        def getOrderedKeys(self) -> java.chaquopy.JavaArray[java.lang.String]: ...
        def getRanking(self, key: str | java.lang.String, outRanking: NotificationListenerService.Ranking, /) -> bool: ...
        def writeToParcel(self, out: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Ranking(java.lang.Object):
        USER_SENTIMENT_NEGATIVE: typing.ClassVar[int] = ...
        USER_SENTIMENT_NEUTRAL: typing.ClassVar[int] = ...
        USER_SENTIMENT_POSITIVE: typing.ClassVar[int] = ...
        VISIBILITY_NO_OVERRIDE: typing.ClassVar[int] = ...
        def __init__(self) -> None: ...
        def canBubble(self) -> bool: ...
        def canShowBadge(self) -> bool: ...
        def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
        def getChannel(self) -> android.app.NotificationChannel: ...
        def getConversationShortcutInfo(self) -> android.content.pm.ShortcutInfo: ...
        def getImportance(self) -> int: ...
        def getImportanceExplanation(self) -> java.lang.CharSequence: ...
        def getKey(self) -> str: ...
        def getLastAudiblyAlertedMillis(self) -> int: ...
        def getLockscreenVisibilityOverride(self) -> int: ...
        def getOverrideGroupKey(self) -> str: ...
        def getRank(self) -> int: ...
        def getSmartActions(self) -> java.util.List[android.app.Notification.Action]: ...
        def getSmartReplies(self) -> java.util.List[java.lang.CharSequence]: ...
        def getSuppressedVisualEffects(self) -> int: ...
        def getUserSentiment(self) -> int: ...
        def isAmbient(self) -> bool: ...
        def isConversation(self) -> bool: ...
        def isSuspended(self) -> bool: ...
        def matchesInterruptionFilter(self) -> bool: ...

class StatusBarNotification(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[StatusBarNotification]] = ...
    @typing.overload
    def __init__(self, in_: android.os.Parcel, /) -> None: ...
    @typing.overload
    def __init__(self, pkg: str | java.lang.String, opPkg: str | java.lang.String, id: int | java.jint | java.lang.Integer, tag: str | java.lang.String, uid: int | java.jint | java.lang.Integer, initialPid: int | java.jint | java.lang.Integer, score: int | java.jint | java.lang.Integer, notification: android.app.Notification, user: android.os.UserHandle, postTime: int | java.jlong | java.lang.Long, /) -> None: ...
    def clone(self) -> StatusBarNotification: ...
    def describeContents(self) -> int: ...
    def getGroupKey(self) -> str: ...
    def getId(self) -> int: ...
    def getKey(self) -> str: ...
    def getNotification(self) -> android.app.Notification: ...
    def getOpPkg(self) -> str: ...
    def getOverrideGroupKey(self) -> str: ...
    def getPackageName(self) -> str: ...
    def getPostTime(self) -> int: ...
    def getTag(self) -> str: ...
    def getUid(self) -> int: ...
    def getUser(self) -> android.os.UserHandle: ...
    def getUserId(self) -> int: ...
    def isAppGroup(self) -> bool: ...
    def isClearable(self) -> bool: ...
    def isGroup(self) -> bool: ...
    def isOngoing(self) -> bool: ...
    def setOverrideGroupKey(self, overrideGroupKey: str | java.lang.String, /) -> None: ...
    def toString(self) -> str: ...
    def writeToParcel(self, out: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class ZenDeviceEffects(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ZenDeviceEffects]] = ...
    def describeContents(self) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def hashCode(self) -> int: ...
    def shouldDimWallpaper(self) -> bool: ...
    def shouldDisplayGrayscale(self) -> bool: ...
    def shouldSuppressAmbientDisplay(self) -> bool: ...
    def shouldUseNightMode(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):
        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, zenDeviceEffects: ZenDeviceEffects, /) -> None: ...
        def build(self) -> ZenDeviceEffects: ...
        def setShouldDimWallpaper(self, dimWallpaper: bool | java.jboolean | java.lang.Boolean, /) -> ZenDeviceEffects.Builder: ...
        def setShouldDisplayGrayscale(self, grayscale: bool | java.jboolean | java.lang.Boolean, /) -> ZenDeviceEffects.Builder: ...
        def setShouldSuppressAmbientDisplay(self, suppressAmbientDisplay: bool | java.jboolean | java.lang.Boolean, /) -> ZenDeviceEffects.Builder: ...
        def setShouldUseNightMode(self, nightMode: bool | java.jboolean | java.lang.Boolean, /) -> ZenDeviceEffects.Builder: ...

class ZenPolicy(android.os.Parcelable):
    CONVERSATION_SENDERS_ANYONE: typing.ClassVar[int] = ...
    CONVERSATION_SENDERS_IMPORTANT: typing.ClassVar[int] = ...
    CONVERSATION_SENDERS_NONE: typing.ClassVar[int] = ...
    CONVERSATION_SENDERS_UNSET: typing.ClassVar[int] = ...
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ZenPolicy]] = ...
    PEOPLE_TYPE_ANYONE: typing.ClassVar[int] = ...
    PEOPLE_TYPE_CONTACTS: typing.ClassVar[int] = ...
    PEOPLE_TYPE_NONE: typing.ClassVar[int] = ...
    PEOPLE_TYPE_STARRED: typing.ClassVar[int] = ...
    PEOPLE_TYPE_UNSET: typing.ClassVar[int] = ...
    STATE_ALLOW: typing.ClassVar[int] = ...
    STATE_DISALLOW: typing.ClassVar[int] = ...
    STATE_UNSET: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getPriorityCallSenders(self) -> int: ...
    def getPriorityCategoryAlarms(self) -> int: ...
    def getPriorityCategoryCalls(self) -> int: ...
    def getPriorityCategoryConversations(self) -> int: ...
    def getPriorityCategoryEvents(self) -> int: ...
    def getPriorityCategoryMedia(self) -> int: ...
    def getPriorityCategoryMessages(self) -> int: ...
    def getPriorityCategoryReminders(self) -> int: ...
    def getPriorityCategoryRepeatCallers(self) -> int: ...
    def getPriorityCategorySystem(self) -> int: ...
    def getPriorityChannelsAllowed(self) -> int: ...
    def getPriorityConversationSenders(self) -> int: ...
    def getPriorityMessageSenders(self) -> int: ...
    def getVisualEffectAmbient(self) -> int: ...
    def getVisualEffectBadge(self) -> int: ...
    def getVisualEffectFullScreenIntent(self) -> int: ...
    def getVisualEffectLights(self) -> int: ...
    def getVisualEffectNotificationList(self) -> int: ...
    def getVisualEffectPeek(self) -> int: ...
    def getVisualEffectStatusBar(self) -> int: ...
    def hashCode(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 allowAlarms(self, allow: bool | java.jboolean | java.lang.Boolean, /) -> ZenPolicy.Builder: ...
        def allowAllSounds(self) -> ZenPolicy.Builder: ...
        def allowCalls(self, audienceType: int | java.jint | java.lang.Integer, /) -> ZenPolicy.Builder: ...
        def allowConversations(self, audienceType: int | java.jint | java.lang.Integer, /) -> ZenPolicy.Builder: ...
        def allowEvents(self, allow: bool | java.jboolean | java.lang.Boolean, /) -> ZenPolicy.Builder: ...
        def allowMedia(self, allow: bool | java.jboolean | java.lang.Boolean, /) -> ZenPolicy.Builder: ...
        def allowMessages(self, audienceType: int | java.jint | java.lang.Integer, /) -> ZenPolicy.Builder: ...
        def allowPriorityChannels(self, allow: bool | java.jboolean | java.lang.Boolean, /) -> ZenPolicy.Builder: ...
        def allowReminders(self, allow: bool | java.jboolean | java.lang.Boolean, /) -> ZenPolicy.Builder: ...
        def allowRepeatCallers(self, allow: bool | java.jboolean | java.lang.Boolean, /) -> ZenPolicy.Builder: ...
        def allowSystem(self, allow: bool | java.jboolean | java.lang.Boolean, /) -> ZenPolicy.Builder: ...
        def build(self) -> ZenPolicy: ...
        def disallowAllSounds(self) -> ZenPolicy.Builder: ...
        def hideAllVisualEffects(self) -> ZenPolicy.Builder: ...
        def showAllVisualEffects(self) -> ZenPolicy.Builder: ...
        def showBadges(self, show: bool | java.jboolean | java.lang.Boolean, /) -> ZenPolicy.Builder: ...
        def showFullScreenIntent(self, show: bool | java.jboolean | java.lang.Boolean, /) -> ZenPolicy.Builder: ...
        def showInAmbientDisplay(self, show: bool | java.jboolean | java.lang.Boolean, /) -> ZenPolicy.Builder: ...
        def showInNotificationList(self, show: bool | java.jboolean | java.lang.Boolean, /) -> ZenPolicy.Builder: ...
        def showLights(self, show: bool | java.jboolean | java.lang.Boolean, /) -> ZenPolicy.Builder: ...
        def showPeeking(self, show: bool | java.jboolean | java.lang.Boolean, /) -> ZenPolicy.Builder: ...
        def showStatusBarIcons(self, show: bool | java.jboolean | java.lang.Boolean, /) -> ZenPolicy.Builder: ...
