# 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 winui3._winui3_microsoft_ui_xaml_data import (
    LoadMoreItemsResult,
    Binding,
    BindingBase,
    BindingExpression,
    BindingExpressionBase,
    BindingOperations,
    CollectionViewSource,
    CurrentChangingEventArgs,
    DataErrorsChangedEventArgs,
    ItemIndexRange,
    PropertyChangedEventArgs,
    RelativeSource,
    _ICollectionView,
    ICollectionView,
    _ICollectionViewFactory,
    ICollectionViewFactory,
    _ICollectionViewGroup,
    ICollectionViewGroup,
    _ICustomProperty,
    ICustomProperty,
    _ICustomPropertyProvider,
    ICustomPropertyProvider,
    _IItemsRangeInfo,
    IItemsRangeInfo,
    _INotifyDataErrorInfo,
    INotifyDataErrorInfo,
    _INotifyPropertyChanged,
    INotifyPropertyChanged,
    _ISelectionInfo,
    ISelectionInfo,
    _ISupportIncrementalLoading,
    ISupportIncrementalLoading,
    _IValueConverter,
    IValueConverter,
)
from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from winui3._winui3_microsoft_ui_xaml_data import (
        Binding_Static,
        BindingBase_Static,
        BindingExpression_Static,
        BindingExpressionBase_Static,
        CurrentChangingEventArgs_Static,
        ItemIndexRange_Static,
        PropertyChangedEventArgs_Static,
        RelativeSource_Static,
    )

__all__ = [
    "BindingMode",
    "RelativeSourceMode",
    "UpdateSourceTrigger",
    "LoadMoreItemsResult",
    "Binding",
    "BindingBase",
    "BindingExpression",
    "BindingExpressionBase",
    "BindingOperations",
    "CollectionViewSource",
    "CurrentChangingEventArgs",
    "DataErrorsChangedEventArgs",
    "ItemIndexRange",
    "PropertyChangedEventArgs",
    "RelativeSource",
    "ICollectionView",
    "ICollectionViewFactory",
    "ICollectionViewGroup",
    "ICustomProperty",
    "ICustomPropertyProvider",
    "IItemsRangeInfo",
    "INotifyDataErrorInfo",
    "INotifyPropertyChanged",
    "ISelectionInfo",
    "ISupportIncrementalLoading",
    "IValueConverter",
    "CurrentChangingEventHandler",
    "PropertyChangedEventHandler",
]

class BindingMode(enum.IntEnum):
    ONE_WAY = 1
    ONE_TIME = 2
    TWO_WAY = 3

class RelativeSourceMode(enum.IntEnum):
    NONE = 0
    TEMPLATED_PARENT = 1
    SELF = 2

class UpdateSourceTrigger(enum.IntEnum):
    DEFAULT = 0
    PROPERTY_CHANGED = 1
    EXPLICIT = 2
    LOST_FOCUS = 3

winrt.system._mixin_mutable_sequence(_ICollectionView)
CurrentChangingEventHandler = typing.Callable[[winrt.system.Object, CurrentChangingEventArgs], None]
PropertyChangedEventHandler = typing.Callable[[winrt.system.Object, PropertyChangedEventArgs], None]
