# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.0.0-beta.2

import datetime
import sys
import types
import typing
import uuid as _uuid
from builtins import property as _property

import winrt._winrt
import winrt.system
import winrt.windows.devices.geolocation
import winrt.windows.foundation
import winrt.windows.foundation.collections

from winrt.windows.services.maps.offlinemaps import OfflineMapPackageQueryStatus, OfflineMapPackageStartDownloadStatus, OfflineMapPackageStatus

Self = typing.TypeVar('Self')

@typing.final
class OfflineMapPackage_Static(type):
    def find_packages_async(cls, query_point: typing.Optional[winrt.windows.devices.geolocation.Geopoint], /) -> winrt.windows.foundation.IAsyncOperation[OfflineMapPackageQueryResult]: ...
    def find_packages_in_bounding_box_async(cls, query_bounding_box: typing.Optional[winrt.windows.devices.geolocation.GeoboundingBox], /) -> winrt.windows.foundation.IAsyncOperation[OfflineMapPackageQueryResult]: ...
    def find_packages_in_geocircle_async(cls, query_circle: typing.Optional[winrt.windows.devices.geolocation.Geocircle], /) -> winrt.windows.foundation.IAsyncOperation[OfflineMapPackageQueryResult]: ...

@typing.final
class OfflineMapPackage(winrt.system.Object, metaclass=OfflineMapPackage_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> OfflineMapPackage: ...
    def request_start_download_async(self) -> winrt.windows.foundation.IAsyncOperation[OfflineMapPackageStartDownloadResult]: ...
    def add_status_changed(self, value: winrt.windows.foundation.TypedEventHandler[OfflineMapPackage, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_status_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def display_name(self) -> str: ...
    @_property
    def enclosing_region_name(self) -> str: ...
    @_property
    def estimated_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def status(self) -> OfflineMapPackageStatus: ...

@typing.final
class OfflineMapPackageQueryResult(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> OfflineMapPackageQueryResult: ...
    @_property
    def packages(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[OfflineMapPackage]]: ...
    @_property
    def status(self) -> OfflineMapPackageQueryStatus: ...

@typing.final
class OfflineMapPackageStartDownloadResult(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> OfflineMapPackageStartDownloadResult: ...
    @_property
    def status(self) -> OfflineMapPackageStartDownloadStatus: ...

