import typing

import android.net
import android.os
import java
import java.lang
import java.time
import java.util

class AdData(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[AdData]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getAdCounterKeys(self) -> java.util.Set[java.lang.Integer]: ...
    def getAdFilters(self) -> AdFilters | None: ...
    def getAdRenderId(self) -> str | None: ...
    def getMetadata(self) -> str: ...
    def getRenderUri(self) -> android.net.Uri: ...
    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 build(self) -> AdData: ...
        def setAdCounterKeys(self, adCounterKeys: java.util.Set[java.lang.Integer], /) -> AdData.Builder: ...
        def setAdFilters(self, adFilters: AdFilters, /) -> AdData.Builder: ...
        def setAdRenderId(self, adRenderId: str | java.lang.String, /) -> AdData.Builder: ...
        def setMetadata(self, metadata: str | java.lang.String, /) -> AdData.Builder: ...
        def setRenderUri(self, renderUri: android.net.Uri, /) -> AdData.Builder: ...

class AdFilters(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[AdFilters]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getAppInstallFilters(self) -> AppInstallFilters | None: ...
    def getFrequencyCapFilters(self) -> FrequencyCapFilters | None: ...
    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 build(self) -> AdFilters: ...
        def setAppInstallFilters(self, appInstallFilters: AppInstallFilters, /) -> AdFilters.Builder: ...
        def setFrequencyCapFilters(self, frequencyCapFilters: FrequencyCapFilters, /) -> AdFilters.Builder: ...

class AdSelectionSignals(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[AdSelectionSignals]] = ...
    EMPTY: typing.ClassVar[AdSelectionSignals] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    @staticmethod
    def fromString(source: str | java.lang.String, /) -> AdSelectionSignals: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

_AdServicesOutcomeReceiver__R = typing.TypeVar('_AdServicesOutcomeReceiver__R')  # <R>
_AdServicesOutcomeReceiver__E = typing.TypeVar('_AdServicesOutcomeReceiver__E', bound=java.lang.Throwable)  # <E>
class AdServicesOutcomeReceiver(java.lang.Object, typing.Generic[_AdServicesOutcomeReceiver__R, _AdServicesOutcomeReceiver__E]):
    def onError(self, error: _AdServicesOutcomeReceiver__E, /) -> None: ...
    def onResult(self, arg1: _AdServicesOutcomeReceiver__R, /) -> None: ...

class AdServicesPermissions(java.lang.Object):
    ACCESS_ADSERVICES_AD_ID: typing.ClassVar[str] = ...
    ACCESS_ADSERVICES_AD_SELECTION: typing.ClassVar[str] = ...
    ACCESS_ADSERVICES_ATTRIBUTION: typing.ClassVar[str] = ...
    ACCESS_ADSERVICES_CUSTOM_AUDIENCE: typing.ClassVar[str] = ...
    ACCESS_ADSERVICES_PROTECTED_SIGNALS: typing.ClassVar[str] = ...
    ACCESS_ADSERVICES_TOPICS: typing.ClassVar[str] = ...

class AdTechIdentifier(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[AdTechIdentifier]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    @staticmethod
    def fromString(source: str | java.lang.String, /) -> AdTechIdentifier: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class AppInstallFilters(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[AppInstallFilters]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getPackageNames(self) -> java.util.Set[java.lang.String]: ...
    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 build(self) -> AppInstallFilters: ...
        def setPackageNames(self, packageNames: java.util.Set[java.lang.String], /) -> AppInstallFilters.Builder: ...

class ComponentAdData(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ComponentAdData]] = ...
    def __init__(self, renderUri: android.net.Uri, adRenderId: str | java.lang.String, /) -> None: ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getAdRenderId(self) -> str: ...
    def getRenderUri(self) -> android.net.Uri: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class FrequencyCapFilters(android.os.Parcelable):
    AD_EVENT_TYPE_CLICK: typing.ClassVar[int] = ...
    AD_EVENT_TYPE_IMPRESSION: typing.ClassVar[int] = ...
    AD_EVENT_TYPE_VIEW: typing.ClassVar[int] = ...
    AD_EVENT_TYPE_WIN: typing.ClassVar[int] = ...
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[FrequencyCapFilters]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getKeyedFrequencyCapsForClickEvents(self) -> java.util.List[KeyedFrequencyCap]: ...
    def getKeyedFrequencyCapsForImpressionEvents(self) -> java.util.List[KeyedFrequencyCap]: ...
    def getKeyedFrequencyCapsForViewEvents(self) -> java.util.List[KeyedFrequencyCap]: ...
    def getKeyedFrequencyCapsForWinEvents(self) -> java.util.List[KeyedFrequencyCap]: ...
    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 build(self) -> FrequencyCapFilters: ...
        def setKeyedFrequencyCapsForClickEvents(self, keyedFrequencyCapsForClickEvents: java.util.List[KeyedFrequencyCap], /) -> FrequencyCapFilters.Builder: ...
        def setKeyedFrequencyCapsForImpressionEvents(self, keyedFrequencyCapsForImpressionEvents: java.util.List[KeyedFrequencyCap], /) -> FrequencyCapFilters.Builder: ...
        def setKeyedFrequencyCapsForViewEvents(self, keyedFrequencyCapsForViewEvents: java.util.List[KeyedFrequencyCap], /) -> FrequencyCapFilters.Builder: ...
        def setKeyedFrequencyCapsForWinEvents(self, keyedFrequencyCapsForWinEvents: java.util.List[KeyedFrequencyCap], /) -> FrequencyCapFilters.Builder: ...

class KeyedFrequencyCap(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[KeyedFrequencyCap]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getAdCounterKey(self) -> int: ...
    def getInterval(self) -> java.time.Duration: ...
    def getMaxCount(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, adCounterKey: int | java.jint | java.lang.Integer, maxCount: int | java.jint | java.lang.Integer, interval: java.time.Duration, /) -> None: ...
        def build(self) -> KeyedFrequencyCap: ...
        def setAdCounterKey(self, adCounterKey: int | java.jint | java.lang.Integer, /) -> KeyedFrequencyCap.Builder: ...
        def setInterval(self, interval: java.time.Duration, /) -> KeyedFrequencyCap.Builder: ...
        def setMaxCount(self, maxCount: int | java.jint | java.lang.Integer, /) -> KeyedFrequencyCap.Builder: ...
