import typing

import android.health.connect.datatypes
import android.os
import java
import java.lang
import java.time
import java.util

class ChangeLogTokenRequest(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ChangeLogTokenRequest]] = ...
    def describeContents(self) -> int: ...
    def getDataOriginFilters(self) -> java.util.Set[android.health.connect.datatypes.DataOrigin]: ...
    def getRecordTypes(self) -> java.util.Set[typing.Type[android.health.connect.datatypes.Record]]: ...
    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 addDataOriginFilter(self, dataOriginFilter: android.health.connect.datatypes.DataOrigin, /) -> ChangeLogTokenRequest.Builder: ...
        def addRecordType(self, recordType: typing.Type[android.health.connect.datatypes.Record], /) -> ChangeLogTokenRequest.Builder: ...
        def build(self) -> ChangeLogTokenRequest: ...

class ChangeLogTokenResponse(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ChangeLogTokenResponse]] = ...
    def describeContents(self) -> int: ...
    def getToken(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class ChangeLogsRequest(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ChangeLogsRequest]] = ...
    def describeContents(self) -> int: ...
    def getPageSize(self) -> int: ...
    def getToken(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, token: str | java.lang.String, /) -> None: ...
        def build(self) -> ChangeLogsRequest: ...
        def setPageSize(self, pageSize: int | java.jint | java.lang.Integer, /) -> ChangeLogsRequest.Builder: ...

class ChangeLogsResponse(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ChangeLogsResponse]] = ...
    def describeContents(self) -> int: ...
    def getDeletedLogs(self) -> java.util.List[ChangeLogsResponse.DeletedLog]: ...
    def getNextChangesToken(self) -> str: ...
    def getUpsertedRecords(self) -> java.util.List[android.health.connect.datatypes.Record]: ...
    def hasMorePages(self) -> bool: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class DeletedLog(java.lang.Object):
        def __init__(self, deletedRecordId: str | java.lang.String, deletedTime: int | java.jlong | java.lang.Long, /) -> None: ...
        def getDeletedRecordId(self) -> str: ...
        def getDeletedTime(self) -> java.time.Instant: ...
