# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.1.0

import enum
import typing
import uuid as _uuid

import winrt.system
from winrt._winrt_windows_ui_xaml_interop import (
    TypeName,
    NotifyCollectionChangedEventArgs,
    _IBindableIterable,
    IBindableIterable,
    _IBindableIterator,
    IBindableIterator,
    _IBindableObservableVector,
    IBindableObservableVector,
    _IBindableVector,
    IBindableVector,
    _IBindableVectorView,
    IBindableVectorView,
    _INotifyCollectionChanged,
    INotifyCollectionChanged,
)
from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from winrt._winrt_windows_ui_xaml_interop import (
        NotifyCollectionChangedEventArgs_Static,
    )

__all__ = [
    "NotifyCollectionChangedAction",
    "TypeKind",
    "TypeName",
    "NotifyCollectionChangedEventArgs",
    "IBindableIterable",
    "IBindableIterator",
    "IBindableObservableVector",
    "IBindableVector",
    "IBindableVectorView",
    "INotifyCollectionChanged",
    "BindableVectorChangedEventHandler",
    "NotifyCollectionChangedEventHandler",
]

class NotifyCollectionChangedAction(enum.IntEnum):
    ADD = 0
    REMOVE = 1
    REPLACE = 2
    MOVE = 3
    RESET = 4

class TypeKind(enum.IntEnum):
    PRIMITIVE = 0
    METADATA = 1
    CUSTOM = 2

BindableVectorChangedEventHandler = typing.Callable[[IBindableObservableVector, winrt.system.Object], None]
NotifyCollectionChangedEventHandler = typing.Callable[[winrt.system.Object, NotifyCollectionChangedEventArgs], None]
