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

import enum
import datetime
import sys
import types
import typing

import winsdk._winrt as _winrt
import winsdk.windows.foundation
import winsdk.windows.foundation.collections

class AnimationEffect(enum.IntEnum):
    EXPAND = 0
    COLLAPSE = 1
    REPOSITION = 2
    FADE_IN = 3
    FADE_OUT = 4
    ADD_TO_LIST = 5
    DELETE_FROM_LIST = 6
    ADD_TO_GRID = 7
    DELETE_FROM_GRID = 8
    ADD_TO_SEARCH_GRID = 9
    DELETE_FROM_SEARCH_GRID = 10
    ADD_TO_SEARCH_LIST = 11
    DELETE_FROM_SEARCH_LIST = 12
    SHOW_EDGE_U_I = 13
    SHOW_PANEL = 14
    HIDE_EDGE_U_I = 15
    HIDE_PANEL = 16
    SHOW_POPUP = 17
    HIDE_POPUP = 18
    POINTER_DOWN = 19
    POINTER_UP = 20
    DRAG_SOURCE_START = 21
    DRAG_SOURCE_END = 22
    TRANSITION_CONTENT = 23
    REVEAL = 24
    HIDE = 25
    DRAG_BETWEEN_ENTER = 26
    DRAG_BETWEEN_LEAVE = 27
    SWIPE_SELECT = 28
    SWIPE_DESELECT = 29
    SWIPE_REVEAL = 30
    ENTER_PAGE = 31
    TRANSITION_PAGE = 32
    CROSS_FADE = 33
    PEEK = 34
    UPDATE_BADGE = 35

class AnimationEffectTarget(enum.IntEnum):
    PRIMARY = 0
    ADDED = 1
    AFFECTED = 2
    BACKGROUND = 3
    CONTENT = 4
    DELETED = 5
    DESELECTED = 6
    DRAG_SOURCE = 7
    HIDDEN = 8
    INCOMING = 9
    OUTGOING = 10
    OUTLINE = 11
    REMAINING = 12
    REVEALED = 13
    ROW_IN = 14
    ROW_OUT = 15
    SELECTED = 16
    SELECTION = 17
    SHOWN = 18
    TAPPED = 19

class PropertyAnimationType(enum.IntEnum):
    SCALE = 0
    TRANSLATION = 1
    OPACITY = 2

Self = typing.TypeVar('Self')

class AnimationDescription(_winrt.Object):
    animations: typing.Optional[winsdk.windows.foundation.collections.IVectorView[IPropertyAnimation]]
    delay_limit: datetime.timedelta
    stagger_delay: datetime.timedelta
    stagger_delay_factor: _winrt.Single
    z_order: _winrt.Int32
    @staticmethod
    def _from(obj: _winrt.Object) -> AnimationDescription: ...
    def __new__(cls: typing.Type[AnimationDescription], effect: AnimationEffect, target: AnimationEffectTarget) -> AnimationDescription:...

class OpacityAnimation(_winrt.Object):
    final_opacity: _winrt.Single
    initial_opacity: typing.Optional[typing.Optional[_winrt.Single]]
    control1: winsdk.windows.foundation.Point
    control2: winsdk.windows.foundation.Point
    delay: datetime.timedelta
    duration: datetime.timedelta
    type: PropertyAnimationType
    @staticmethod
    def _from(obj: _winrt.Object) -> OpacityAnimation: ...

class PropertyAnimation(_winrt.Object):
    control1: winsdk.windows.foundation.Point
    control2: winsdk.windows.foundation.Point
    delay: datetime.timedelta
    duration: datetime.timedelta
    type: PropertyAnimationType
    @staticmethod
    def _from(obj: _winrt.Object) -> PropertyAnimation: ...

class ScaleAnimation(_winrt.Object):
    control1: winsdk.windows.foundation.Point
    control2: winsdk.windows.foundation.Point
    delay: datetime.timedelta
    duration: datetime.timedelta
    type: PropertyAnimationType
    final_scale_x: _winrt.Single
    final_scale_y: _winrt.Single
    initial_scale_x: typing.Optional[typing.Optional[_winrt.Single]]
    initial_scale_y: typing.Optional[typing.Optional[_winrt.Single]]
    normalized_origin: winsdk.windows.foundation.Point
    @staticmethod
    def _from(obj: _winrt.Object) -> ScaleAnimation: ...

class TranslationAnimation(_winrt.Object):
    control1: winsdk.windows.foundation.Point
    control2: winsdk.windows.foundation.Point
    delay: datetime.timedelta
    duration: datetime.timedelta
    type: PropertyAnimationType
    @staticmethod
    def _from(obj: _winrt.Object) -> TranslationAnimation: ...

class IPropertyAnimation(_winrt.Object):
    control1: winsdk.windows.foundation.Point
    control2: winsdk.windows.foundation.Point
    delay: datetime.timedelta
    duration: datetime.timedelta
    type: PropertyAnimationType
    @staticmethod
    def _from(obj: _winrt.Object) -> IPropertyAnimation: ...

