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

import enum
import sys
import types
import typing
import uuid

import winsdk._winrt as _winrt

try:
    import winsdk.windows.foundation
except Exception:
    pass

try:
    import winsdk.windows.foundation.collections
except Exception:
    pass

try:
    import winsdk.windows.security.credentials
except Exception:
    pass

try:
    import winsdk.windows.system
except Exception:
    pass

try:
    import winsdk.windows.ui
except Exception:
    pass

try:
    import winsdk.windows.ui.shell
except Exception:
    pass

class UserActivityState(enum.IntEnum):
    NEW = 0
    PUBLISHED = 1

class UserActivity(_winrt.Object):
    fallback_uri: winsdk.windows.foundation.Uri
    content_uri: winsdk.windows.foundation.Uri
    content_type: str
    content_info: IUserActivityContentInfo
    activation_uri: winsdk.windows.foundation.Uri
    activity_id: str
    state: UserActivityState
    visual_elements: UserActivityVisualElements
    is_roamable: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> UserActivity: ...
    @typing.overload
    def __init__(self, activity_id: str) -> None: ...
    @typing.overload
    def create_session(self) -> UserActivitySession: ...
    @typing.overload
    def save_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def to_json(self) -> str: ...
    @typing.overload
    @staticmethod
    def to_json_array(activities: typing.Iterable[UserActivity]) -> str: ...
    @typing.overload
    @staticmethod
    def try_parse_from_json(json: str) -> UserActivity: ...
    @typing.overload
    @staticmethod
    def try_parse_from_json_array(json: str) -> winsdk.windows.foundation.collections.IVector[UserActivity]: ...

class UserActivityAttribution(_winrt.Object):
    icon_uri: winsdk.windows.foundation.Uri
    alternate_text: str
    add_image_query: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> UserActivityAttribution: ...
    @typing.overload
    def __init__(self, icon_uri: winsdk.windows.foundation.Uri) -> None: ...
    @typing.overload
    def __init__(self) -> None: ...

class UserActivityChannel(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> UserActivityChannel: ...
    @typing.overload
    def delete_activity_async(self, activity_id: str) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def delete_all_activities_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    @staticmethod
    def disable_auto_session_creation() -> None: ...
    @typing.overload
    @staticmethod
    def get_default() -> UserActivityChannel: ...
    @typing.overload
    @staticmethod
    def get_for_user(user: winsdk.windows.system.User) -> UserActivityChannel: ...
    @typing.overload
    def get_or_create_user_activity_async(self, activity_id: str) -> winsdk.windows.foundation.IAsyncOperation[UserActivity]: ...
    @typing.overload
    def get_recent_user_activities_async(self, max_unique_activities: _winrt.Int32) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVector[UserActivitySessionHistoryItem]]: ...
    @typing.overload
    def get_session_history_items_for_user_activity_async(self, activity_id: str, start_time: winsdk.windows.foundation.DateTime) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVector[UserActivitySessionHistoryItem]]: ...
    @typing.overload
    @staticmethod
    def try_get_for_web_account(account: winsdk.windows.security.credentials.WebAccount) -> UserActivityChannel: ...

class UserActivityContentInfo(IUserActivityContentInfo, _winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> UserActivityContentInfo: ...
    @typing.overload
    @staticmethod
    def from_json(value: str) -> UserActivityContentInfo: ...
    @typing.overload
    def to_json(self) -> str: ...

class UserActivityRequest(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> UserActivityRequest: ...
    @typing.overload
    def set_user_activity(self, activity: UserActivity) -> None: ...

class UserActivityRequestManager(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> UserActivityRequestManager: ...
    @typing.overload
    @staticmethod
    def get_for_current_view() -> UserActivityRequestManager: ...
    @typing.overload
    def add_user_activity_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[UserActivityRequestManager, UserActivityRequestedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_user_activity_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class UserActivityRequestedEventArgs(_winrt.Object):
    request: UserActivityRequest
    @staticmethod
    def _from(obj: _winrt.Object) -> UserActivityRequestedEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class UserActivitySession(winsdk.windows.foundation.IClosable, _winrt.Object):
    activity_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> UserActivitySession: ...
    @typing.overload
    def close(self) -> None: ...

class UserActivitySessionHistoryItem(_winrt.Object):
    end_time: typing.Optional[winsdk.windows.foundation.DateTime]
    start_time: winsdk.windows.foundation.DateTime
    user_activity: UserActivity
    @staticmethod
    def _from(obj: _winrt.Object) -> UserActivitySessionHistoryItem: ...

class UserActivityVisualElements(_winrt.Object):
    display_text: str
    description: str
    content: winsdk.windows.ui.shell.IAdaptiveCard
    background_color: winsdk.windows.ui.Color
    attribution: UserActivityAttribution
    attribution_display_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> UserActivityVisualElements: ...

class IUserActivityContentInfo(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> IUserActivityContentInfo: ...
    @typing.overload
    def to_json(self) -> str: ...

