import typing

import android.adservices.common
import android.content
import android.net
import android.os
import java
import java.lang
import java.time
import java.util
import java.util.concurrent

class AddCustomAudienceOverrideRequest(java.lang.Object):
    def __init__(self, buyer: android.adservices.common.AdTechIdentifier, name: str | java.lang.String, biddingLogicJs: str | java.lang.String, trustedBiddingSignals: android.adservices.common.AdSelectionSignals, /) -> None: ...
    def getBiddingLogicJs(self) -> str: ...
    def getBiddingLogicJsVersion(self) -> int: ...
    def getBuyer(self) -> android.adservices.common.AdTechIdentifier: ...
    def getName(self) -> str: ...
    def getTrustedBiddingSignals(self) -> android.adservices.common.AdSelectionSignals: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> AddCustomAudienceOverrideRequest: ...
        def setBiddingLogicJs(self, biddingLogicJs: str | java.lang.String, /) -> AddCustomAudienceOverrideRequest.Builder: ...
        def setBiddingLogicJsVersion(self, biddingLogicJsVersion: int | java.jlong | java.lang.Long, /) -> AddCustomAudienceOverrideRequest.Builder: ...
        def setBuyer(self, buyer: android.adservices.common.AdTechIdentifier, /) -> AddCustomAudienceOverrideRequest.Builder: ...
        def setName(self, name: str | java.lang.String, /) -> AddCustomAudienceOverrideRequest.Builder: ...
        def setTrustedBiddingSignals(self, trustedBiddingSignals: android.adservices.common.AdSelectionSignals, /) -> AddCustomAudienceOverrideRequest.Builder: ...

class CustomAudience(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[CustomAudience]] = ...
    FLAG_AUCTION_SERVER_REQUEST_OMIT_ADS: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getActivationTime(self) -> java.time.Instant | None: ...
    def getAds(self) -> java.util.List[android.adservices.common.AdData]: ...
    def getAuctionServerRequestFlags(self) -> int: ...
    def getBiddingLogicUri(self) -> android.net.Uri: ...
    def getBuyer(self) -> android.adservices.common.AdTechIdentifier: ...
    def getComponentAds(self) -> java.util.List[android.adservices.common.ComponentAdData]: ...
    def getDailyUpdateUri(self) -> android.net.Uri: ...
    def getExpirationTime(self) -> java.time.Instant | None: ...
    def getName(self) -> str: ...
    def getPriority(self) -> float: ...
    def getTrustedBiddingData(self) -> TrustedBiddingData | None: ...
    def getUserBiddingSignals(self) -> android.adservices.common.AdSelectionSignals | 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) -> CustomAudience: ...
        def setActivationTime(self, activationTime: java.time.Instant, /) -> CustomAudience.Builder: ...
        def setAds(self, ads: java.util.List[android.adservices.common.AdData], /) -> CustomAudience.Builder: ...
        def setAuctionServerRequestFlags(self, auctionServerRequestFlags: int | java.jint | java.lang.Integer, /) -> CustomAudience.Builder: ...
        def setBiddingLogicUri(self, biddingLogicUri: android.net.Uri, /) -> CustomAudience.Builder: ...
        def setBuyer(self, buyer: android.adservices.common.AdTechIdentifier, /) -> CustomAudience.Builder: ...
        def setComponentAds(self, componentAds: java.util.List[android.adservices.common.ComponentAdData], /) -> CustomAudience.Builder: ...
        def setDailyUpdateUri(self, dailyUpdateUri: android.net.Uri, /) -> CustomAudience.Builder: ...
        def setExpirationTime(self, expirationTime: java.time.Instant, /) -> CustomAudience.Builder: ...
        def setName(self, name: str | java.lang.String, /) -> CustomAudience.Builder: ...
        def setPriority(self, priority: float | java.jdouble | java.lang.Double, /) -> CustomAudience.Builder: ...
        def setTrustedBiddingData(self, trustedBiddingData: TrustedBiddingData, /) -> CustomAudience.Builder: ...
        def setUserBiddingSignals(self, userBiddingSignals: android.adservices.common.AdSelectionSignals, /) -> CustomAudience.Builder: ...

class CustomAudienceManager(java.lang.Object):
    def fetchAndJoinCustomAudience(self, fetchAndJoinCustomAudienceRequest: FetchAndJoinCustomAudienceRequest, executor: java.util.concurrent.Executor, receiver: android.os.OutcomeReceiver[java.lang.Object, java.lang.Exception], /) -> None: ...
    @staticmethod
    def get(context: android.content.Context, /) -> CustomAudienceManager: ...
    def getTestCustomAudienceManager(self) -> TestCustomAudienceManager: ...
    def joinCustomAudience(self, joinCustomAudienceRequest: JoinCustomAudienceRequest, executor: java.util.concurrent.Executor, receiver: android.os.OutcomeReceiver[java.lang.Object, java.lang.Exception], /) -> None: ...
    def leaveCustomAudience(self, leaveCustomAudienceRequest: LeaveCustomAudienceRequest, executor: java.util.concurrent.Executor, receiver: android.os.OutcomeReceiver[java.lang.Object, java.lang.Exception], /) -> None: ...
    def scheduleCustomAudienceUpdate(self, request: ScheduleCustomAudienceUpdateRequest, executor: java.util.concurrent.Executor, receiver: android.adservices.common.AdServicesOutcomeReceiver[java.lang.Object, java.lang.Exception], /) -> None: ...

class FetchAndJoinCustomAudienceRequest(java.lang.Object):
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getActivationTime(self) -> java.time.Instant | None: ...
    def getExpirationTime(self) -> java.time.Instant | None: ...
    def getFetchUri(self) -> android.net.Uri: ...
    def getName(self) -> str | None: ...
    def getUserBiddingSignals(self) -> android.adservices.common.AdSelectionSignals | None: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

    class Builder(java.lang.Object):
        def __init__(self, fetchUri: android.net.Uri, /) -> None: ...
        def build(self) -> FetchAndJoinCustomAudienceRequest: ...
        def setActivationTime(self, activationTime: java.time.Instant, /) -> FetchAndJoinCustomAudienceRequest.Builder: ...
        def setExpirationTime(self, expirationTime: java.time.Instant, /) -> FetchAndJoinCustomAudienceRequest.Builder: ...
        def setFetchUri(self, fetchUri: android.net.Uri, /) -> FetchAndJoinCustomAudienceRequest.Builder: ...
        def setName(self, name: str | java.lang.String, /) -> FetchAndJoinCustomAudienceRequest.Builder: ...
        def setUserBiddingSignals(self, userBiddingSignals: android.adservices.common.AdSelectionSignals, /) -> FetchAndJoinCustomAudienceRequest.Builder: ...

class JoinCustomAudienceRequest(java.lang.Object):
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getCustomAudience(self) -> CustomAudience: ...
    def hashCode(self) -> int: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> JoinCustomAudienceRequest: ...
        def setCustomAudience(self, customAudience: CustomAudience, /) -> JoinCustomAudienceRequest.Builder: ...

class LeaveCustomAudienceRequest(java.lang.Object):
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getBuyer(self) -> android.adservices.common.AdTechIdentifier: ...
    def getName(self) -> str: ...
    def hashCode(self) -> int: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> LeaveCustomAudienceRequest: ...
        def setBuyer(self, buyer: android.adservices.common.AdTechIdentifier, /) -> LeaveCustomAudienceRequest.Builder: ...
        def setName(self, name: str | java.lang.String, /) -> LeaveCustomAudienceRequest.Builder: ...

class PartialCustomAudience(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[PartialCustomAudience]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getActivationTime(self) -> java.time.Instant | None: ...
    def getExpirationTime(self) -> java.time.Instant | None: ...
    def getName(self) -> str: ...
    def getUserBiddingSignals(self) -> android.adservices.common.AdSelectionSignals | 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, name: str | java.lang.String, /) -> None: ...
        def build(self) -> PartialCustomAudience: ...
        def setActivationTime(self, activationTime: java.time.Instant, /) -> PartialCustomAudience.Builder: ...
        def setExpirationTime(self, expirationTime: java.time.Instant, /) -> PartialCustomAudience.Builder: ...
        def setUserBiddingSignals(self, userBiddingSignals: android.adservices.common.AdSelectionSignals, /) -> PartialCustomAudience.Builder: ...

class RemoveCustomAudienceOverrideRequest(java.lang.Object):
    def __init__(self, buyer: android.adservices.common.AdTechIdentifier, name: str | java.lang.String, /) -> None: ...
    def getBuyer(self) -> android.adservices.common.AdTechIdentifier: ...
    def getName(self) -> str: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> RemoveCustomAudienceOverrideRequest: ...
        def setBuyer(self, buyer: android.adservices.common.AdTechIdentifier, /) -> RemoveCustomAudienceOverrideRequest.Builder: ...
        def setName(self, name: str | java.lang.String, /) -> RemoveCustomAudienceOverrideRequest.Builder: ...

class ScheduleCustomAudienceUpdateRequest(java.lang.Object):
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getMinDelay(self) -> java.time.Duration: ...
    def getPartialCustomAudienceList(self) -> java.util.List[PartialCustomAudience]: ...
    def getUpdateUri(self) -> android.net.Uri: ...
    def hashCode(self) -> int: ...
    def shouldReplacePendingUpdates(self) -> bool: ...
    def toString(self) -> str: ...

    class Builder(java.lang.Object):
        @typing.overload
        def __init__(self, updateUri: android.net.Uri, minDelay: java.time.Duration, /) -> None: ...
        @typing.overload
        def __init__(self, updateUri: android.net.Uri, minDelay: java.time.Duration, partialCustomAudienceList: java.util.List[PartialCustomAudience], /) -> None: ...
        def build(self) -> ScheduleCustomAudienceUpdateRequest: ...
        def setMinDelay(self, minDelay: java.time.Duration, /) -> ScheduleCustomAudienceUpdateRequest.Builder: ...
        def setPartialCustomAudienceList(self, partialCustomAudienceList: java.util.List[PartialCustomAudience], /) -> ScheduleCustomAudienceUpdateRequest.Builder: ...
        def setShouldReplacePendingUpdates(self, shouldReplacePendingUpdates: bool | java.jboolean | java.lang.Boolean, /) -> ScheduleCustomAudienceUpdateRequest.Builder: ...
        def setUpdateUri(self, updateUri: android.net.Uri, /) -> ScheduleCustomAudienceUpdateRequest.Builder: ...

class TestCustomAudienceManager(java.lang.Object):
    def overrideCustomAudienceRemoteInfo(self, request: AddCustomAudienceOverrideRequest, executor: java.util.concurrent.Executor, receiver: android.os.OutcomeReceiver[java.lang.Object, java.lang.Exception], /) -> None: ...
    def removeCustomAudienceRemoteInfoOverride(self, request: RemoveCustomAudienceOverrideRequest, executor: java.util.concurrent.Executor, receiver: android.os.OutcomeReceiver[java.lang.Object, java.lang.Exception], /) -> None: ...
    def resetAllCustomAudienceOverrides(self, executor: java.util.concurrent.Executor, receiver: android.os.OutcomeReceiver[java.lang.Object, java.lang.Exception], /) -> None: ...

class TrustedBiddingData(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TrustedBiddingData]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getTrustedBiddingKeys(self) -> java.util.List[java.lang.String]: ...
    def getTrustedBiddingUri(self) -> android.net.Uri: ...
    def hashCode(self) -> int: ...
    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) -> TrustedBiddingData: ...
        def setTrustedBiddingKeys(self, trustedBiddingKeys: java.util.List[java.lang.String], /) -> TrustedBiddingData.Builder: ...
        def setTrustedBiddingUri(self, trustedBiddingUri: android.net.Uri, /) -> TrustedBiddingData.Builder: ...
