from typing import Tuple, Set, Iterable, List

class AutoInitializeAttribute:
    def __init__(self, initialize : bool): ...
    @property
    def Initialize (self) -> bool: ...
class ContentPropertyAttribute:
    def __init__(self): ...
    def __init__(self, name : str): ...
    @property
    def Name (self) -> str: ...
class EtoSpecialFolder:
    ApplicationSettings = 0
    ApplicationResources = 1
    Documents = 2
class EtoEnvironment:
    @property
    def Platform () -> OperatingSystemPlatform: ...
    def GetFolderPath (folder : EtoSpecialFolder) -> str: ...
    @property
    def Is64BitProcess () -> bool: ...
class EtoMemberIdentifier(AttachableMemberIdentifier):
    def __init__(self, declaringType : Type, memberName : str): ...
class AttachableMemberIdentifier:
    def __init__(self, declaringType : Type, memberName : str): ...
    @property
    def DeclaringType (self) -> Type: ...
    @property
    def MemberName (self) -> str: ...
    def Equals (self, obj : Object) -> bool: ...
    def Equals (self, other : AttachableMemberIdentifier) -> bool: ...
    def GetHashCode (self) -> int: ...
    def ToString (self) -> str: ...
    def op_Equality (left : AttachableMemberIdentifier, right : AttachableMemberIdentifier) -> bool: ...
    def op_Inequality (left : AttachableMemberIdentifier, right : AttachableMemberIdentifier) -> bool: ...
class ExportHandlerAttribute(PlatformExtensionAttribute):
    def __init__(self, widgetType : Type, handlerType : Type): ...
    @property
    def WidgetType (self) -> Type: ...
    @property
    def HandlerType (self) -> Type: ...
    def Register (self, platform : Platform) -> None: ...
class FileAction:
    OpenFile = 0
    SaveFile = 1
    SelectFolder = 2
class HandlerAttribute:
    def __init__(self, type : Type): ...
    @property
    def Type (self) -> Type: ...
class NamespaceInfo:
    def __init__(self, ns : str): ...
    def __init__(self, ns : str, assembly : Assembly): ...
    @Assembly.setter
    def Assembly (self, value : Assembly) -> None: ...
    @property
    def Assembly (self) -> Assembly: ...
    @property
    def Namespace (self) -> str: ...
    def FindType (self, typeName : str) -> Type: ...
    def FindResource (self, resourceName : str) -> Stream: ...
    def FindResource (self) -> Stream: ...
class OperatingSystemPlatform:
    def __init__(self): ...
    @property
    def IsMono (self) -> bool: ...
    @property
    def IsWindows (self) -> bool: ...
    @property
    def IsWinRT (self) -> bool: ...
    @property
    def IsUnix (self) -> bool: ...
    @property
    def IsMac (self) -> bool: ...
    @property
    def IsLinux (self) -> bool: ...
class ITypeDescriptorContext:
class TypeConverterAttribute:
    def __init__(self, type : Type): ...
    def __init__(self, typeName : str): ...
    @property
    def ConverterTypeName (self) -> str: ...
class TypeDescriptor:
    def GetConverter (type : Type) -> TypeConverter: ...
class TypeConverter:
    def __init__(self): ...
    def CanConvertFrom (self, sourceType : Type) -> bool: ...
    def CanConvertFrom (self, context : ITypeDescriptorContext, sourceType : Type) -> bool: ...
    def CanConvertTo (self, destinationType : Type) -> bool: ...
    def CanConvertTo (self, context : ITypeDescriptorContext, destinationType : Type) -> bool: ...
    def ConvertFrom (self, o : Object) -> Object: ...
    def ConvertFrom (self, context : ITypeDescriptorContext, culture : CultureInfo, value : Object) -> Object: ...
    def ConvertFromInvariantString (self, text : str) -> Object: ...
    def ConvertFromInvariantString (self, context : ITypeDescriptorContext, text : str) -> Object: ...
    def ConvertFromString (self, text : str) -> Object: ...
    def ConvertFromString (self, context : ITypeDescriptorContext, text : str) -> Object: ...
    def ConvertFromString (self, context : ITypeDescriptorContext, culture : CultureInfo, text : str) -> Object: ...
    def ConvertTo (self, value : Object, destinationType : Type) -> Object: ...
    def ConvertTo (self, context : ITypeDescriptorContext, culture : CultureInfo, value : Object, destinationType : Type) -> Object: ...
    def ConvertToInvariantString (self, value : Object) -> str: ...
    def ConvertToInvariantString (self, context : ITypeDescriptorContext, value : Object) -> str: ...
    def ConvertToString (self, value : Object) -> str: ...
    def ConvertToString (self, context : ITypeDescriptorContext, value : Object) -> str: ...
    def ConvertToString (self, context : ITypeDescriptorContext, culture : CultureInfo, value : Object) -> str: ...
    def IsValid (self, value : Object) -> bool: ...
    def IsValid (self, context : ITypeDescriptorContext, value : Object) -> bool: ...
class WidgetCreatedEventArgs:
    def __init__(self, instance : Widget): ...
    @property
    def Instance (self) -> Widget: ...
class HandlerCreatedEventArgs:
    def __init__(self, instance : Object): ...
    @property
    def Instance (self) -> Object: ...
class PlatformFeatures:
    None = 0
    CustomCellSupportsControlView = 1
    DrawableWithTransparentContent = 2
    TabIndexWithCustomContainers = 4
class Platform:
    def add_HandlerCreated (self, value : EventHandler) -> None: ...
    def remove_HandlerCreated (self, value : EventHandler) -> None: ...
    def add_WidgetCreated (self, value : EventHandler) -> None: ...
    def remove_WidgetCreated (self, value : EventHandler) -> None: ...
    @property
    def ID (self) -> str: ...
    @property
    def IsMac (self) -> bool: ...
    @property
    def IsWinForms (self) -> bool: ...
    @property
    def IsWpf (self) -> bool: ...
    @property
    def IsGtk (self) -> bool: ...
    @property
    def IsIos (self) -> bool: ...
    @property
    def IsAndroid (self) -> bool: ...
    @property
    def IsDesktop (self) -> bool: ...
    @property
    def IsMobile (self) -> bool: ...
    @property
    def IsValid (self) -> bool: ...
    def Supports (self) -> bool: ...
    def Supports (self, type : Type) -> bool: ...
    def LoadAssembly (self, assemblyName : str) -> None: ...
    def LoadAssembly (self, assembly : Assembly) -> None: ...
    @property
    def SupportedFeatures (self) -> PlatformFeatures: ...
    @property
    def Instance () -> Platform: ...
    @property
    def Detect () -> Platform: ...
    def Initialize (platform : Platform) -> None: ...
    def Initialize (platformType : str) -> None: ...
    def Get (generatorType : str) -> Platform: ...
    def Add (self, instantiator : Func) -> None: ...
    def Add (self, type : Type, instantiator : Func) -> None: ...
    def Find (self, type : Type) -> Func: ...
    def Find (self) -> Func: ...
    def Create (self) -> T: ...
    def Create (self, type : Type) -> Object: ...
    def CreateShared (self, type : Type) -> Object: ...
    def CreateShared (self) -> T: ...
    def Cache (self, cacheKey : Object) -> Dictionary: ...
    def ThreadStart (self) -> IDisposable: ...
    @property
    def Context (self) -> IDisposable: ...
    def Invoke (self, action : Action) -> None: ...
    def Invoke (self, action : Func) -> T: ...
class ExportInitializerAttribute(PlatformExtensionAttribute):
    def __init__(self, initializerType : Type): ...
    @property
    def InitializerType (self) -> Type: ...
    def Register (self, platform : Platform) -> None: ...
class IPlatformInitializer:
    def Initialize (self, platform : Platform) -> None: ...
class PlatformExtensionAttribute:
    @property
    def PlatformID (self) -> str: ...
    @PlatformID.setter
    def PlatformID (self, value : str) -> None: ...
    def Supports (self, platform : Platform) -> bool: ...
    def Register (self, platform : Platform) -> None: ...
class Platforms:
class PropertyStore:
    def __init__(self, parent : Object): ...
    @property
    def Parent (self) -> Object: ...
    def Get (self, key : Object, defaultValue : T) -> T: ...
    def Get (self, key : Object, defaultValue : Func) -> T: ...
    def Create (self, key : Object) -> T: ...
    def Create (self, key : Object, create : Func) -> T: ...
    def AddEvent (self, key : Object, value : Delegate) -> None: ...
    def AddHandlerEvent (self, key : str, value : Delegate) -> None: ...
    def RemoveEvent (self, key : Object, value : Delegate) -> None: ...
    def TriggerEvent (self, key : Object, sender : Object, args : T) -> None: ...
    def Set (self, key : Object, value : T, defaultValue : T) -> None: ...
    def Set (self, key : Object, value : T, propertyChanged : PropertyChangedEventHandler, defaultValue : T, propertyName : str) -> bool: ...
    def Set (self, key : Object, value : T, propertyChanged : Action, defaultValue : T) -> bool: ...
    def SetCommand (self, key : Object, value : ICommand, setEnabled : Action, addExecute : Action, removeExecute : Action, getParameter : Func) -> None: ...
    def UpdateCommandCanExecute (self, key : Object) -> None: ...
    def GetCommand (self, key : Object) -> ICommand: ...
class RuntimeNamePropertyAttribute:
    def __init__(self, name : str): ...
    @property
    def Name (self) -> str: ...
class Style:
    def add_StyleWidget (value : Action) -> None: ...
    def remove_StyleWidget (value : Action) -> None: ...
    def Add (style : str, handler : StyleWidgetHandler) -> None: ...
    def Add (style : str, styleHandler : StyleHandler) -> None: ...
class UnhandledExceptionEventArgs:
    def __init__(self, exception : Object, isTerminating : bool): ...
    @property
    def ExceptionObject (self) -> Object: ...
    @property
    def IsTerminating (self) -> bool: ...
class IControlObjectSource:
    @property
    def ControlObject (self) -> Object: ...
class IHandlerSource:
    @property
    def Handler (self) -> Object: ...
class ICallbackSource:
    @property
    def Callback (self) -> Object: ...
class Widget:
    @property
    def Platform (self) -> Platform: ...
    @property
    def Handler (self) -> Object: ...
    @property
    def NativeHandle (self) -> IntPtr: ...
    @property
    def Properties (self) -> PropertyStore: ...
    @property
    def ID (self) -> str: ...
    @ID.setter
    def ID (self, value : str) -> None: ...
    @property
    def Style (self) -> str: ...
    @Style.setter
    def Style (self, value : str) -> None: ...
    def add_StyleChanged (self, value : EventHandler) -> None: ...
    def remove_StyleChanged (self, value : EventHandler) -> None: ...
    @property
    def ControlObject (self) -> Object: ...
    def Dispose (self) -> None: ...
    def ToString (self) -> str: ...
class IHandler:
    def GetFolderPath (self, folder : EtoSpecialFolder) -> str: ...
class ICallback:
class IHandler:
    @property
    def ID (self) -> str: ...
    @ID.setter
    def ID (self, value : str) -> None: ...
    @property
    def Widget (self) -> Widget: ...
    @Widget.setter
    def Widget (self, value : Widget) -> None: ...
    @property
    def NativeHandle (self) -> IntPtr: ...
    def Initialize (self) -> None: ...
    def HandleEvent (self, id : str, defaultEvent : bool) -> None: ...
