--Create By BuildApi, Create time: 2020-05-12 10:50:22 
-----------------------------------------------------------------
--enum define
-----------------------------------------------------------------
ImGuiWindowFlags_={
  ImGuiWindowFlags_None = 'ImGuiWindowFlags_None',
  ImGuiWindowFlags_NoTitleBar = 'ImGuiWindowFlags_NoTitleBar',
  ImGuiWindowFlags_NoResize = 'ImGuiWindowFlags_NoResize',
  ImGuiWindowFlags_NoMove = 'ImGuiWindowFlags_NoMove',
  ImGuiWindowFlags_NoScrollbar = 'ImGuiWindowFlags_NoScrollbar',
  ImGuiWindowFlags_NoScrollWithMouse = 'ImGuiWindowFlags_NoScrollWithMouse',
  ImGuiWindowFlags_NoCollapse = 'ImGuiWindowFlags_NoCollapse',
  ImGuiWindowFlags_AlwaysAutoResize = 'ImGuiWindowFlags_AlwaysAutoResize',
  ImGuiWindowFlags_NoBackground = 'ImGuiWindowFlags_NoBackground',
  ImGuiWindowFlags_NoSavedSettings = 'ImGuiWindowFlags_NoSavedSettings',
  ImGuiWindowFlags_NoMouseInputs = 'ImGuiWindowFlags_NoMouseInputs',
  ImGuiWindowFlags_MenuBar = 'ImGuiWindowFlags_MenuBar',
  ImGuiWindowFlags_HorizontalScrollbar = 'ImGuiWindowFlags_HorizontalScrollbar',
  ImGuiWindowFlags_NoFocusOnAppearing = 'ImGuiWindowFlags_NoFocusOnAppearing',
  ImGuiWindowFlags_NoBringToFrontOnFocus = 'ImGuiWindowFlags_NoBringToFrontOnFocus',
  ImGuiWindowFlags_AlwaysVerticalScrollbar = 'ImGuiWindowFlags_AlwaysVerticalScrollbar',
  ImGuiWindowFlags_AlwaysHorizontalScrollbar = 'ImGuiWindowFlags_AlwaysHorizontalScrollbar',
  ImGuiWindowFlags_AlwaysUseWindowPadding = 'ImGuiWindowFlags_AlwaysUseWindowPadding',
  ImGuiWindowFlags_NoNavInputs = 'ImGuiWindowFlags_NoNavInputs',
  ImGuiWindowFlags_NoNavFocus = 'ImGuiWindowFlags_NoNavFocus',
  ImGuiWindowFlags_UnsavedDocument = 'ImGuiWindowFlags_UnsavedDocument',
  ImGuiWindowFlags_NoNav = 'ImGuiWindowFlags_NoNav',
  ImGuiWindowFlags_NoDecoration = 'ImGuiWindowFlags_NoDecoration',
  ImGuiWindowFlags_NoInputs = 'ImGuiWindowFlags_NoInputs',
  ImGuiWindowFlags_NavFlattened = 'ImGuiWindowFlags_NavFlattened',
  ImGuiWindowFlags_ChildWindow = 'ImGuiWindowFlags_ChildWindow',
  ImGuiWindowFlags_Tooltip = 'ImGuiWindowFlags_Tooltip',
  ImGuiWindowFlags_Popup = 'ImGuiWindowFlags_Popup',
  ImGuiWindowFlags_Modal = 'ImGuiWindowFlags_Modal'
}

-----------------------------------------------------------------
ImGuiInputTextFlags_={
  ImGuiInputTextFlags_None = 'ImGuiInputTextFlags_None',
  ImGuiInputTextFlags_CharsDecimal = 'ImGuiInputTextFlags_CharsDecimal',
  ImGuiInputTextFlags_CharsHexadecimal = 'ImGuiInputTextFlags_CharsHexadecimal',
  ImGuiInputTextFlags_CharsUppercase = 'ImGuiInputTextFlags_CharsUppercase',
  ImGuiInputTextFlags_CharsNoBlank = 'ImGuiInputTextFlags_CharsNoBlank',
  ImGuiInputTextFlags_AutoSelectAll = 'ImGuiInputTextFlags_AutoSelectAll',
  ImGuiInputTextFlags_EnterReturnsTrue = 'ImGuiInputTextFlags_EnterReturnsTrue',
  ImGuiInputTextFlags_CallbackCompletion = 'ImGuiInputTextFlags_CallbackCompletion',
  ImGuiInputTextFlags_CallbackHistory = 'ImGuiInputTextFlags_CallbackHistory',
  ImGuiInputTextFlags_CallbackAlways = 'ImGuiInputTextFlags_CallbackAlways',
  ImGuiInputTextFlags_CallbackCharFilter = 'ImGuiInputTextFlags_CallbackCharFilter',
  ImGuiInputTextFlags_AllowTabInput = 'ImGuiInputTextFlags_AllowTabInput',
  ImGuiInputTextFlags_CtrlEnterForNewLine = 'ImGuiInputTextFlags_CtrlEnterForNewLine',
  ImGuiInputTextFlags_NoHorizontalScroll = 'ImGuiInputTextFlags_NoHorizontalScroll',
  ImGuiInputTextFlags_AlwaysInsertMode = 'ImGuiInputTextFlags_AlwaysInsertMode',
  ImGuiInputTextFlags_ReadOnly = 'ImGuiInputTextFlags_ReadOnly',
  ImGuiInputTextFlags_Password = 'ImGuiInputTextFlags_Password',
  ImGuiInputTextFlags_NoUndoRedo = 'ImGuiInputTextFlags_NoUndoRedo',
  ImGuiInputTextFlags_CharsScientific = 'ImGuiInputTextFlags_CharsScientific',
  ImGuiInputTextFlags_CallbackResize = 'ImGuiInputTextFlags_CallbackResize',
  ImGuiInputTextFlags_Multiline = 'ImGuiInputTextFlags_Multiline'
}

-----------------------------------------------------------------
ImGuiTreeNodeFlags_={
  ImGuiTreeNodeFlags_None = 'ImGuiTreeNodeFlags_None',
  ImGuiTreeNodeFlags_Selected = 'ImGuiTreeNodeFlags_Selected',
  ImGuiTreeNodeFlags_Framed = 'ImGuiTreeNodeFlags_Framed',
  ImGuiTreeNodeFlags_AllowItemOverlap = 'ImGuiTreeNodeFlags_AllowItemOverlap',
  ImGuiTreeNodeFlags_NoTreePushOnOpen = 'ImGuiTreeNodeFlags_NoTreePushOnOpen',
  ImGuiTreeNodeFlags_NoAutoOpenOnLog = 'ImGuiTreeNodeFlags_NoAutoOpenOnLog',
  ImGuiTreeNodeFlags_DefaultOpen = 'ImGuiTreeNodeFlags_DefaultOpen',
  ImGuiTreeNodeFlags_OpenOnDoubleClick = 'ImGuiTreeNodeFlags_OpenOnDoubleClick',
  ImGuiTreeNodeFlags_OpenOnArrow = 'ImGuiTreeNodeFlags_OpenOnArrow',
  ImGuiTreeNodeFlags_Leaf = 'ImGuiTreeNodeFlags_Leaf',
  ImGuiTreeNodeFlags_Bullet = 'ImGuiTreeNodeFlags_Bullet',
  ImGuiTreeNodeFlags_FramePadding = 'ImGuiTreeNodeFlags_FramePadding',
  ImGuiTreeNodeFlags_SpanAvailWidth = 'ImGuiTreeNodeFlags_SpanAvailWidth',
  ImGuiTreeNodeFlags_SpanFullWidth = 'ImGuiTreeNodeFlags_SpanFullWidth',
  ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 'ImGuiTreeNodeFlags_NavLeftJumpsBackHere'
}

-----------------------------------------------------------------
ImGuiSelectableFlags_={
  ImGuiSelectableFlags_None = 'ImGuiSelectableFlags_None',
  ImGuiSelectableFlags_DontClosePopups = 'ImGuiSelectableFlags_DontClosePopups',
  ImGuiSelectableFlags_SpanAllColumns = 'ImGuiSelectableFlags_SpanAllColumns',
  ImGuiSelectableFlags_AllowDoubleClick = 'ImGuiSelectableFlags_AllowDoubleClick',
  ImGuiSelectableFlags_Disabled = 'ImGuiSelectableFlags_Disabled'
}

-----------------------------------------------------------------
ImGuiComboFlags_={
  ImGuiComboFlags_None = 'ImGuiComboFlags_None',
  ImGuiComboFlags_PopupAlignLeft = 'ImGuiComboFlags_PopupAlignLeft',
  ImGuiComboFlags_HeightSmall = 'ImGuiComboFlags_HeightSmall',
  ImGuiComboFlags_HeightRegular = 'ImGuiComboFlags_HeightRegular',
  ImGuiComboFlags_HeightLarge = 'ImGuiComboFlags_HeightLarge',
  ImGuiComboFlags_HeightLargest = 'ImGuiComboFlags_HeightLargest',
  ImGuiComboFlags_NoArrowButton = 'ImGuiComboFlags_NoArrowButton',
  ImGuiComboFlags_NoPreview = 'ImGuiComboFlags_NoPreview'
}

-----------------------------------------------------------------
ImGuiTabBarFlags_={
  ImGuiTabBarFlags_None = 'ImGuiTabBarFlags_None',
  ImGuiTabBarFlags_Reorderable = 'ImGuiTabBarFlags_Reorderable',
  ImGuiTabBarFlags_AutoSelectNewTabs = 'ImGuiTabBarFlags_AutoSelectNewTabs',
  ImGuiTabBarFlags_TabListPopupButton = 'ImGuiTabBarFlags_TabListPopupButton',
  ImGuiTabBarFlags_NoCloseWithMiddleMouseButton = 'ImGuiTabBarFlags_NoCloseWithMiddleMouseButton',
  ImGuiTabBarFlags_NoTabListScrollingButtons = 'ImGuiTabBarFlags_NoTabListScrollingButtons',
  ImGuiTabBarFlags_NoTooltip = 'ImGuiTabBarFlags_NoTooltip',
  ImGuiTabBarFlags_FittingPolicyResizeDown = 'ImGuiTabBarFlags_FittingPolicyResizeDown',
  ImGuiTabBarFlags_FittingPolicyScroll = 'ImGuiTabBarFlags_FittingPolicyScroll',
  ImGuiTabBarFlags_FittingPolicyMask_ = 'ImGuiTabBarFlags_FittingPolicyMask_'
}

-----------------------------------------------------------------
ImGuiTabItemFlags_={
  ImGuiTabItemFlags_None = 'ImGuiTabItemFlags_None',
  ImGuiTabItemFlags_UnsavedDocument = 'ImGuiTabItemFlags_UnsavedDocument',
  ImGuiTabItemFlags_SetSelected = 'ImGuiTabItemFlags_SetSelected',
  ImGuiTabItemFlags_NoCloseWithMiddleMouseButton = 'ImGuiTabItemFlags_NoCloseWithMiddleMouseButton'
}

-----------------------------------------------------------------
ImGuiFocusedFlags_={
  ImGuiFocusedFlags_None = 'ImGuiFocusedFlags_None',
  ImGuiFocusedFlags_ChildWindows = 'ImGuiFocusedFlags_ChildWindows',
  ImGuiFocusedFlags_RootWindow = 'ImGuiFocusedFlags_RootWindow',
  ImGuiFocusedFlags_AnyWindow = 'ImGuiFocusedFlags_AnyWindow'
}

-----------------------------------------------------------------
ImGuiHoveredFlags_={
  ImGuiHoveredFlags_None = 'ImGuiHoveredFlags_None',
  ImGuiHoveredFlags_ChildWindows = 'ImGuiHoveredFlags_ChildWindows',
  ImGuiHoveredFlags_RootWindow = 'ImGuiHoveredFlags_RootWindow',
  ImGuiHoveredFlags_AnyWindow = 'ImGuiHoveredFlags_AnyWindow',
  ImGuiHoveredFlags_AllowWhenBlockedByPopup = 'ImGuiHoveredFlags_AllowWhenBlockedByPopup',
  ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 'ImGuiHoveredFlags_AllowWhenBlockedByActiveItem',
  ImGuiHoveredFlags_AllowWhenOverlapped = 'ImGuiHoveredFlags_AllowWhenOverlapped',
  ImGuiHoveredFlags_AllowWhenDisabled = 'ImGuiHoveredFlags_AllowWhenDisabled',
  ImGuiHoveredFlags_RectOnly = 'ImGuiHoveredFlags_RectOnly'
}

-----------------------------------------------------------------
ImGuiDragDropFlags_={
  ImGuiDragDropFlags_None = 'ImGuiDragDropFlags_None',
  ImGuiDragDropFlags_SourceNoPreviewTooltip = 'ImGuiDragDropFlags_SourceNoPreviewTooltip',
  ImGuiDragDropFlags_SourceNoDisableHover = 'ImGuiDragDropFlags_SourceNoDisableHover',
  ImGuiDragDropFlags_SourceNoHoldToOpenOthers = 'ImGuiDragDropFlags_SourceNoHoldToOpenOthers',
  ImGuiDragDropFlags_SourceAllowNullID = 'ImGuiDragDropFlags_SourceAllowNullID',
  ImGuiDragDropFlags_SourceExtern = 'ImGuiDragDropFlags_SourceExtern',
  ImGuiDragDropFlags_SourceAutoExpirePayload = 'ImGuiDragDropFlags_SourceAutoExpirePayload',
  ImGuiDragDropFlags_AcceptBeforeDelivery = 'ImGuiDragDropFlags_AcceptBeforeDelivery',
  ImGuiDragDropFlags_AcceptNoDrawDefaultRect = 'ImGuiDragDropFlags_AcceptNoDrawDefaultRect',
  ImGuiDragDropFlags_AcceptNoPreviewTooltip = 'ImGuiDragDropFlags_AcceptNoPreviewTooltip'
}

-----------------------------------------------------------------
ImGuiDataType_={
  ImGuiDataType_S8 = 'ImGuiDataType_S8',
  ImGuiDataType_U8 = 'ImGuiDataType_U8',
  ImGuiDataType_S16 = 'ImGuiDataType_S16',
  ImGuiDataType_U16 = 'ImGuiDataType_U16',
  ImGuiDataType_S32 = 'ImGuiDataType_S32',
  ImGuiDataType_U32 = 'ImGuiDataType_U32',
  ImGuiDataType_S64 = 'ImGuiDataType_S64',
  ImGuiDataType_U64 = 'ImGuiDataType_U64',
  ImGuiDataType_Float = 'ImGuiDataType_Float',
  ImGuiDataType_Double = 'ImGuiDataType_Double'
}

-----------------------------------------------------------------
ImGuiDir_={
  ImGuiDir_None = 'ImGuiDir_None',
  ImGuiDir_Left = 'ImGuiDir_Left',
  ImGuiDir_Right = 'ImGuiDir_Right',
  ImGuiDir_Up = 'ImGuiDir_Up',
  ImGuiDir_Down = 'ImGuiDir_Down'
}

-----------------------------------------------------------------
ImGuiKey_={
  ImGuiKey_Tab = 'ImGuiKey_Tab',
  ImGuiKey_LeftArrow = 'ImGuiKey_LeftArrow',
  ImGuiKey_RightArrow = 'ImGuiKey_RightArrow',
  ImGuiKey_UpArrow = 'ImGuiKey_UpArrow',
  ImGuiKey_DownArrow = 'ImGuiKey_DownArrow',
  ImGuiKey_PageUp = 'ImGuiKey_PageUp',
  ImGuiKey_PageDown = 'ImGuiKey_PageDown',
  ImGuiKey_Home = 'ImGuiKey_Home',
  ImGuiKey_End = 'ImGuiKey_End',
  ImGuiKey_Insert = 'ImGuiKey_Insert',
  ImGuiKey_Delete = 'ImGuiKey_Delete',
  ImGuiKey_Backspace = 'ImGuiKey_Backspace',
  ImGuiKey_Space = 'ImGuiKey_Space',
  ImGuiKey_Enter = 'ImGuiKey_Enter',
  ImGuiKey_Escape = 'ImGuiKey_Escape',
  ImGuiKey_KeyPadEnter = 'ImGuiKey_KeyPadEnter',
  ImGuiKey_A = 'ImGuiKey_A',
  ImGuiKey_C = 'ImGuiKey_C',
  ImGuiKey_V = 'ImGuiKey_V',
  ImGuiKey_X = 'ImGuiKey_X',
  ImGuiKey_Y = 'ImGuiKey_Y',
  ImGuiKey_Z = 'ImGuiKey_Z'
}

-----------------------------------------------------------------
ImGuiNavInput_={
  ImGuiNavInput_Activate = 'ImGuiNavInput_Activate',
  ImGuiNavInput_Cancel = 'ImGuiNavInput_Cancel',
  ImGuiNavInput_Input = 'ImGuiNavInput_Input',
  ImGuiNavInput_Menu = 'ImGuiNavInput_Menu',
  ImGuiNavInput_DpadLeft = 'ImGuiNavInput_DpadLeft',
  ImGuiNavInput_DpadRight = 'ImGuiNavInput_DpadRight',
  ImGuiNavInput_DpadUp = 'ImGuiNavInput_DpadUp',
  ImGuiNavInput_DpadDown = 'ImGuiNavInput_DpadDown',
  ImGuiNavInput_LStickLeft = 'ImGuiNavInput_LStickLeft',
  ImGuiNavInput_LStickRight = 'ImGuiNavInput_LStickRight',
  ImGuiNavInput_LStickUp = 'ImGuiNavInput_LStickUp',
  ImGuiNavInput_LStickDown = 'ImGuiNavInput_LStickDown',
  ImGuiNavInput_FocusPrev = 'ImGuiNavInput_FocusPrev',
  ImGuiNavInput_FocusNext = 'ImGuiNavInput_FocusNext',
  ImGuiNavInput_TweakSlow = 'ImGuiNavInput_TweakSlow',
  ImGuiNavInput_TweakFast = 'ImGuiNavInput_TweakFast',
  ImGuiNavInput_KeyMenu_ = 'ImGuiNavInput_KeyMenu_',
  ImGuiNavInput_KeyLeft_ = 'ImGuiNavInput_KeyLeft_',
  ImGuiNavInput_KeyRight_ = 'ImGuiNavInput_KeyRight_',
  ImGuiNavInput_KeyUp_ = 'ImGuiNavInput_KeyUp_',
  ImGuiNavInput_KeyDown_ = 'ImGuiNavInput_KeyDown_',
  ImGuiNavInput_COUNT = 'ImGuiNavInput_COUNT'
}

-----------------------------------------------------------------
ImGuiConfigFlags_={
  ImGuiConfigFlags_None = 'ImGuiConfigFlags_None',
  ImGuiConfigFlags_NavEnableKeyboard = 'ImGuiConfigFlags_NavEnableKeyboard',
  ImGuiConfigFlags_NavEnableGamepad = 'ImGuiConfigFlags_NavEnableGamepad',
  ImGuiConfigFlags_NavEnableSetMousePos = 'ImGuiConfigFlags_NavEnableSetMousePos',
  ImGuiConfigFlags_NavNoCaptureKeyboard = 'ImGuiConfigFlags_NavNoCaptureKeyboard',
  ImGuiConfigFlags_NoMouse = 'ImGuiConfigFlags_NoMouse',
  ImGuiConfigFlags_NoMouseCursorChange = 'ImGuiConfigFlags_NoMouseCursorChange',
  ImGuiConfigFlags_IsSRGB = 'ImGuiConfigFlags_IsSRGB'
}

-----------------------------------------------------------------
ImGuiBackendFlags_={
  ImGuiBackendFlags_None = 'ImGuiBackendFlags_None',
  ImGuiBackendFlags_HasGamepad = 'ImGuiBackendFlags_HasGamepad',
  ImGuiBackendFlags_HasMouseCursors = 'ImGuiBackendFlags_HasMouseCursors',
  ImGuiBackendFlags_HasSetMousePos = 'ImGuiBackendFlags_HasSetMousePos'
}

-----------------------------------------------------------------
ImGuiCol_={
  ImGuiCol_Text = 'ImGuiCol_Text',
  ImGuiCol_TextDisabled = 'ImGuiCol_TextDisabled',
  ImGuiCol_WindowBg = 'ImGuiCol_WindowBg',
  ImGuiCol_ChildBg = 'ImGuiCol_ChildBg',
  ImGuiCol_PopupBg = 'ImGuiCol_PopupBg',
  ImGuiCol_Border = 'ImGuiCol_Border',
  ImGuiCol_BorderShadow = 'ImGuiCol_BorderShadow',
  ImGuiCol_FrameBg = 'ImGuiCol_FrameBg',
  ImGuiCol_FrameBgHovered = 'ImGuiCol_FrameBgHovered',
  ImGuiCol_FrameBgActive = 'ImGuiCol_FrameBgActive',
  ImGuiCol_TitleBg = 'ImGuiCol_TitleBg',
  ImGuiCol_TitleBgActive = 'ImGuiCol_TitleBgActive',
  ImGuiCol_TitleBgCollapsed = 'ImGuiCol_TitleBgCollapsed',
  ImGuiCol_MenuBarBg = 'ImGuiCol_MenuBarBg',
  ImGuiCol_ScrollbarBg = 'ImGuiCol_ScrollbarBg',
  ImGuiCol_ScrollbarGrab = 'ImGuiCol_ScrollbarGrab',
  ImGuiCol_ScrollbarGrabHovered = 'ImGuiCol_ScrollbarGrabHovered',
  ImGuiCol_ScrollbarGrabActive = 'ImGuiCol_ScrollbarGrabActive',
  ImGuiCol_CheckMark = 'ImGuiCol_CheckMark',
  ImGuiCol_SliderGrab = 'ImGuiCol_SliderGrab',
  ImGuiCol_SliderGrabActive = 'ImGuiCol_SliderGrabActive',
  ImGuiCol_Button = 'ImGuiCol_Button',
  ImGuiCol_ButtonHovered = 'ImGuiCol_ButtonHovered',
  ImGuiCol_ButtonActive = 'ImGuiCol_ButtonActive',
  ImGuiCol_Header = 'ImGuiCol_Header',
  ImGuiCol_HeaderHovered = 'ImGuiCol_HeaderHovered',
  ImGuiCol_HeaderActive = 'ImGuiCol_HeaderActive',
  ImGuiCol_Separator = 'ImGuiCol_Separator',
  ImGuiCol_SeparatorHovered = 'ImGuiCol_SeparatorHovered',
  ImGuiCol_SeparatorActive = 'ImGuiCol_SeparatorActive',
  ImGuiCol_ResizeGrip = 'ImGuiCol_ResizeGrip',
  ImGuiCol_ResizeGripHovered = 'ImGuiCol_ResizeGripHovered',
  ImGuiCol_ResizeGripActive = 'ImGuiCol_ResizeGripActive',
  ImGuiCol_Tab = 'ImGuiCol_Tab',
  ImGuiCol_TabHovered = 'ImGuiCol_TabHovered',
  ImGuiCol_TabActive = 'ImGuiCol_TabActive',
  ImGuiCol_TabUnfocused = 'ImGuiCol_TabUnfocused',
  ImGuiCol_TabUnfocusedActive = 'ImGuiCol_TabUnfocusedActive',
  ImGuiCol_PlotLines = 'ImGuiCol_PlotLines',
  ImGuiCol_PlotLinesHovered = 'ImGuiCol_PlotLinesHovered',
  ImGuiCol_PlotHistogram = 'ImGuiCol_PlotHistogram',
  ImGuiCol_PlotHistogramHovered = 'ImGuiCol_PlotHistogramHovered',
  ImGuiCol_TextSelectedBg = 'ImGuiCol_TextSelectedBg',
  ImGuiCol_DragDropTarget = 'ImGuiCol_DragDropTarget',
  ImGuiCol_NavHighlight = 'ImGuiCol_NavHighlight',
  ImGuiCol_NavWindowingHighlight = 'ImGuiCol_NavWindowingHighlight',
  ImGuiCol_NavWindowingDimBg = 'ImGuiCol_NavWindowingDimBg',
  ImGuiCol_ModalWindowDimBg = 'ImGuiCol_ModalWindowDimBg'
}

-----------------------------------------------------------------
ImGuiStyleVar_={
  ImGuiStyleVar_Alpha = 'ImGuiStyleVar_Alpha',
  ImGuiStyleVar_WindowPadding = 'ImGuiStyleVar_WindowPadding',
  ImGuiStyleVar_WindowRounding = 'ImGuiStyleVar_WindowRounding',
  ImGuiStyleVar_WindowBorderSize = 'ImGuiStyleVar_WindowBorderSize',
  ImGuiStyleVar_WindowMinSize = 'ImGuiStyleVar_WindowMinSize',
  ImGuiStyleVar_WindowTitleAlign = 'ImGuiStyleVar_WindowTitleAlign',
  ImGuiStyleVar_ChildRounding = 'ImGuiStyleVar_ChildRounding',
  ImGuiStyleVar_ChildBorderSize = 'ImGuiStyleVar_ChildBorderSize',
  ImGuiStyleVar_PopupRounding = 'ImGuiStyleVar_PopupRounding',
  ImGuiStyleVar_PopupBorderSize = 'ImGuiStyleVar_PopupBorderSize',
  ImGuiStyleVar_FramePadding = 'ImGuiStyleVar_FramePadding',
  ImGuiStyleVar_FrameRounding = 'ImGuiStyleVar_FrameRounding',
  ImGuiStyleVar_FrameBorderSize = 'ImGuiStyleVar_FrameBorderSize',
  ImGuiStyleVar_ItemSpacing = 'ImGuiStyleVar_ItemSpacing',
  ImGuiStyleVar_ItemInnerSpacing = 'ImGuiStyleVar_ItemInnerSpacing',
  ImGuiStyleVar_IndentSpacing = 'ImGuiStyleVar_IndentSpacing',
  ImGuiStyleVar_ScrollbarSize = 'ImGuiStyleVar_ScrollbarSize',
  ImGuiStyleVar_ScrollbarRounding = 'ImGuiStyleVar_ScrollbarRounding',
  ImGuiStyleVar_GrabMinSize = 'ImGuiStyleVar_GrabMinSize',
  ImGuiStyleVar_GrabRounding = 'ImGuiStyleVar_GrabRounding',
  ImGuiStyleVar_TabRounding = 'ImGuiStyleVar_TabRounding',
  ImGuiStyleVar_ButtonTextAlign = 'ImGuiStyleVar_ButtonTextAlign',
  ImGuiStyleVar_SelectableTextAlign = 'ImGuiStyleVar_SelectableTextAlign'
}

-----------------------------------------------------------------
ImGuiColorEditFlags_={
  ImGuiColorEditFlags_None = 'ImGuiColorEditFlags_None',
  ImGuiColorEditFlags_NoAlpha = 'ImGuiColorEditFlags_NoAlpha',
  ImGuiColorEditFlags_NoPicker = 'ImGuiColorEditFlags_NoPicker',
  ImGuiColorEditFlags_NoOptions = 'ImGuiColorEditFlags_NoOptions',
  ImGuiColorEditFlags_NoSmallPreview = 'ImGuiColorEditFlags_NoSmallPreview',
  ImGuiColorEditFlags_NoInputs = 'ImGuiColorEditFlags_NoInputs',
  ImGuiColorEditFlags_NoTooltip = 'ImGuiColorEditFlags_NoTooltip',
  ImGuiColorEditFlags_NoLabel = 'ImGuiColorEditFlags_NoLabel',
  ImGuiColorEditFlags_NoSidePreview = 'ImGuiColorEditFlags_NoSidePreview',
  ImGuiColorEditFlags_NoDragDrop = 'ImGuiColorEditFlags_NoDragDrop',
  ImGuiColorEditFlags_AlphaBar = 'ImGuiColorEditFlags_AlphaBar',
  ImGuiColorEditFlags_AlphaPreview = 'ImGuiColorEditFlags_AlphaPreview',
  ImGuiColorEditFlags_AlphaPreviewHalf = 'ImGuiColorEditFlags_AlphaPreviewHalf',
  ImGuiColorEditFlags_HDR = 'ImGuiColorEditFlags_HDR',
  ImGuiColorEditFlags_DisplayRGB = 'ImGuiColorEditFlags_DisplayRGB',
  ImGuiColorEditFlags_DisplayHSV = 'ImGuiColorEditFlags_DisplayHSV',
  ImGuiColorEditFlags_DisplayHex = 'ImGuiColorEditFlags_DisplayHex',
  ImGuiColorEditFlags_Uint8 = 'ImGuiColorEditFlags_Uint8',
  ImGuiColorEditFlags_Float = 'ImGuiColorEditFlags_Float',
  ImGuiColorEditFlags_PickerHueBar = 'ImGuiColorEditFlags_PickerHueBar',
  ImGuiColorEditFlags_PickerHueWheel = 'ImGuiColorEditFlags_PickerHueWheel',
  ImGuiColorEditFlags_InputRGB = 'ImGuiColorEditFlags_InputRGB',
  ImGuiColorEditFlags_InputHSV = 'ImGuiColorEditFlags_InputHSV',
  ImGuiColorEditFlags__OptionsDefault = 'ImGuiColorEditFlags__OptionsDefault',
  ImGuiColorEditFlags__DisplayMask = 'ImGuiColorEditFlags__DisplayMask',
  ImGuiColorEditFlags__DataTypeMask = 'ImGuiColorEditFlags__DataTypeMask',
  ImGuiColorEditFlags__PickerMask = 'ImGuiColorEditFlags__PickerMask'
}

-----------------------------------------------------------------
ImGuiMouseButton_={
  ImGuiMouseButton_Left = 'ImGuiMouseButton_Left',
  ImGuiMouseButton_Right = 'ImGuiMouseButton_Right',
  ImGuiMouseButton_Middle = 'ImGuiMouseButton_Middle'
}

-----------------------------------------------------------------
ImGuiMouseCursor_={
  ImGuiMouseCursor_None = 'ImGuiMouseCursor_None',
  ImGuiMouseCursor_Arrow = 'ImGuiMouseCursor_Arrow',
  ImGuiMouseCursor_TextInput = 'ImGuiMouseCursor_TextInput',
  ImGuiMouseCursor_ResizeAll = 'ImGuiMouseCursor_ResizeAll',
  ImGuiMouseCursor_ResizeNS = 'ImGuiMouseCursor_ResizeNS',
  ImGuiMouseCursor_ResizeEW = 'ImGuiMouseCursor_ResizeEW',
  ImGuiMouseCursor_ResizeNESW = 'ImGuiMouseCursor_ResizeNESW',
  ImGuiMouseCursor_ResizeNWSE = 'ImGuiMouseCursor_ResizeNWSE',
  ImGuiMouseCursor_Hand = 'ImGuiMouseCursor_Hand',
  ImGuiMouseCursor_NotAllowed = 'ImGuiMouseCursor_NotAllowed'
}

-----------------------------------------------------------------
ImGuiCond_={
  ImGuiCond_Always = 'ImGuiCond_Always',
  ImGuiCond_Once = 'ImGuiCond_Once',
  ImGuiCond_FirstUseEver = 'ImGuiCond_FirstUseEver'
}

-----------------------------------------------------------------
ImGuiButtonFlags_={
  ImGuiButtonFlags_None = 'ImGuiButtonFlags_None',
  ImGuiButtonFlags_Repeat = 'ImGuiButtonFlags_Repeat',
  ImGuiButtonFlags_PressedOnClickRelease = 'ImGuiButtonFlags_PressedOnClickRelease',
  ImGuiButtonFlags_PressedOnClick = 'ImGuiButtonFlags_PressedOnClick',
  ImGuiButtonFlags_PressedOnRelease = 'ImGuiButtonFlags_PressedOnRelease',
  ImGuiButtonFlags_PressedOnDoubleClick = 'ImGuiButtonFlags_PressedOnDoubleClick',
  ImGuiButtonFlags_FlattenChildren = 'ImGuiButtonFlags_FlattenChildren',
  ImGuiButtonFlags_AllowItemOverlap = 'ImGuiButtonFlags_AllowItemOverlap',
  ImGuiButtonFlags_DontClosePopups = 'ImGuiButtonFlags_DontClosePopups',
  ImGuiButtonFlags_Disabled = 'ImGuiButtonFlags_Disabled',
  ImGuiButtonFlags_AlignTextBaseLine = 'ImGuiButtonFlags_AlignTextBaseLine',
  ImGuiButtonFlags_NoKeyModifiers = 'ImGuiButtonFlags_NoKeyModifiers',
  ImGuiButtonFlags_NoHoldingActiveID = 'ImGuiButtonFlags_NoHoldingActiveID',
  ImGuiButtonFlags_PressedOnDragDropHold = 'ImGuiButtonFlags_PressedOnDragDropHold',
  ImGuiButtonFlags_NoNavFocus = 'ImGuiButtonFlags_NoNavFocus'
}

-----------------------------------------------------------------
ImGuiSliderFlags_={
  ImGuiSliderFlags_None = 'ImGuiSliderFlags_None'
}

-----------------------------------------------------------------
ImGuiColumnsFlags_={
  ImGuiColumnsFlags_None = 'ImGuiColumnsFlags_None',
  ImGuiColumnsFlags_NoBorder = 'ImGuiColumnsFlags_NoBorder',
  ImGuiColumnsFlags_NoResize = 'ImGuiColumnsFlags_NoResize',
  ImGuiColumnsFlags_NoPreserveWidths = 'ImGuiColumnsFlags_NoPreserveWidths',
  ImGuiColumnsFlags_NoForceWithinWindow = 'ImGuiColumnsFlags_NoForceWithinWindow'
}

-----------------------------------------------------------------
ImGuiSelectableFlagsPrivate_={
  ImGuiSelectableFlags_NoHoldingActiveID = 'ImGuiSelectableFlags_NoHoldingActiveID',
  ImGuiSelectableFlags_PressedOnClick = 'ImGuiSelectableFlags_PressedOnClick',
  ImGuiSelectableFlags_PressedOnRelease = 'ImGuiSelectableFlags_PressedOnRelease',
  ImGuiSelectableFlags_DrawFillAvailWidth = 'ImGuiSelectableFlags_DrawFillAvailWidth',
  ImGuiSelectableFlags_DrawHoveredWhenHeld = 'ImGuiSelectableFlags_DrawHoveredWhenHeld'
}

-----------------------------------------------------------------
ImGuiTreeNodeFlagsPrivate_={
}

-----------------------------------------------------------------
ImGuiSeparatorFlags_={
  ImGuiSeparatorFlags_None = 'ImGuiSeparatorFlags_None',
  ImGuiSeparatorFlags_Horizontal = 'ImGuiSeparatorFlags_Horizontal',
  ImGuiSeparatorFlags_Vertical = 'ImGuiSeparatorFlags_Vertical'
}

-----------------------------------------------------------------
ImGuiItemFlags_={
  ImGuiItemFlags_None = 'ImGuiItemFlags_None',
  ImGuiItemFlags_NoTabStop = 'ImGuiItemFlags_NoTabStop',
  ImGuiItemFlags_ButtonRepeat = 'ImGuiItemFlags_ButtonRepeat',
  ImGuiItemFlags_Disabled = 'ImGuiItemFlags_Disabled',
  ImGuiItemFlags_NoNav = 'ImGuiItemFlags_NoNav',
  ImGuiItemFlags_NoNavDefaultFocus = 'ImGuiItemFlags_NoNavDefaultFocus',
  ImGuiItemFlags_SelectableDontClosePopup = 'ImGuiItemFlags_SelectableDontClosePopup',
  ImGuiItemFlags_MixedValue = 'ImGuiItemFlags_MixedValue'
}

-----------------------------------------------------------------
ImGuiItemStatusFlags_={
  ImGuiItemStatusFlags_None = 'ImGuiItemStatusFlags_None',
  ImGuiItemStatusFlags_HoveredRect = 'ImGuiItemStatusFlags_HoveredRect',
  ImGuiItemStatusFlags_HasDisplayRect = 'ImGuiItemStatusFlags_HasDisplayRect',
  ImGuiItemStatusFlags_Edited = 'ImGuiItemStatusFlags_Edited',
  ImGuiItemStatusFlags_ToggledSelection = 'ImGuiItemStatusFlags_ToggledSelection',
  ImGuiItemStatusFlags_ToggledOpen = 'ImGuiItemStatusFlags_ToggledOpen',
  ImGuiItemStatusFlags_HasDeactivated = 'ImGuiItemStatusFlags_HasDeactivated'
}

-----------------------------------------------------------------
ImGuiTextFlags_={
  ImGuiTextFlags_None = 'ImGuiTextFlags_None'
}

-----------------------------------------------------------------
ImGuiLayoutType_={
  ImGuiLayoutType_Horizontal = 'ImGuiLayoutType_Horizontal'
}

-----------------------------------------------------------------
ImGuiLogType={
  ImGuiLogType_None = 'ImGuiLogType_None',
  ImGuiLogType_TTY = 'ImGuiLogType_TTY',
  ImGuiLogType_File = 'ImGuiLogType_File',
  ImGuiLogType_Buffer = 'ImGuiLogType_Buffer'
}

-----------------------------------------------------------------
ImGuiAxis={
  ImGuiAxis_None = 'ImGuiAxis_None',
  ImGuiAxis_X = 'ImGuiAxis_X'
}

-----------------------------------------------------------------
ImGuiPlotType={
  ImGuiPlotType_Lines = 'ImGuiPlotType_Lines'
}

-----------------------------------------------------------------
ImGuiInputSource={
  ImGuiInputSource_None = 'ImGuiInputSource_None',
  ImGuiInputSource_Mouse = 'ImGuiInputSource_Mouse',
  ImGuiInputSource_Nav = 'ImGuiInputSource_Nav',
  ImGuiInputSource_NavKeyboard = 'ImGuiInputSource_NavKeyboard',
  ImGuiInputSource_NavGamepad = 'ImGuiInputSource_NavGamepad'
}

-----------------------------------------------------------------
ImGuiInputReadMode={
  ImGuiInputReadMode_Down = 'ImGuiInputReadMode_Down',
  ImGuiInputReadMode_Pressed = 'ImGuiInputReadMode_Pressed',
  ImGuiInputReadMode_Released = 'ImGuiInputReadMode_Released',
  ImGuiInputReadMode_Repeat = 'ImGuiInputReadMode_Repeat',
  ImGuiInputReadMode_RepeatSlow = 'ImGuiInputReadMode_RepeatSlow'
}

-----------------------------------------------------------------
ImGuiNavHighlightFlags_={
  ImGuiNavHighlightFlags_None = 'ImGuiNavHighlightFlags_None',
  ImGuiNavHighlightFlags_TypeDefault = 'ImGuiNavHighlightFlags_TypeDefault',
  ImGuiNavHighlightFlags_TypeThin = 'ImGuiNavHighlightFlags_TypeThin',
  ImGuiNavHighlightFlags_AlwaysDraw = 'ImGuiNavHighlightFlags_AlwaysDraw'
}

-----------------------------------------------------------------
ImGuiNavDirSourceFlags_={
  ImGuiNavDirSourceFlags_None = 'ImGuiNavDirSourceFlags_None',
  ImGuiNavDirSourceFlags_Keyboard = 'ImGuiNavDirSourceFlags_Keyboard',
  ImGuiNavDirSourceFlags_PadDPad = 'ImGuiNavDirSourceFlags_PadDPad'
}

-----------------------------------------------------------------
ImGuiNavMoveFlags_={
  ImGuiNavMoveFlags_None = 'ImGuiNavMoveFlags_None',
  ImGuiNavMoveFlags_LoopX = 'ImGuiNavMoveFlags_LoopX',
  ImGuiNavMoveFlags_LoopY = 'ImGuiNavMoveFlags_LoopY',
  ImGuiNavMoveFlags_WrapX = 'ImGuiNavMoveFlags_WrapX',
  ImGuiNavMoveFlags_WrapY = 'ImGuiNavMoveFlags_WrapY',
  ImGuiNavMoveFlags_AllowCurrentNavId = 'ImGuiNavMoveFlags_AllowCurrentNavId',
  ImGuiNavMoveFlags_AlsoScoreVisibleSet = 'ImGuiNavMoveFlags_AlsoScoreVisibleSet'
}

-----------------------------------------------------------------
ImGuiNavForward={
  ImGuiNavForward_None = 'ImGuiNavForward_None',
  ImGuiNavForward_ForwardQueued = 'ImGuiNavForward_ForwardQueued'
}

-----------------------------------------------------------------
ImGuiNavLayer={
  ImGuiNavLayer_Main = 'ImGuiNavLayer_Main',
  ImGuiNavLayer_Menu = 'ImGuiNavLayer_Menu'
}

-----------------------------------------------------------------
ImGuiPopupPositionPolicy={
  ImGuiPopupPositionPolicy_Default = 'ImGuiPopupPositionPolicy_Default'
}

-----------------------------------------------------------------
--classes define
-----------------------------------------------------------------
---@class ImDrawData 
---@field public Valid boolean 
---@field public CmdListsCount number 
---@field public TotalIdxCount number 
---@field public TotalVtxCount number 
---@field public DisplayPos ImVec2 
---@field public DisplaySize ImVec2 
---@field public FramebufferScale ImVec2 
ImDrawData = ImDrawData or {}

---@return ImDrawData 
function ImDrawData:new() end 

---@return ImDrawData 
function ImDrawData:new_local() end 

function ImDrawData:delete() end 

function ImDrawData:Clear() end 

function ImDrawData:DeIndexAllBuffers() end 

---@param fb_scale ImVec2 
function ImDrawData:ScaleClipRects(fb_scale) end 


-----------------------------------------------------------------
---@class ImDrawList 
ImDrawList = ImDrawList or {}

---@param shared_data ImDrawListSharedData 
---@return ImDrawList 
function ImDrawList:new(shared_data) end 

---@param shared_data ImDrawListSharedData 
---@return ImDrawList 
function ImDrawList:new_local(shared_data) end 

function ImDrawList:delete() end 

---@param clip_rect_min ImVec2 
---@param clip_rect_max ImVec2 
---@param intersect_with_current_clip_rect boolean @default value:false 
function ImDrawList:PushClipRect(clip_rect_min, clip_rect_max, intersect_with_current_clip_rect) end 

function ImDrawList:PushClipRectFullScreen() end 

function ImDrawList:PopClipRect() end 

---@param texture_id ImTextureID 
function ImDrawList:PushTextureID(texture_id) end 

function ImDrawList:PopTextureID() end 

---@return ImVec2 
function ImDrawList:GetClipRectMin() end 

---@return ImVec2 
function ImDrawList:GetClipRectMax() end 

---@param p1 ImVec2 
---@param p2 ImVec2 
---@param col number 
---@param thickness number @default value:1.0f 
function ImDrawList:AddLine(p1, p2, col, thickness) end 

---@param p_min ImVec2 
---@param p_max ImVec2 
---@param col number 
---@param rounding number @default value:0.0f 
---@param ImDrawCornerFlags_rounding_corners number @default value:0xF 
---@param thickness number @default value:1.0f 
function ImDrawList:AddRect(p_min, p_max, col, rounding, ImDrawCornerFlags_rounding_corners, thickness) end 

---@param p_min ImVec2 
---@param p_max ImVec2 
---@param col number 
---@param rounding number @default value:0.0f 
---@param ImDrawCornerFlags_rounding_corners number @default value:0xF 
function ImDrawList:AddRectFilled(p_min, p_max, col, rounding, ImDrawCornerFlags_rounding_corners) end 

---@param p_min ImVec2 
---@param p_max ImVec2 
---@param col_upr_left number 
---@param col_upr_right number 
---@param col_bot_right number 
---@param col_bot_left number 
function ImDrawList:AddRectFilledMultiColor(p_min, p_max, col_upr_left, col_upr_right, col_bot_right, col_bot_left) end 

---@param p1 ImVec2 
---@param p2 ImVec2 
---@param p3 ImVec2 
---@param p4 ImVec2 
---@param col number 
---@param thickness number @default value:1.0f 
function ImDrawList:AddQuad(p1, p2, p3, p4, col, thickness) end 

---@param p1 ImVec2 
---@param p2 ImVec2 
---@param p3 ImVec2 
---@param p4 ImVec2 
---@param col number 
function ImDrawList:AddQuadFilled(p1, p2, p3, p4, col) end 

---@param p1 ImVec2 
---@param p2 ImVec2 
---@param p3 ImVec2 
---@param col number 
---@param thickness number @default value:1.0f 
function ImDrawList:AddTriangle(p1, p2, p3, col, thickness) end 

---@param p1 ImVec2 
---@param p2 ImVec2 
---@param p3 ImVec2 
---@param col number 
function ImDrawList:AddTriangleFilled(p1, p2, p3, col) end 

---@param center ImVec2 
---@param radius number 
---@param col number 
---@param num_segments number @default value:12 
---@param thickness number @default value:1.0f 
function ImDrawList:AddCircle(center, radius, col, num_segments, thickness) end 

---@param center ImVec2 
---@param radius number 
---@param col number 
---@param num_segments number @default value:12 
function ImDrawList:AddCircleFilled(center, radius, col, num_segments) end 

---@param pos ImVec2 
---@param col number 
---@param text_begin string 
---@param text_end string @default value:NULL 
function ImDrawList:AddText(pos, col, text_begin, text_end) end 

---@param font ImFont 
---@param font_size number 
---@param pos ImVec2 
---@param col number 
---@param text_begin string 
---@param text_end string @default value:NULL 
---@param wrap_width number @default value:0.0f 
---@param cpu_fine_clip_rect ImVec4 @default value:NULL 
function ImDrawList:AddText(font, font_size, pos, col, text_begin, text_end, wrap_width, cpu_fine_clip_rect) end 

---@param points ImVec2 
---@param num_points number 
---@param col number 
---@param closed boolean 
---@param thickness number 
function ImDrawList:AddPolyline(points, num_points, col, closed, thickness) end 

---@param points ImVec2 
---@param num_points number 
---@param col number 
function ImDrawList:AddConvexPolyFilled(points, num_points, col) end 

---@param pos0 ImVec2 
---@param cp0 ImVec2 
---@param cp1 ImVec2 
---@param pos1 ImVec2 
---@param col number 
---@param thickness number 
---@param num_segments number @default value:0 
function ImDrawList:AddBezierCurve(pos0, cp0, cp1, pos1, col, thickness, num_segments) end 

---@param user_texture_id ImTextureID 
---@param p_min ImVec2 
---@param p_max ImVec2 
---@param uv_min ImVec2 @default value:ImVec2(0,0) 
---@param uv_max ImVec2 @default value:ImVec2(1,1) 
---@param col number @default value:0xFFFFFFFF 
function ImDrawList:AddImage(user_texture_id, p_min, p_max, uv_min, uv_max, col) end 

---@param user_texture_id ImTextureID 
---@param p1 ImVec2 
---@param p2 ImVec2 
---@param p3 ImVec2 
---@param p4 ImVec2 
---@param uv1 ImVec2 @default value:ImVec2(0,0) 
---@param uv2 ImVec2 @default value:ImVec2(1,0) 
---@param uv3 ImVec2 @default value:ImVec2(1,1) 
---@param uv4 ImVec2 @default value:ImVec2(0,1) 
---@param col number @default value:0xFFFFFFFF 
function ImDrawList:AddImageQuad(user_texture_id, p1, p2, p3, p4, uv1, uv2, uv3, uv4, col) end 

---@param user_texture_id ImTextureID 
---@param p_min ImVec2 
---@param p_max ImVec2 
---@param uv_min ImVec2 
---@param uv_max ImVec2 
---@param col number 
---@param rounding number 
---@param ImDrawCornerFlags_rounding_corners number @default value:ImDrawCornerFlags_All 
function ImDrawList:AddImageRounded(user_texture_id, p_min, p_max, uv_min, uv_max, col, rounding, ImDrawCornerFlags_rounding_corners) end 

function ImDrawList:PathClear() end 

---@param pos ImVec2 
function ImDrawList:PathLineTo(pos) end 

---@param pos ImVec2 
function ImDrawList:PathLineToMergeDuplicate(pos) end 

---@param col number 
function ImDrawList:PathFillConvex(col) end 

---@param col number 
---@param closed boolean 
---@param thickness number @default value:1.0f 
function ImDrawList:PathStroke(col, closed, thickness) end 

---@param center ImVec2 
---@param radius number 
---@param a_min number 
---@param a_max number 
---@param num_segments number @default value:10 
function ImDrawList:PathArcTo(center, radius, a_min, a_max, num_segments) end 

---@param center ImVec2 
---@param radius number 
---@param a_min_of_12 number 
---@param a_max_of_12 number 
function ImDrawList:PathArcToFast(center, radius, a_min_of_12, a_max_of_12) end 

---@param p1 ImVec2 
---@param p2 ImVec2 
---@param p3 ImVec2 
---@param num_segments number @default value:0 
function ImDrawList:PathBezierCurveTo(p1, p2, p3, num_segments) end 

---@param rect_min ImVec2 
---@param rect_max ImVec2 
---@param rounding number @default value:0.0f 
---@param ImDrawCornerFlags_rounding_corners number @default value:0xF 
function ImDrawList:PathRect(rect_min, rect_max, rounding, ImDrawCornerFlags_rounding_corners) end 

function ImDrawList:AddDrawCmd() end 

---@param count number 
function ImDrawList:ChannelsSplit(count) end 

function ImDrawList:ChannelsMerge() end 

---@param n number 
function ImDrawList:ChannelsSetCurrent(n) end 

function ImDrawList:Clear() end 

function ImDrawList:ClearFreeMemory() end 

---@param idx_count number 
---@param vtx_count number 
function ImDrawList:PrimReserve(idx_count, vtx_count) end 

---@param a ImVec2 
---@param b ImVec2 
---@param col number 
function ImDrawList:PrimRect(a, b, col) end 

---@param a ImVec2 
---@param b ImVec2 
---@param uv_a ImVec2 
---@param uv_b ImVec2 
---@param col number 
function ImDrawList:PrimRectUV(a, b, uv_a, uv_b, col) end 

---@param a ImVec2 
---@param b ImVec2 
---@param c ImVec2 
---@param d ImVec2 
---@param uv_a ImVec2 
---@param uv_b ImVec2 
---@param uv_c ImVec2 
---@param uv_d ImVec2 
---@param col number 
function ImDrawList:PrimQuadUV(a, b, c, d, uv_a, uv_b, uv_c, uv_d, col) end 

---@param pos ImVec2 
---@param uv ImVec2 
---@param col number 
function ImDrawList:PrimWriteVtx(pos, uv, col) end 

---@param ImDrawIdx_idx number 
function ImDrawList:PrimWriteIdx(ImDrawIdx_idx) end 

---@param pos ImVec2 
---@param uv ImVec2 
---@param col number 
function ImDrawList:PrimVtx(pos, uv, col) end 

function ImDrawList:UpdateClipRect() end 

function ImDrawList:UpdateTextureID() end 


-----------------------------------------------------------------
---@class ImDrawListSharedData 
---@field public TexUvWhitePixel ImVec2 
---@field public Font ImFont 
---@field public FontSize number 
---@field public CurveTessellationTol number 
---@field public ClipRectFullscreen ImVec4 
---@field public InitialFlags number 
---@field public CircleVtx12[12] ImVec2 
ImDrawListSharedData = ImDrawListSharedData or {}

---@return ImDrawListSharedData 
function ImDrawListSharedData:new() end 

---@return ImDrawListSharedData 
function ImDrawListSharedData:new_local() end 


-----------------------------------------------------------------
---@class ImFont 
---@field public IndexAdvanceX ImVector<float> 
---@field public FallbackAdvanceX number 
---@field public FontSize number 
---@field public IndexLookup ImVector<uint16_t> 
---@field public Glyphs ImVector<ImFontGlyph> 
---@field public FallbackGlyph ImFontGlyph 
---@field public DisplayOffset ImVec2 
---@field public ContainerAtlas ImFontAtlas 
---@field public ConfigData ImFontConfig 
---@field public ConfigDataCount number 
---@field public FallbackChar number 
---@field public EllipsisChar number 
---@field public Scale number 
---@field public Ascent number 
---@field public Descent number 
---@field public MetricsTotalSurface number 
---@field public DirtyLookupTables boolean 
ImFont = ImFont or {}

---@return ImFont 
function ImFont:new() end 

---@return ImFont 
function ImFont:new_local() end 

function ImFont:delete() end 

---@param c number 
---@return ImFontGlyph 
function ImFont:FindGlyph(c) end 

---@param c number 
---@return ImFontGlyph 
function ImFont:FindGlyphNoFallback(c) end 

---@param c number 
---@return number 
function ImFont:GetCharAdvance(c) end 

---@return boolean 
function ImFont:IsLoaded() end 

---@return string 
function ImFont:GetDebugName() end 

---@param size number 
---@param max_width number 
---@param wrap_width number 
---@param text_begin string 
---@param text_end string @default value:NULL 
---@param remaining string @default value:NULL 
---@return ImVec2 
function ImFont:CalcTextSizeA(size, max_width, wrap_width, text_begin, text_end, remaining) end 

---@param scale number 
---@param text string 
---@param text_end string 
---@param wrap_width number 
---@return string 
function ImFont:CalcWordWrapPositionA(scale, text, text_end, wrap_width) end 

---@param draw_list ImDrawList 
---@param size number 
---@param pos ImVec2 
---@param col number 
---@param c number 
function ImFont:RenderChar(draw_list, size, pos, col, c) end 

---@param draw_list ImDrawList 
---@param size number 
---@param pos ImVec2 
---@param col number 
---@param clip_rect ImVec4 
---@param text_begin string 
---@param text_end string 
---@param wrap_width number @default value:0.0f 
---@param cpu_fine_clip boolean @default value:false 
function ImFont:RenderText(draw_list, size, pos, col, clip_rect, text_begin, text_end, wrap_width, cpu_fine_clip) end 

function ImFont:BuildLookupTable() end 

function ImFont:ClearOutputData() end 

---@param new_size number 
function ImFont:GrowIndex(new_size) end 

---@param c number 
---@param x0 number 
---@param y0 number 
---@param x1 number 
---@param y1 number 
---@param u0 number 
---@param v0 number 
---@param u1 number 
---@param v1 number 
---@param advance_x number 
function ImFont:AddGlyph(c, x0, y0, x1, y1, u0, v0, u1, v1, advance_x) end 

---@param dst number 
---@param src number 
---@param overwrite_dst boolean @default value:true 
function ImFont:AddRemapChar(dst, src, overwrite_dst) end 

---@param c number 
function ImFont:SetFallbackChar(c) end 


-----------------------------------------------------------------
---@class ImFontAtlas 
---@field public Locked boolean 
---@field public Flags number 
---@field public TexID ImTextureID 
---@field public TexDesiredWidth number 
---@field public TexGlyphPadding number 
---@field public TexWidth number 
---@field public TexHeight number 
---@field public TexUvScale ImVec2 
---@field public TexUvWhitePixel ImVec2 
---@field public CustomRectIds number[] 
ImFontAtlas = ImFontAtlas or {}

---@return ImFontAtlas 
function ImFontAtlas:new() end 

---@return ImFontAtlas 
function ImFontAtlas:new_local() end 

function ImFontAtlas:delete() end 

---@param font_cfg ImFontConfig 
---@return ImFont 
function ImFontAtlas:AddFont(font_cfg) end 

---@param font_cfg ImFontConfig @default value:NULL 
---@return ImFont 
function ImFontAtlas:AddFontDefault(font_cfg) end 

---@param filename string 
---@param size_pixels number 
---@param font_cfg ImFontConfig @default value:NULL 
---@param glyph_ranges ImWchar @default value:NULL 
---@return ImFont 
function ImFontAtlas:AddFontFromFileTTF(filename, size_pixels, font_cfg, glyph_ranges) end 

---@param font_data void 
---@param font_size number 
---@param size_pixels number 
---@param font_cfg ImFontConfig @default value:NULL 
---@param glyph_ranges ImWchar @default value:NULL 
---@return ImFont 
function ImFontAtlas:AddFontFromMemoryTTF(font_data, font_size, size_pixels, font_cfg, glyph_ranges) end 

---@param compressed_font_data void 
---@param compressed_font_size number 
---@param size_pixels number 
---@param font_cfg ImFontConfig @default value:NULL 
---@param glyph_ranges number @default value:NULL 
---@return ImFont 
function ImFontAtlas:AddFontFromMemoryCompressedTTF(compressed_font_data, compressed_font_size, size_pixels, font_cfg, glyph_ranges) end 

---@param compressed_font_data_base85 string 
---@param size_pixels number 
---@param font_cfg ImFontConfig @default value:NULL 
---@param glyph_ranges number @default value:NULL 
---@return ImFont 
function ImFontAtlas:AddFontFromMemoryCompressedBase85TTF(compressed_font_data_base85, size_pixels, font_cfg, glyph_ranges) end 

function ImFontAtlas:ClearInputData() end 

function ImFontAtlas:ClearTexData() end 

function ImFontAtlas:ClearFonts() end 

function ImFontAtlas:Clear() end 

---@param out_pixels string 
---@param out_width number 
---@param out_height number 
---@param out_bytes_per_pixel number @default value:NULL 
function ImFontAtlas:GetTexDataAsAlpha8(out_pixels, out_width, out_height, out_bytes_per_pixel) end 

---@param out_pixels string 
---@param out_width number 
---@param out_height number 
---@param out_bytes_per_pixel number @default value:NULL 
function ImFontAtlas:GetTexDataAsRGBA32(out_pixels, out_width, out_height, out_bytes_per_pixel) end 

---@return boolean 
function ImFontAtlas:IsBuilt() end 

---@param id void 
function ImFontAtlas:SetTexID(id) end 

---@return ImWchar 
function ImFontAtlas:GetGlyphRangesDefault() end 

---@return ImWchar 
function ImFontAtlas:GetGlyphRangesKorean() end 

---@return ImWchar 
function ImFontAtlas:GetGlyphRangesJapanese() end 

---@return ImWchar 
function ImFontAtlas:GetGlyphRangesChineseFull() end 

---@return ImWchar 
function ImFontAtlas:GetGlyphRangesChineseSimplifiedCommon() end 

---@return ImWchar 
function ImFontAtlas:GetGlyphRangesCyrillic() end 

---@return ImWchar 
function ImFontAtlas:GetGlyphRangesThai() end 

---@return ImWchar 
function ImFontAtlas:GetGlyphRangesVietnamese() end 

---@param id number 
---@param width number 
---@param height number 
---@return number 
function ImFontAtlas:AddCustomRectRegular(id, width, height) end 

---@param font ImFont 
---@param id number 
---@param width number 
---@param height number 
---@param advance_x number 
---@param offset ImVec2 @default value:ImVec2(0,0) 
---@return number 
function ImFontAtlas:AddCustomRectFontGlyph(font, id, width, height, advance_x, offset) end 

---@param index number 
---@return ImFontAtlasCustomRect 
function ImFontAtlas:GetCustomRectByIndex(index) end 

---@param rect ImFontAtlasCustomRect 
---@param out_uv_min ImVec2 
---@param out_uv_max ImVec2 
function ImFontAtlas:CalcCustomRectUV(rect, out_uv_min, out_uv_max) end 

---@param cursor ImGuiMouseCursor 
---@param out_offset ImVec2 
---@param out_size ImVec2 
---@param out_uv_border ImVec2[] 
---@param out_uv_fill ImVec2[] 
---@return boolean 
function ImFontAtlas:GetMouseCursorTexData(cursor, out_offset, out_size, out_uv_border, out_uv_fill) end 


-----------------------------------------------------------------
---@class ImFontAtlasCustomRect 
---@field public ID number 
---@field public Width number 
---@field public Height number 
---@field public X number 
---@field public Y number 
---@field public GlyphAdvanceX number 
---@field public GlyphOffset ImVec2 
---@field public Font ImFont 
ImFontAtlasCustomRect = ImFontAtlasCustomRect or {}

---@return ImFontAtlasCustomRect 
function ImFontAtlasCustomRect:new() end 

---@return ImFontAtlasCustomRect 
function ImFontAtlasCustomRect:new_local() end 

---@return boolean 
function ImFontAtlasCustomRect:IsPacked() end 

function ImFontAtlasCustomRect:delete() end 


-----------------------------------------------------------------
---@class ImFontConfig 
---@field public FontData void 
---@field public FontDataSize number 
---@field public FontDataOwnedByAtlas boolean 
---@field public FontNo number 
---@field public SizePixels number 
---@field public OversampleH number 
---@field public OversampleV number 
---@field public PixelSnapH boolean 
---@field public GlyphExtraSpacing ImVec2 
---@field public GlyphOffset ImVec2 
---@field public GlyphMinAdvanceX number 
---@field public GlyphMaxAdvanceX number 
---@field public MergeMode boolean 
---@field public RasterizerFlags number 
---@field public RasterizerMultiply number 
---@field public EllipsisChar number 
---@field public Name[40] string 
---@field public DstFont ImFont 
ImFontConfig = ImFontConfig or {}

---@return ImFontConfig 
function ImFontConfig:new() end 

---@return ImFontConfig 
function ImFontConfig:new_local() end 


-----------------------------------------------------------------
---@class ImFontGlyph 
---@field public Codepoint number 
---@field public AdvanceX number 
---@field public X0 number 
---@field public Y0 number 
---@field public X1 number 
---@field public Y1 number 
---@field public U0 number 
---@field public V0 number 
---@field public U1 number 
---@field public V1 number 
ImFontGlyph = ImFontGlyph or {}


-----------------------------------------------------------------
---@class ImGui 
ImGui = ImGui or {}

---@param shared_font_atlas ImFontAtlas @default value:NULL 
---@return ImGuiContext 
function ImGui.CreateContext(shared_font_atlas) end 

---@param ctx ImGuiContext @default value:NULL 
function ImGui.DestroyContext(ctx) end 

---@return ImGuiContext 
function ImGui.GetCurrentContext() end 

---@param ctx ImGuiContext 
function ImGui.SetCurrentContext(ctx) end 

---@param version_str string 
---@param sz_io number 
---@param sz_style number 
---@param sz_vec2 number 
---@param sz_vec4 number 
---@param sz_drawvert number 
---@param sz_drawidx number 
---@return boolean 
function ImGui.DebugCheckVersionAndDataLayout(version_str, sz_io, sz_style, sz_vec2, sz_vec4, sz_drawvert, sz_drawidx) end 

---@return ImGuiIO 
function ImGui.GetIO() end 

---@return ImGuiStyle 
function ImGui.GetStyle() end 

function ImGui.NewFrame() end 

function ImGui.EndFrame() end 

function ImGui.Render() end 

---@return ImDrawData 
function ImGui.GetDrawData() end 

---@param p_open boolean @default value:NULL 
function ImGui.ShowDemoWindow(p_open) end 

---@param p_open boolean @default value:NULL 
function ImGui.ShowAboutWindow(p_open) end 

---@param p_open boolean @default value:NULL 
function ImGui.ShowMetricsWindow(p_open) end 

---@param ref ImGuiStyle @default value:NULL 
function ImGui.ShowStyleEditor(ref) end 

---@param label string 
---@return boolean 
function ImGui.ShowStyleSelector(label) end 

---@param label string 
function ImGui.ShowFontSelector(label) end 

function ImGui.ShowUserGuide() end 

---@return string 
function ImGui.GetVersion() end 

---@param dst ImGuiStyle @default value:NULL 
function ImGui.StyleColorsDark(dst) end 

---@param dst ImGuiStyle @default value:NULL 
function ImGui.StyleColorsClassic(dst) end 

---@param dst ImGuiStyle @default value:NULL 
function ImGui.StyleColorsLight(dst) end 

---@param name string 
---@param p_open boolean @default value:NULL 
---@param ImGuiWindowFlags_flags number @default value:0 
---@return boolean 
function ImGui.Begin(name, p_open, ImGuiWindowFlags_flags) end 

function ImGui.End() end 

---@param str_id string 
---@param size ImVec2 @default value:ImVec2(0,0) 
---@param border boolean @default value:false 
---@param ImGuiWindowFlags_flags number @default value:0 
---@return boolean 
function ImGui.BeginChild(str_id, size, border, ImGuiWindowFlags_flags) end 

---@param id ImGuiID 
---@param size ImVec2 @default value:ImVec2(0,0) 
---@param border boolean @default value:false 
---@param ImGuiWindowFlags_flags number @default value:0 
---@return boolean 
function ImGui.BeginChild(id, size, border, ImGuiWindowFlags_flags) end 

function ImGui.EndChild() end 

---@return boolean 
function ImGui.IsWindowAppearing() end 

---@return boolean 
function ImGui.IsWindowCollapsed() end 

---@param ImGuiFocusedFlags_flags number @default value:0 
---@return boolean 
function ImGui.IsWindowFocused(ImGuiFocusedFlags_flags) end 

---@param ImGuiHoveredFlags_flags number @default value:0 
---@return boolean 
function ImGui.IsWindowHovered(ImGuiHoveredFlags_flags) end 

---@return ImDrawList 
function ImGui.GetWindowDrawList() end 

---@return ImVec2 
function ImGui.GetWindowPos() end 

---@return ImVec2 
function ImGui.GetWindowSize() end 

---@return number 
function ImGui.GetWindowWidth() end 

---@return number 
function ImGui.GetWindowHeight() end 

---@param pos ImVec2 
---@param ImGuiCond_cond number @default value:0 
---@param pivot ImVec2 @default value:ImVec2(0,0) 
function ImGui.SetNextWindowPos(pos, ImGuiCond_cond, pivot) end 

---@param size ImVec2 
---@param ImGuiCond_cond number @default value:0 
function ImGui.SetNextWindowSize(size, ImGuiCond_cond) end 

---@param size ImVec2 
function ImGui.SetNextWindowContentSize(size) end 

---@param collapsed boolean 
---@param ImGuiCond_cond number @default value:0 
function ImGui.SetNextWindowCollapsed(collapsed, ImGuiCond_cond) end 

function ImGui.SetNextWindowFocus() end 

---@param alpha number 
function ImGui.SetNextWindowBgAlpha(alpha) end 

---@param pos ImVec2 
---@param ImGuiCond_cond number @default value:0 
function ImGui.SetWindowPos(pos, ImGuiCond_cond) end 

---@param size ImVec2 
---@param ImGuiCond_cond number @default value:0 
function ImGui.SetWindowSize(size, ImGuiCond_cond) end 

---@param collapsed boolean 
---@param ImGuiCond_cond number @default value:0 
function ImGui.SetWindowCollapsed(collapsed, ImGuiCond_cond) end 

function ImGui.SetWindowFocus() end 

---@param scale number 
function ImGui.SetWindowFontScale(scale) end 

---@param name string 
---@param pos ImVec2 
---@param ImGuiCond_cond number @default value:0 
function ImGui.SetWindowPos(name, pos, ImGuiCond_cond) end 

---@param name string 
---@param size ImVec2 
---@param ImGuiCond_cond number @default value:0 
function ImGui.SetWindowSize(name, size, ImGuiCond_cond) end 

---@param name string 
---@param collapsed boolean 
---@param ImGuiCond_cond number @default value:0 
function ImGui.SetWindowCollapsed(name, collapsed, ImGuiCond_cond) end 

---@param name string 
function ImGui.SetWindowFocus(name) end 

---@return ImVec2 
function ImGui.GetContentRegionMax() end 

---@return ImVec2 
function ImGui.GetContentRegionAvail() end 

---@return ImVec2 
function ImGui.GetWindowContentRegionMin() end 

---@return ImVec2 
function ImGui.GetWindowContentRegionMax() end 

---@return number 
function ImGui.GetWindowContentRegionWidth() end 

---@return number 
function ImGui.GetScrollX() end 

---@return number 
function ImGui.GetScrollY() end 

---@return number 
function ImGui.GetScrollMaxX() end 

---@return number 
function ImGui.GetScrollMaxY() end 

---@param scroll_x number 
function ImGui.SetScrollX(scroll_x) end 

---@param scroll_y number 
function ImGui.SetScrollY(scroll_y) end 

---@param center_x_ratio number @default value:0.5f 
function ImGui.SetScrollHereX(center_x_ratio) end 

---@param center_y_ratio number @default value:0.5f 
function ImGui.SetScrollHereY(center_y_ratio) end 

---@param local_x number 
---@param center_x_ratio number @default value:0.5f 
function ImGui.SetScrollFromPosX(local_x, center_x_ratio) end 

---@param local_y number 
---@param center_y_ratio number @default value:0.5f 
function ImGui.SetScrollFromPosY(local_y, center_y_ratio) end 

---@param font ImFont 
function ImGui.PushFont(font) end 

function ImGui.PopFont() end 

---@param idx number 
---@param col number 
function ImGui.PushStyleColor(idx, col) end 

---@param idx number 
---@param col ImVec4 
function ImGui.PushStyleColor(idx, col) end 

---@param count number @default value:1 
function ImGui.PopStyleColor(count) end 

---@param idx number 
---@param val number 
function ImGui.PushStyleVar(idx, val) end 

---@param idx number 
---@param val ImVec2 
function ImGui.PushStyleVar(idx, val) end 

---@param count number @default value:1 
function ImGui.PopStyleVar(count) end 

---@param idx number 
---@return ImVec4 
function ImGui.GetStyleColorVec4(idx) end 

---@return ImFont 
function ImGui.GetFont() end 

---@return number 
function ImGui.GetFontSize() end 

---@return ImVec2 
function ImGui.GetFontTexUvWhitePixel() end 

---@param idx number 
---@param alpha_mul number @default value:1.0f 
---@return number 
function ImGui.GetColorU32(idx, alpha_mul) end 

---@param col ImVec4 
---@return number 
function ImGui.GetColorU32(col) end 

---@param col number 
---@return number 
function ImGui.GetColorU32(col) end 

---@param item_width number 
function ImGui.PushItemWidth(item_width) end 

function ImGui.PopItemWidth() end 

---@param item_width number 
function ImGui.SetNextItemWidth(item_width) end 

---@return number 
function ImGui.CalcItemWidth() end 

---@param wrap_local_pos_x number @default value:0.0f 
function ImGui.PushTextWrapPos(wrap_local_pos_x) end 

function ImGui.PopTextWrapPos() end 

---@param allow_keyboard_focus boolean 
function ImGui.PushAllowKeyboardFocus(allow_keyboard_focus) end 

function ImGui.PopAllowKeyboardFocus() end 

---@param bRepeat boolean 
function ImGui.PushButtonRepeat(bRepeat) end 

function ImGui.PopButtonRepeat() end 

function ImGui.Separator() end 

---@param offset_from_start_x number @default value:0.0f 
---@param spacing number @default value:-1.0f 
function ImGui.SameLine(offset_from_start_x, spacing) end 

function ImGui.NewLine() end 

function ImGui.Spacing() end 

---@param size ImVec2 
function ImGui.Dummy(size) end 

---@param indent_w number @default value:0.0f 
function ImGui.Indent(indent_w) end 

---@param indent_w number @default value:0.0f 
function ImGui.Unindent(indent_w) end 

function ImGui.BeginGroup() end 

function ImGui.EndGroup() end 

---@return ImVec2 
function ImGui.GetCursorPos() end 

---@return number 
function ImGui.GetCursorPosX() end 

---@return number 
function ImGui.GetCursorPosY() end 

---@param local_pos ImVec2 
function ImGui.SetCursorPos(local_pos) end 

---@param local_x number 
function ImGui.SetCursorPosX(local_x) end 

---@param local_y number 
function ImGui.SetCursorPosY(local_y) end 

---@return ImVec2 
function ImGui.GetCursorStartPos() end 

---@return ImVec2 
function ImGui.GetCursorScreenPos() end 

---@param pos ImVec2 
function ImGui.SetCursorScreenPos(pos) end 

function ImGui.AlignTextToFramePadding() end 

---@return number 
function ImGui.GetTextLineHeight() end 

---@return number 
function ImGui.GetTextLineHeightWithSpacing() end 

---@return number 
function ImGui.GetFrameHeight() end 

---@return number 
function ImGui.GetFrameHeightWithSpacing() end 

---@param str_id string 
function ImGui.PushID(str_id) end 

---@param str_id_begin string 
---@param str_id_end string 
function ImGui.PushID(str_id_begin, str_id_end) end 

---@param ptr_id void 
function ImGui.PushID(ptr_id) end 

---@param int_id number 
function ImGui.PushID(int_id) end 

function ImGui.PopID() end 

---@param str_id string 
---@return number 
function ImGui.GetID(str_id) end 

---@param str_id_begin string 
---@param str_id_end string 
---@return number 
function ImGui.GetID(str_id_begin, str_id_end) end 

---@param ptr_id void 
---@return number 
function ImGui.GetID(ptr_id) end 

---@param text string 
---@param text_end string @default value:NULL 
function ImGui.TextUnformatted(text, text_end) end 

---@param fmt string 
function ImGui.Text(fmt) end 

---@param col ImVec4 
---@param fmt string 
function ImGui.TextColored(col, fmt) end 

---@param fmt string 
function ImGui.TextDisabled(fmt) end 

---@param fmt string 
function ImGui.TextWrapped(fmt) end 

---@param label string 
---@param fmt string 
function ImGui.LabelText(label, fmt) end 

---@param fmt string 
function ImGui.BulletText(fmt) end 

---@param label string 
---@param size ImVec2 @default value:ImVec2(0,0) 
---@return boolean 
function ImGui.Button(label, size) end 

---@param label string 
---@return boolean 
function ImGui.SmallButton(label) end 

---@param str_id string 
---@param size ImVec2 
---@return boolean 
function ImGui.InvisibleButton(str_id, size) end 

---@param str_id string 
---@param dir number 
---@return boolean 
function ImGui.ArrowButton(str_id, dir) end 

---@param user_texture_id ImTextureID 
---@param size ImVec2 
---@param uv0 ImVec2 @default value:ImVec2(0,0) 
---@param uv1 ImVec2 @default value:ImVec2(1,1) 
---@param tint_col ImVec4 @default value:ImVec4(1,1,1,1) 
---@param border_col ImVec4 @default value:ImVec4(0,0,0,0) 
function ImGui.Image(user_texture_id, size, uv0, uv1, tint_col, border_col) end 

---@param user_texture_id ImTextureID 
---@param size ImVec2 
---@param uv0 ImVec2 @default value:ImVec2(0,0) 
---@param uv1 ImVec2 @default value:ImVec2(1,1) 
---@param frame_padding number @default value:-1 
---@param bg_col ImVec4 @default value:ImVec4(0,0,0,0) 
---@param tint_col ImVec4 @default value:ImVec4(1,1,1,1) 
---@return boolean 
function ImGui.ImageButton(user_texture_id, size, uv0, uv1, frame_padding, bg_col, tint_col) end 

---@param label string 
---@param v boolean 
---@return boolean 
function ImGui.Checkbox(label, v) end 

---@param label string 
---@param flags number 
---@param flags_value number 
---@return boolean 
function ImGui.CheckboxFlags(label, flags, flags_value) end 

---@param label string 
---@param active boolean 
---@return boolean 
function ImGui.RadioButton(label, active) end 

---@param label string 
---@param v number 
---@param v_button number 
---@return boolean 
function ImGui.RadioButton(label, v, v_button) end 

---@param fraction number 
---@param size_arg ImVec2 @default value:ImVec2(-1,0) 
---@param overlay string @default value:NULL 
function ImGui.ProgressBar(fraction, size_arg, overlay) end 

function ImGui.Bullet() end 

---@param label string 
---@param preview_value string 
---@param flags number @default value:0 
---@return boolean 
function ImGui.BeginCombo(label, preview_value, flags) end 

function ImGui.EndCombo() end 

---@param label string 
---@param current_item number 
---@param items string 
---@param items_count number 
---@param popup_max_height_in_items number @default value:-1 
---@return boolean 
function ImGui.Combo(label, current_item, items, items_count, popup_max_height_in_items) end 

---@param label string 
---@param current_item number 
---@param items_separated_by_zeros string 
---@param popup_max_height_in_items number @default value:-1 
---@return boolean 
function ImGui.Combo(label, current_item, items_separated_by_zeros, popup_max_height_in_items) end 

---@param label string 
---@param v number 
---@param v_speed number @default value:1.0f 
---@param v_min number @default value:0.0f 
---@param v_max number @default value:0.0f 
---@param format string @default value:"%.3f" 
---@param power number @default value:1.0f 
---@return boolean 
function ImGui.DragFloat(label, v, v_speed, v_min, v_max, format, power) end 

---@param label string 
---@param v number[] 
---@param v_speed number @default value:1.0f 
---@param v_min number @default value:0.0f 
---@param v_max number @default value:0.0f 
---@param format string @default value:"%.3f" 
---@param power number @default value:1.0f 
---@return boolean 
function ImGui.DragFloat2(label, v, v_speed, v_min, v_max, format, power) end 

---@param label string 
---@param v number[] 
---@param v_speed number @default value:1.0f 
---@param v_min number @default value:0.0f 
---@param v_max number @default value:0.0f 
---@param format string @default value:"%.3f" 
---@param power number @default value:1.0f 
---@return boolean 
function ImGui.DragFloat3(label, v, v_speed, v_min, v_max, format, power) end 

---@param label string 
---@param v number[] 
---@param v_speed number @default value:1.0f 
---@param v_min number @default value:0.0f 
---@param v_max number @default value:0.0f 
---@param format string @default value:"%.3f" 
---@param power number @default value:1.0f 
---@return boolean 
function ImGui.DragFloat4(label, v, v_speed, v_min, v_max, format, power) end 

---@param label string 
---@param v_current_min number 
---@param v_current_max number 
---@param v_speed number @default value:1.0f 
---@param v_min number @default value:0.0f 
---@param v_max number @default value:0.0f 
---@param format string @default value:"%.3f" 
---@param format_max string @default value:NULL 
---@param power number @default value:1.0f 
---@return boolean 
function ImGui.DragFloatRange2(label, v_current_min, v_current_max, v_speed, v_min, v_max, format, format_max, power) end 

---@param label string 
---@param v number 
---@param v_speed number @default value:1.0f 
---@param v_min number @default value:0 
---@param v_max number @default value:0 
---@param format string @default value:"%d" 
---@return boolean 
function ImGui.DragInt(label, v, v_speed, v_min, v_max, format) end 

---@param label string 
---@param v number[] 
---@param v_speed number @default value:1.0f 
---@param v_min number @default value:0 
---@param v_max number @default value:0 
---@param format string @default value:"%d" 
---@return boolean 
function ImGui.DragInt2(label, v, v_speed, v_min, v_max, format) end 

---@param label string 
---@param v number[] 
---@param v_speed number @default value:1.0f 
---@param v_min number @default value:0 
---@param v_max number @default value:0 
---@param format string @default value:"%d" 
---@return boolean 
function ImGui.DragInt3(label, v, v_speed, v_min, v_max, format) end 

---@param label string 
---@param v number[] 
---@param v_speed number @default value:1.0f 
---@param v_min number @default value:0 
---@param v_max number @default value:0 
---@param format string @default value:"%d" 
---@return boolean 
function ImGui.DragInt4(label, v, v_speed, v_min, v_max, format) end 

---@param label string 
---@param v_current_min number 
---@param v_current_max number 
---@param v_speed number @default value:1.0f 
---@param v_min number @default value:0 
---@param v_max number @default value:0 
---@param format string @default value:"%d" 
---@param format_max string @default value:NULL 
---@return boolean 
function ImGui.DragIntRange2(label, v_current_min, v_current_max, v_speed, v_min, v_max, format, format_max) end 

---@param label string 
---@param data_type number 
---@param p_data void 
---@param v_speed number 
---@param p_min void @default value:NULL 
---@param p_max void @default value:NULL 
---@param format string @default value:NULL 
---@param power number @default value:1.0f 
---@return boolean 
function ImGui.DragScalar(label, data_type, p_data, v_speed, p_min, p_max, format, power) end 

---@param label string 
---@param data_type number 
---@param p_data void 
---@param components number 
---@param v_speed number 
---@param p_min void @default value:NULL 
---@param p_max void @default value:NULL 
---@param format string @default value:NULL 
---@param power number @default value:1.0f 
---@return boolean 
function ImGui.DragScalarN(label, data_type, p_data, components, v_speed, p_min, p_max, format, power) end 

---@param label string 
---@param v number 
---@param v_min number 
---@param v_max number 
---@param format string @default value:"%.3f" 
---@param power number @default value:1.0f 
---@return boolean 
function ImGui.SliderFloat(label, v, v_min, v_max, format, power) end 

---@param label string 
---@param v number[] 
---@param v_min number 
---@param v_max number 
---@param format string @default value:"%.3f" 
---@param power number @default value:1.0f 
---@return boolean 
function ImGui.SliderFloat2(label, v, v_min, v_max, format, power) end 

---@param label string 
---@param v number[] 
---@param v_min number 
---@param v_max number 
---@param format string @default value:"%.3f" 
---@param power number @default value:1.0f 
---@return boolean 
function ImGui.SliderFloat3(label, v, v_min, v_max, format, power) end 

---@param label string 
---@param v number[] 
---@param v_min number 
---@param v_max number 
---@param format string @default value:"%.3f" 
---@param power number @default value:1.0f 
---@return boolean 
function ImGui.SliderFloat4(label, v, v_min, v_max, format, power) end 

---@param label string 
---@param v_rad number 
---@param v_degrees_min number @default value:-360.0f 
---@param v_degrees_max number @default value:+360.0f 
---@param format string @default value:"%.0f 
---@return boolean 
function ImGui.SliderAngle(label, v_rad, v_degrees_min, v_degrees_max, format) end 

---@param label string 
---@param v number 
---@param v_min number 
---@param v_max number 
---@param format string @default value:"%d" 
---@return boolean 
function ImGui.SliderInt(label, v, v_min, v_max, format) end 

---@param label string 
---@param v number[] 
---@param v_min number 
---@param v_max number 
---@param format string @default value:"%d" 
---@return boolean 
function ImGui.SliderInt2(label, v, v_min, v_max, format) end 

---@param label string 
---@param v number[] 
---@param v_min number 
---@param v_max number 
---@param format string @default value:"%d" 
---@return boolean 
function ImGui.SliderInt3(label, v, v_min, v_max, format) end 

---@param label string 
---@param v number[] 
---@param v_min number 
---@param v_max number 
---@param format string @default value:"%d" 
---@return boolean 
function ImGui.SliderInt4(label, v, v_min, v_max, format) end 

---@param label string 
---@param data_type number 
---@param p_data void 
---@param p_min void 
---@param p_max void 
---@param format string @default value:NULL 
---@param power number @default value:1.0f 
---@return boolean 
function ImGui.SliderScalar(label, data_type, p_data, p_min, p_max, format, power) end 

---@param label string 
---@param data_type number 
---@param p_data void 
---@param components number 
---@param p_min void 
---@param p_max void 
---@param format string @default value:NULL 
---@param power number @default value:1.0f 
---@return boolean 
function ImGui.SliderScalarN(label, data_type, p_data, components, p_min, p_max, format, power) end 

---@param label string 
---@param size ImVec2 
---@param v number 
---@param v_min number 
---@param v_max number 
---@param format string @default value:"%.3f" 
---@param power number @default value:1.0f 
---@return boolean 
function ImGui.VSliderFloat(label, size, v, v_min, v_max, format, power) end 

---@param label string 
---@param size ImVec2 
---@param v number 
---@param v_min number 
---@param v_max number 
---@param format string @default value:"%d" 
---@return boolean 
function ImGui.VSliderInt(label, size, v, v_min, v_max, format) end 

---@param label string 
---@param size ImVec2 
---@param data_type number 
---@param p_data void 
---@param p_min void 
---@param p_max void 
---@param format string @default value:NULL 
---@param power number @default value:1.0f 
---@return boolean 
function ImGui.VSliderScalar(label, size, data_type, p_data, p_min, p_max, format, power) end 

---@param label string 
---@param buf string 
---@param buf_size number 
---@param ImGuiInputTextFlags_flags number @default value:0 
---@return boolean 
function ImGui.InputText(label, buf, buf_size, ImGuiInputTextFlags_flags) end 

---@param label string 
---@param buf string 
---@param buf_size number 
---@param size ImVec2 @default value:ImVec2(0,0) 
---@param ImGuiInputTextFlags_flags number 
---@return boolean 
function ImGui.InputTextMultiline(label, buf, buf_size, size, ImGuiInputTextFlags_flags) end 

---@param label string 
---@param hint string 
---@param buf string 
---@param buf_size number 
---@param ImGuiInputTextFlags_flags number @default value:0 
---@return boolean 
function ImGui.InputTextWithHint(label, hint, buf, buf_size, ImGuiInputTextFlags_flags) end 

---@param label string 
---@param v number 
---@param step number @default value:0.0f 
---@param step_fast number @default value:0.0f 
---@param format string @default value:"%.3f" 
---@param ImGuiInputTextFlags_flags number 
---@return boolean 
function ImGui.InputFloat(label, v, step, step_fast, format, ImGuiInputTextFlags_flags) end 

---@param label string 
---@param v number[] 
---@param format string @default value:"%.3f" 
---@param ImGuiInputTextFlags_flags number 
---@return boolean 
function ImGui.InputFloat2(label, v, format, ImGuiInputTextFlags_flags) end 

---@param label string 
---@param v number[] 
---@param format string @default value:"%.3f" 
---@param ImGuiInputTextFlags_flags number @default value:0 
---@return boolean 
function ImGui.InputFloat3(label, v, format, ImGuiInputTextFlags_flags) end 

---@param label string 
---@param v number[] 
---@param format string @default value:"%.3f" 
---@param ImGuiInputTextFlags_flags number @default value:0 
---@return boolean 
function ImGui.InputFloat4(label, v, format, ImGuiInputTextFlags_flags) end 

---@param label string 
---@param v number 
---@param step number @default value:1 
---@param step_fast number @default value:100 
---@param ImGuiInputTextFlags_flags number @default value:0 
---@return boolean 
function ImGui.InputInt(label, v, step, step_fast, ImGuiInputTextFlags_flags) end 

---@param label string 
---@param v number[] 
---@param ImGuiInputTextFlags_flags number @default value:0 
---@return boolean 
function ImGui.InputInt2(label, v, ImGuiInputTextFlags_flags) end 

---@param label string 
---@param v number[] 
---@param ImGuiInputTextFlags_flags number @default value:0 
---@return boolean 
function ImGui.InputInt3(label, v, ImGuiInputTextFlags_flags) end 

---@param label string 
---@param v number[] 
---@param ImGuiInputTextFlags_flags number @default value:0 
---@return boolean 
function ImGui.InputInt4(label, v, ImGuiInputTextFlags_flags) end 

---@param label string 
---@param v number 
---@param step number @default value:0.0 
---@param step_fast number @default value:0.0 
---@param format string @default value:"%.6f" 
---@param ImGuiInputTextFlags_flags number 
---@return boolean 
function ImGui.InputDouble(label, v, step, step_fast, format, ImGuiInputTextFlags_flags) end 

---@param label string 
---@param ImGuiDataType_data_type number 
---@param p_data void 
---@param p_step void @default value:NULL 
---@param p_step_fast void @default value:NULL 
---@param format string @default value:NULL 
---@param ImGuiInputTextFlags_flags number @default value:0 
---@return boolean 
function ImGui.InputScalar(label, ImGuiDataType_data_type, p_data, p_step, p_step_fast, format, ImGuiInputTextFlags_flags) end 

---@param label string 
---@param ImGuiDataType_data_type number 
---@param p_data void 
---@param components number 
---@param p_step void @default value:NULL 
---@param p_step_fast void @default value:NULL 
---@param format string @default value:NULL 
---@param ImGuiInputTextFlags_flags number @default value:0 
---@return boolean 
function ImGui.InputScalarN(label, ImGuiDataType_data_type, p_data, components, p_step, p_step_fast, format, ImGuiInputTextFlags_flags) end 

---@param label string 
---@param col number[] 
---@param ImGuiColorEditFlags_flags number @default value:0 
---@return boolean 
function ImGui.ColorEdit3(label, col, ImGuiColorEditFlags_flags) end 

---@param label string 
---@param col number[] 
---@param ImGuiColorEditFlags_flags number @default value:0 
---@return boolean 
function ImGui.ColorEdit4(label, col, ImGuiColorEditFlags_flags) end 

---@param label string 
---@param col number[] 
---@param ImGuiColorEditFlags_flags number @default value:0 
---@return boolean 
function ImGui.ColorPicker3(label, col, ImGuiColorEditFlags_flags) end 

---@param label string 
---@param col number[] 
---@param ImGuiColorEditFlags_flags number @default value:0 
---@param ref_col number @default value:NULL 
---@return boolean 
function ImGui.ColorPicker4(label, col, ImGuiColorEditFlags_flags, ref_col) end 

---@param desc_id string 
---@param col ImVec4 
---@param ImGuiColorEditFlags_flags number @default value:0 
---@param size ImVec2 @default value:ImVec2(0,0) 
---@return boolean 
function ImGui.ColorButton(desc_id, col, ImGuiColorEditFlags_flags, size) end 

---@param ImGuiColorEditFlags_flags number 
function ImGui.SetColorEditOptions(ImGuiColorEditFlags_flags) end 

---@param label string 
---@return boolean 
function ImGui.TreeNode(label) end 

---@param str_id string 
---@param fmt string 
---@return boolean 
function ImGui.TreeNode(str_id, fmt) end 

---@param ptr_id void 
---@param fmt string 
---@return boolean 
function ImGui.TreeNode(ptr_id, fmt) end 

---@param label string 
---@param ImGuiTreeNodeFlags_flags number @default value:0 
---@return boolean 
function ImGui.TreeNodeEx(label, ImGuiTreeNodeFlags_flags) end 

---@param str_id string 
---@param ImGuiTreeNodeFlags_flags number 
---@param fmt string 
---@return boolean 
function ImGui.TreeNodeEx(str_id, ImGuiTreeNodeFlags_flags, fmt) end 

---@param ptr_id void 
---@param ImGuiTreeNodeFlags_flags number 
---@param fmt string 
---@return boolean 
function ImGui.TreeNodeEx(ptr_id, ImGuiTreeNodeFlags_flags, fmt) end 

---@param str_id string 
function ImGui.TreePush(str_id) end 

---@param ptr_id void @default value:NULL 
function ImGui.TreePush(ptr_id) end 

function ImGui.TreePop() end 

---@return number 
function ImGui.GetTreeNodeToLabelSpacing() end 

---@param label string 
---@param ImGuiTreeNodeFlags_flags number @default value:0 
---@return boolean 
function ImGui.CollapsingHeader(label, ImGuiTreeNodeFlags_flags) end 

---@param label string 
---@param p_open boolean 
---@param ImGuiTreeNodeFlags_flags number @default value:0 
---@return boolean 
function ImGui.CollapsingHeader(label, p_open, ImGuiTreeNodeFlags_flags) end 

---@param is_open boolean 
---@param ImGuiCond_cond number @default value:0 
function ImGui.SetNextItemOpen(is_open, ImGuiCond_cond) end 

---@param label string 
---@param selected boolean @default value:false 
---@param ImGuiSelectableFlags_flags number @default value:0 
---@param size ImVec2 @default value:ImVec2(0,0) 
---@return boolean 
function ImGui.Selectable(label, selected, ImGuiSelectableFlags_flags, size) end 

---@param label string 
---@param p_selected boolean 
---@param ImGuiSelectableFlags_flags number @default value:0 
---@param size ImVec2 @default value:ImVec2(0,0) 
---@return boolean 
function ImGui.Selectable(label, p_selected, ImGuiSelectableFlags_flags, size) end 

---@param label string 
---@param current_item number 
---@param items_separated_by_zeros string 
---@param popup_max_height_in_items number @default value:-1 
---@return boolean 
function ImGui.ListBox(label, current_item, items_separated_by_zeros, popup_max_height_in_items) end 

---@param label string 
---@param current_item number 
---@param items string 
---@param items_count number 
---@param height_in_items number @default value:-1 
---@return boolean 
function ImGui.ListBox(label, current_item, items, items_count, height_in_items) end 

---@param label string 
---@param size ImVec2 @default value:ImVec2(0,0) 
---@return boolean 
function ImGui.ListBoxHeader(label, size) end 

---@param label string 
---@param items_count number 
---@param height_in_items number @default value:-1 
---@return boolean 
function ImGui.ListBoxHeader(label, items_count, height_in_items) end 

function ImGui.ListBoxFooter() end 

---@param label string 
---@param values number[] 
---@param values_count number 
---@param values_offset number @default value:0 
---@param overlay_text string @default value:NULL 
---@param scale_min number @default value:FLT_MAX 
---@param scale_max number @default value:FLT_MAX 
---@param graph_size ImVec2 @default value:ImVec2(0,0) 
---@param stride number @default value:4 
function ImGui.PlotLines(label, values, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size, stride) end 

---@param prefix string 
---@param b boolean 
function ImGui.Value(prefix, b) end 

---@param prefix string 
---@param v number 
function ImGui.Value(prefix, v) end 

---@param prefix string 
---@param v number 
function ImGui.Value(prefix, v) end 

---@param prefix string 
---@param v number 
---@param float_format string @default value:NULL 
function ImGui.Value(prefix, v, float_format) end 

---@return boolean 
function ImGui.BeginMenuBar() end 

function ImGui.EndMenuBar() end 

---@return boolean 
function ImGui.BeginMainMenuBar() end 

function ImGui.EndMainMenuBar() end 

---@param label string 
---@param enabled boolean @default value:true 
---@return boolean 
function ImGui.BeginMenu(label, enabled) end 

function ImGui.EndMenu() end 

---@param label string 
---@param shortcut string @default value:NULL 
---@param selected boolean @default value:false 
---@param enabled boolean @default value:true 
---@return boolean 
function ImGui.MenuItem(label, shortcut, selected, enabled) end 

---@param label string 
---@param shortcut string 
---@param p_selected boolean 
---@param enabled boolean @default value:true 
---@return boolean 
function ImGui.MenuItem(label, shortcut, p_selected, enabled) end 

function ImGui.BeginTooltip() end 

function ImGui.EndTooltip() end 

---@param fmt string 
function ImGui.SetTooltip(fmt) end 

---@param str_id string 
function ImGui.OpenPopup(str_id) end 

---@param str_id string 
---@param ImGuiWindowFlags_flags number @default value:0 
---@return boolean 
function ImGui.BeginPopup(str_id, ImGuiWindowFlags_flags) end 

---@param str_id string @default value:NULL 
---@param ImGuiMouseButton_mouse_button number @default value:1 
---@return boolean 
function ImGui.BeginPopupContextItem(str_id, ImGuiMouseButton_mouse_button) end 

---@param str_id string @default value:NULL 
---@param ImGuiMouseButton_mouse_button number @default value:1 
---@param also_over_items boolean @default value:true 
---@return boolean 
function ImGui.BeginPopupContextWindow(str_id, ImGuiMouseButton_mouse_button, also_over_items) end 

---@param str_id string @default value:NULL 
---@param ImGuiMouseButton_mouse_button number @default value:1 
---@return boolean 
function ImGui.BeginPopupContextVoid(str_id, ImGuiMouseButton_mouse_button) end 

---@param name string 
---@param p_open boolean @default value:NULL 
---@param ImGuiWindowFlags_flags number @default value:0 
---@return boolean 
function ImGui.BeginPopupModal(name, p_open, ImGuiWindowFlags_flags) end 

function ImGui.EndPopup() end 

---@param str_id string @default value:NULL 
---@param ImGuiMouseButton_mouse_button number @default value:1 
---@return boolean 
function ImGui.OpenPopupOnItemClick(str_id, ImGuiMouseButton_mouse_button) end 

---@param str_id string 
---@return boolean 
function ImGui.IsPopupOpen(str_id) end 

function ImGui.CloseCurrentPopup() end 

---@param count number @default value:1 
---@param id string @default value:NULL 
---@param border boolean @default value:true 
function ImGui.Columns(count, id, border) end 

function ImGui.NextColumn() end 

---@return number 
function ImGui.GetColumnIndex() end 

---@param column_index number @default value:-1 
---@return number 
function ImGui.GetColumnWidth(column_index) end 

---@param column_index number 
---@param width number 
function ImGui.SetColumnWidth(column_index, width) end 

---@param column_index number @default value:-1 
---@return number 
function ImGui.GetColumnOffset(column_index) end 

---@param column_index number 
---@param offset_x number 
function ImGui.SetColumnOffset(column_index, offset_x) end 

---@return number 
function ImGui.GetColumnsCount() end 

---@param str_id string 
---@param ImGuiTabBarFlags_flags number @default value:0 
---@return boolean 
function ImGui.BeginTabBar(str_id, ImGuiTabBarFlags_flags) end 

function ImGui.EndTabBar() end 

---@param label string 
---@param p_open boolean @default value:NULL 
---@param ImGuiTabItemFlags_flags number @default value:0 
---@return boolean 
function ImGui.BeginTabItem(label, p_open, ImGuiTabItemFlags_flags) end 

function ImGui.EndTabItem() end 

---@param tab_or_docked_window_label string 
function ImGui.SetTabItemClosed(tab_or_docked_window_label) end 

---@param auto_open_depth number @default value:-1 
function ImGui.LogToTTY(auto_open_depth) end 

---@param auto_open_depth number @default value:-1 
---@param filename string @default value:NULL 
function ImGui.LogToFile(auto_open_depth, filename) end 

---@param auto_open_depth number @default value:-1 
function ImGui.LogToClipboard(auto_open_depth) end 

function ImGui.LogFinish() end 

function ImGui.LogButtons() end 

---@param fmt string 
function ImGui.LogText(fmt) end 

---@param ImGuiDragDropFlags_flags number @default value:0 
---@return boolean 
function ImGui.BeginDragDropSource(ImGuiDragDropFlags_flags) end 

---@param type string 
---@param data void 
---@param sz number 
---@param ImGuiCond_cond number @default value:0 
---@return boolean 
function ImGui.SetDragDropPayload(type, data, sz, ImGuiCond_cond) end 

function ImGui.EndDragDropSource() end 

---@return boolean 
function ImGui.BeginDragDropTarget() end 

---@param type string 
---@param ImGuiDragDropFlags_flags number @default value:0 
---@return ImGuiPayload 
function ImGui.AcceptDragDropPayload(type, ImGuiDragDropFlags_flags) end 

function ImGui.EndDragDropTarget() end 

---@return ImGuiPayload 
function ImGui.GetDragDropPayload() end 

---@param clip_rect_min ImVec2 
---@param clip_rect_max ImVec2 
---@param intersect_with_current_clip_rect boolean 
function ImGui.PushClipRect(clip_rect_min, clip_rect_max, intersect_with_current_clip_rect) end 

function ImGui.PopClipRect() end 

function ImGui.SetItemDefaultFocus() end 

---@param offset number @default value:0 
function ImGui.SetKeyboardFocusHere(offset) end 

---@param ImGuiHoveredFlags_flags number @default value:0 
---@return boolean 
function ImGui.IsItemHovered(ImGuiHoveredFlags_flags) end 

---@return boolean 
function ImGui.IsItemActive() end 

---@return boolean 
function ImGui.IsItemFocused() end 

---@param ImGuiMouseButton_mouse_button number @default value:0 
---@return boolean 
function ImGui.IsItemClicked(ImGuiMouseButton_mouse_button) end 

---@return boolean 
function ImGui.IsItemVisible() end 

---@return boolean 
function ImGui.IsItemEdited() end 

---@return boolean 
function ImGui.IsItemActivated() end 

---@return boolean 
function ImGui.IsItemDeactivated() end 

---@return boolean 
function ImGui.IsItemDeactivatedAfterEdit() end 

---@return boolean 
function ImGui.IsItemToggledOpen() end 

---@return boolean 
function ImGui.IsAnyItemHovered() end 

---@return boolean 
function ImGui.IsAnyItemActive() end 

---@return boolean 
function ImGui.IsAnyItemFocused() end 

---@return ImVec2 
function ImGui.GetItemRectMin() end 

---@return ImVec2 
function ImGui.GetItemRectMax() end 

---@return ImVec2 
function ImGui.GetItemRectSize() end 

function ImGui.SetItemAllowOverlap() end 

---@param size ImVec2 
---@return boolean 
function ImGui.IsRectVisible(size) end 

---@param rect_min ImVec2 
---@param rect_max ImVec2 
---@return boolean 
function ImGui.IsRectVisible(rect_min, rect_max) end 

---@return number 
function ImGui.GetTime() end 

---@return number 
function ImGui.GetFrameCount() end 

---@return ImDrawList 
function ImGui.GetBackgroundDrawList() end 

---@return ImDrawList 
function ImGui.GetForegroundDrawList() end 

---@return ImDrawListSharedData 
function ImGui.GetDrawListSharedData() end 

---@param ImGuiCol_idx number 
---@return string 
function ImGui.GetStyleColorName(ImGuiCol_idx) end 

---@param storage ImGuiStorage 
function ImGui.SetStateStorage(storage) end 

---@return ImGuiStorage 
function ImGui.GetStateStorage() end 

---@param text string 
---@param text_end string @default value:NULL 
---@param hide_text_after_double_hash boolean @default value:false 
---@param wrap_width number @default value:-1.0f 
---@return ImVec2 
function ImGui.CalcTextSize(text, text_end, hide_text_after_double_hash, wrap_width) end 

---@param items_count number 
---@param items_height number 
---@param out_items_display_start number 
---@param out_items_display_end number 
function ImGui.CalcListClipping(items_count, items_height, out_items_display_start, out_items_display_end) end 

---@param ImGuiID_id number 
---@param size ImVec2 
---@param ImGuiWindowFlags_flags number @default value:0 
---@return boolean 
function ImGui.BeginChildFrame(ImGuiID_id, size, ImGuiWindowFlags_flags) end 

---@param u32 number 
---@return ImVec4 
function ImGui.ColorConvertU32ToFloat4(u32) end 

---@param v4 ImVec4 
---@return number 
function ImGui.ColorConvertFloat4ToU32(v4) end 

---@param r number 
---@param g number 
---@param b number 
---@param out_h number 
---@param out_s number 
---@param out_v number 
function ImGui.ColorConvertRGBtoHSV(r, g, b, out_h, out_s, out_v) end 

---@param h number 
---@param s number 
---@param v number 
---@param out_r number 
---@param out_g number 
---@param out_b number 
function ImGui.ColorConvertHSVtoRGB(h, s, v, out_r, out_g, out_b) end 

---@param ImGuiKey_imgui_key number 
---@return number 
function ImGui.GetKeyIndex(ImGuiKey_imgui_key) end 

---@param user_key_index number 
---@return boolean 
function ImGui.IsKeyDown(user_key_index) end 

---@param user_key_index number 
---@param bRepeat boolean @default value:true 
---@return boolean 
function ImGui.IsKeyPressed(user_key_index, bRepeat) end 

---@param user_key_index number 
---@return boolean 
function ImGui.IsKeyReleased(user_key_index) end 

---@param key_index number 
---@param repeat_delay number 
---@param rate number 
---@return number 
function ImGui.GetKeyPressedAmount(key_index, repeat_delay, rate) end 

---@param want_capture_keyboard_value boolean @default value:true 
function ImGui.CaptureKeyboardFromApp(want_capture_keyboard_value) end 

---@param ImGuiMouseButton_button number 
---@return boolean 
function ImGui.IsMouseDown(ImGuiMouseButton_button) end 

---@param ImGuiMouseButton_button number 
---@param bRepeat boolean @default value:false 
---@return boolean 
function ImGui.IsMouseClicked(ImGuiMouseButton_button, bRepeat) end 

---@param ImGuiMouseButton_button number 
---@return boolean 
function ImGui.IsMouseReleased(ImGuiMouseButton_button) end 

---@param ImGuiMouseButton_button number 
---@return boolean 
function ImGui.IsMouseDoubleClicked(ImGuiMouseButton_button) end 

---@param r_min ImVec2 
---@param r_max ImVec2 
---@param clip boolean @default value:true 
---@return boolean 
function ImGui.IsMouseHoveringRect(r_min, r_max, clip) end 

---@param mouse_pos ImVec2 @default value:NULL 
---@return boolean 
function ImGui.IsMousePosValid(mouse_pos) end 

---@return boolean 
function ImGui.IsAnyMouseDown() end 

---@return ImVec2 
function ImGui.GetMousePos() end 

---@return ImVec2 
function ImGui.GetMousePosOnOpeningCurrentPopup() end 

---@param ImGuiMouseButton_button number 
---@param lock_threshold number @default value:-1.0f 
---@return boolean 
function ImGui.IsMouseDragging(ImGuiMouseButton_button, lock_threshold) end 

---@param ImGuiMouseButton_button number @default value:0 
---@param lock_threshold number @default value:-1.0f 
---@return ImVec2 
function ImGui.GetMouseDragDelta(ImGuiMouseButton_button, lock_threshold) end 

---@param ImGuiMouseButton_button number @default value:0 
function ImGui.ResetMouseDragDelta(ImGuiMouseButton_button) end 

---@return number 
function ImGui.GetMouseCursor() end 

---@param ImGuiMouseCursor_cursor_type number 
function ImGui.SetMouseCursor(ImGuiMouseCursor_cursor_type) end 

---@param want_capture_mouse_value boolean @default value:true 
function ImGui.CaptureMouseFromApp(want_capture_mouse_value) end 

---@return string 
function ImGui.GetClipboardText() end 

---@param text string 
function ImGui.SetClipboardText(text) end 

---@param ini_filename string 
function ImGui.LoadIniSettingsFromDisk(ini_filename) end 

---@param ini_data string 
---@param ini_size number @default value:0 
function ImGui.LoadIniSettingsFromMemory(ini_data, ini_size) end 

---@param ini_filename string 
function ImGui.SaveIniSettingsToDisk(ini_filename) end 

---@param out_ini_size number @default value:NULL 
---@return string 
function ImGui.SaveIniSettingsToMemory(out_ini_size) end 

---@param size number 
function ImGui.MemAlloc(size) end 

---@param ptr void 
function ImGui.MemFree(ptr) end 

---@param ptr void 
---@return ImTextureID 
function ImGui.ToTextureId(ptr) end 


-----------------------------------------------------------------
---@class ImGuiColumns 
---@field public ID number 
---@field public Flags number 
---@field public IsFirstFrame boolean 
---@field public IsBeingResized boolean 
---@field public Current number 
---@field public Count number 
---@field public HostCursorPosY number 
---@field public HostCursorMaxPosX number 
---@field public HostClipRect ImRect 
---@field public HostWorkRect ImRect 
---@field public Columns ImVector<ImGuiColumnData> 
ImGuiColumns = ImGuiColumns or {}

---@return ImGuiColumns 
function ImGuiColumns:new() end 

---@return ImGuiColumns 
function ImGuiColumns:new_local() end 

function ImGuiColumns:Clear() end 


-----------------------------------------------------------------
---@class ImGuiContext 
---@field public Initialized boolean 
---@field public FontAtlasOwnedByContext boolean 
---@field public IO ImGuiIO 
---@field public Style ImGuiStyle 
---@field public Font ImFont 
---@field public FontSize number 
---@field public FontBaseSize number 
---@field public DrawListSharedData ImDrawListSharedData 
---@field public Time number 
---@field public FrameCount number 
---@field public FrameCountEnded number 
---@field public FrameCountRendered number 
---@field public WithinFrameScope boolean 
---@field public WithinFrameScopeWithImplicitWindow boolean 
---@field public WithinEndChild boolean 
---@field public WindowsById ImGuiStorage 
---@field public WindowsActiveCount number 
---@field public CurrentWindow ImGuiWindow 
---@field public HoveredWindow ImGuiWindow 
---@field public HoveredRootWindow ImGuiWindow 
---@field public MovingWindow ImGuiWindow 
---@field public WheelingWindow ImGuiWindow 
---@field public WheelingWindowRefMousePos ImVec2 
---@field public WheelingWindowTimer number 
---@field public HoveredId number 
---@field public HoveredIdAllowOverlap boolean 
---@field public HoveredIdPreviousFrame number 
---@field public HoveredIdTimer number 
---@field public HoveredIdNotActiveTimer number 
---@field public ActiveId number 
---@field public ActiveIdIsAlive number 
---@field public ActiveIdTimer number 
---@field public ActiveIdIsJustActivated boolean 
---@field public ActiveIdAllowOverlap boolean 
---@field public ActiveIdHasBeenPressedBefore boolean 
---@field public ActiveIdHasBeenEditedBefore boolean 
---@field public ActiveIdHasBeenEditedThisFrame boolean 
---@field public ActiveIdUsingNavDirMask number 
---@field public ActiveIdUsingNavInputMask number 
---@field public ActiveIdUsingKeyInputMask number 
---@field public ActiveIdClickOffset ImVec2 
---@field public ActiveIdWindow ImGuiWindow 
---@field public ActiveIdSource ImGuiInputSource 
---@field public ActiveIdPreviousFrame number 
---@field public ActiveIdPreviousFrameIsAlive boolean 
---@field public ActiveIdPreviousFrameHasBeenEditedBefore boolean 
---@field public ActiveIdPreviousFrameWindow ImGuiWindow 
---@field public LastActiveId number 
---@field public LastActiveIdTimer number 
---@field public NavWindow ImGuiWindow 
---@field public NavId number 
---@field public NavActivateId number 
---@field public NavActivateDownId number 
---@field public NavActivatePressedId number 
---@field public NavInputId number 
---@field public NavJustTabbedId number 
---@field public NavJustMovedToId number 
---@field public NavJustMovedToMultiSelectScopeId number 
---@field public NavNextActivateId number 
---@field public NavInputSource ImGuiInputSource 
---@field public NavScoringRectScreen ImRect 
---@field public NavScoringCount number 
---@field public NavWindowingTarget ImGuiWindow 
---@field public NavWindowingTargetAnim ImGuiWindow 
---@field public NavWindowingList ImGuiWindow 
---@field public NavWindowingTimer number 
---@field public NavWindowingHighlightAlpha number 
---@field public NavWindowingToggleLayer boolean 
---@field public NavLayer ImGuiNavLayer 
---@field public NavIdTabCounter number 
---@field public NavIdIsAlive boolean 
---@field public NavMousePosDirty boolean 
---@field public NavDisableHighlight boolean 
---@field public NavDisableMouseHover boolean 
---@field public NavAnyRequest boolean 
---@field public NavInitRequest boolean 
---@field public NavInitRequestFromMove boolean 
---@field public NavInitResultId number 
---@field public NavInitResultRectRel ImRect 
---@field public NavMoveFromClampedRefRect boolean 
---@field public NavMoveRequest boolean 
---@field public NavMoveRequestFlags number 
---@field public NavMoveRequestForward ImGuiNavForward 
---@field public NavMoveClipDir number 
---@field public NavMoveResultLocal ImGuiNavMoveResult 
---@field public NavMoveResultLocalVisibleSet ImGuiNavMoveResult 
---@field public NavMoveResultOther ImGuiNavMoveResult 
---@field public FocusRequestCurrWindow ImGuiWindow 
---@field public FocusRequestNextWindow ImGuiWindow 
---@field public FocusRequestCurrCounterAll number 
---@field public FocusRequestCurrCounterTab number 
---@field public FocusRequestNextCounterAll number 
---@field public FocusRequestNextCounterTab number 
---@field public FocusTabPressed boolean 
---@field public DimBgRatio number 
---@field public BackgroundDrawList ImDrawList 
---@field public ForegroundDrawList ImDrawList 
---@field public MouseCursor number 
---@field public DragDropActive boolean 
---@field public DragDropWithinSourceOrTarget boolean 
---@field public DragDropSourceFlags number 
---@field public DragDropSourceFrameCount number 
---@field public DragDropMouseButton number 
---@field public DragDropPayload ImGuiPayload 
---@field public DragDropTargetRect ImRect 
---@field public DragDropTargetId number 
---@field public DragDropAcceptFlags number 
---@field public DragDropAcceptIdCurrRectSurface number 
---@field public DragDropAcceptIdCurr number 
---@field public DragDropAcceptIdPrev number 
---@field public DragDropAcceptFrameCount number 
---@field public DragDropPayloadBufLocal[16] number 
---@field public CurrentTabBar ImGuiTabBar 
---@field public LastValidMousePos ImVec2 
---@field public InputTextState ImGuiInputTextState 
---@field public InputTextPasswordFont ImFont 
---@field public TempInputTextId number 
---@field public ColorEditOptions number 
---@field public ColorEditLastHue number 
---@field public ColorEditLastColor number[] 
---@field public ColorPickerRef ImVec4 
---@field public DragCurrentAccumDirty boolean 
---@field public DragCurrentAccum number 
---@field public DragSpeedDefaultRatio number 
---@field public ScrollbarClickDeltaToGrabCenter number 
---@field public TooltipOverrideCount number 
---@field public MultiSelectScopeId number 
---@field public PlatformImePos ImVec2 
---@field public PlatformImeLastPos ImVec2 
---@field public SettingsLoaded boolean 
---@field public SettingsDirtyTimer number 
---@field public LogEnabled boolean 
---@field public LogType ImGuiLogType 
---@field public LogLinePosY number 
---@field public LogLineFirstItem boolean 
---@field public LogDepthRef number 
---@field public LogDepthToExpand number 
---@field public LogDepthToExpandDefault number 
---@field public DebugItemPickerActive boolean 
---@field public DebugItemPickerBreakID number 
---@field public FramerateSecPerFrame[120] number 
---@field public FramerateSecPerFrameIdx number 
---@field public FramerateSecPerFrameAccum number 
---@field public WantCaptureMouseNextFrame number 
---@field public WantCaptureKeyboardNextFrame number 
---@field public WantTextInputNextFrame number 
---@field public TempBuffer[3073] string 
ImGuiContext = ImGuiContext or {}


-----------------------------------------------------------------
---@class ImGuiGroupData 
---@field public BackupCursorPos ImVec2 
---@field public BackupCursorMaxPos ImVec2 
---@field public BackupIndent ImVec1 
---@field public BackupGroupOffset ImVec1 
---@field public BackupCurrLineSize ImVec2 
---@field public BackupCurrLineTextBaseOffset number 
---@field public BackupActiveIdIsAlive number 
---@field public BackupActiveIdPreviousFrameIsAlive boolean 
---@field public EmitItem boolean 
ImGuiGroupData = ImGuiGroupData or {}


-----------------------------------------------------------------
---@class ImGuiIO 
---@field public ConfigFlags number 
---@field public BackendFlags number 
---@field public DisplaySize ImVec2 
---@field public DeltaTime number 
---@field public IniSavingRate number 
---@field public IniFilename string 
---@field public LogFilename string 
---@field public MouseDoubleClickTime number 
---@field public MouseDoubleClickMaxDist number 
---@field public MouseDragThreshold number 
---@field public KeyMap[ImGuiKey_COUNT] number 
---@field public KeyRepeatDelay number 
---@field public KeyRepeatRate number 
---@field public UserData void 
---@field public Fonts ImFontAtlas 
---@field public FontGlobalScale number 
---@field public FontAllowUserScaling boolean 
---@field public FontDefault ImFont 
---@field public DisplayFramebufferScale ImVec2 
---@field public MouseDrawCursor boolean 
---@field public ConfigMacOSXBehaviors boolean 
---@field public ConfigInputTextCursorBlink boolean 
---@field public ConfigWindowsResizeFromEdges boolean 
---@field public ConfigWindowsMoveFromTitleBarOnly boolean 
---@field public ConfigWindowsMemoryCompactTimer number 
---@field public BackendPlatformName string 
---@field public BackendRendererName string 
---@field public BackendPlatformUserData void 
---@field public BackendRendererUserData void 
---@field public BackendLanguageUserData void 
---@field public MousePos ImVec2 
---@field public MouseDown boolean[] 
---@field public MouseWheel number 
---@field public MouseWheelH number 
---@field public KeyCtrl boolean 
---@field public KeyShift boolean 
---@field public KeyAlt boolean 
---@field public KeySuper boolean 
---@field public KeysDown[512] boolean 
---@field public NavInputs[ImGuiNavInput_COUNT] number 
---@field public WantCaptureMouse boolean 
---@field public WantCaptureKeyboard boolean 
---@field public WantTextInput boolean 
---@field public WantSetMousePos boolean 
---@field public WantSaveIniSettings boolean 
---@field public NavActive boolean 
---@field public NavVisible boolean 
---@field public Framerate number 
---@field public MetricsRenderVertices number 
---@field public MetricsRenderIndices number 
---@field public MetricsRenderWindows number 
---@field public MetricsActiveWindows number 
---@field public MetricsActiveAllocations number 
---@field public MouseDelta ImVec2 
---@field public MousePosPrev ImVec2 
---@field public MouseClickedPos ImVec2[] 
---@field public MouseClickedTime number[] 
---@field public MouseClicked boolean[] 
---@field public MouseDoubleClicked boolean[] 
---@field public MouseReleased boolean[] 
---@field public MouseDownOwned boolean[] 
---@field public MouseDownWasDoubleClick boolean[] 
---@field public MouseDownDuration number[] 
---@field public MouseDownDurationPrev number[] 
---@field public MouseDragMaxDistanceAbs ImVec2[] 
---@field public MouseDragMaxDistanceSqr number[] 
---@field public KeysDownDuration[512] number 
---@field public KeysDownDurationPrev[512] number 
---@field public NavInputsDownDuration[ImGuiNavInput_COUNT] number 
---@field public NavInputsDownDurationPrev[ImGuiNavInput_COUNT] number 
---@field public InputQueueCharacters ImVector<uint16_t> 
ImGuiIO = ImGuiIO or {}

---@param c number 
function ImGuiIO:AddInputCharacter(c) end 

---@param str string 
function ImGuiIO:AddInputCharactersUTF8(str) end 

function ImGuiIO:ClearInputCharacters() end 

---@return ImGuiIO 
function ImGuiIO:new() end 

---@return ImGuiIO 
function ImGuiIO:new_local() end 


-----------------------------------------------------------------
---@class ImGuiInputTextState 
---@field public ID number 
---@field public CurLenW number 
---@field public CurLenA number 
---@field public TextAIsValid boolean 
---@field public BufCapacityA number 
---@field public ScrollX number 
---@field public CursorAnim number 
---@field public CursorFollow boolean 
---@field public SelectedAllMouseLock boolean 
---@field public UserFlags number 
---@field public UserCallbackData void 
ImGuiInputTextState = ImGuiInputTextState or {}

---@return ImGuiInputTextState 
function ImGuiInputTextState:new() end 

---@return ImGuiInputTextState 
function ImGuiInputTextState:new_local() end 

function ImGuiInputTextState:ClearText() end 

function ImGuiInputTextState:ClearFreeMemory() end 

---@return number 
function ImGuiInputTextState:GetUndoAvailCount() end 

---@return number 
function ImGuiInputTextState:GetRedoAvailCount() end 

---@param key number 
function ImGuiInputTextState:OnKeyPressed(key) end 

function ImGuiInputTextState:CursorAnimReset() end 

function ImGuiInputTextState:CursorClamp() end 

---@return boolean 
function ImGuiInputTextState:HasSelection() end 

function ImGuiInputTextState:ClearSelection() end 

function ImGuiInputTextState:SelectAll() end 


-----------------------------------------------------------------
---@class ImGuiNavMoveResult 
---@field public ID number 
---@field public SelectScopeId number 
---@field public Window ImGuiWindow 
---@field public DistBox number 
---@field public DistCenter number 
---@field public DistAxial number 
---@field public RectRel ImRect 
ImGuiNavMoveResult = ImGuiNavMoveResult or {}

---@return ImGuiNavMoveResult 
function ImGuiNavMoveResult:new() end 

---@return ImGuiNavMoveResult 
function ImGuiNavMoveResult:new_local() end 

function ImGuiNavMoveResult:Clear() end 


-----------------------------------------------------------------
---@class ImGuiPayload 
---@field public Data void 
---@field public DataSize number 
---@field public SourceId number 
---@field public SourceParentId number 
---@field public DataFrameCount number 
---@field public DataType[33] string 
---@field public Preview boolean 
---@field public Delivery boolean 
ImGuiPayload = ImGuiPayload or {}

---@return ImGuiPayload 
function ImGuiPayload:new() end 

---@return ImGuiPayload 
function ImGuiPayload:new_local() end 

function ImGuiPayload:Clear() end 

---@param type string 
---@return boolean 
function ImGuiPayload:IsDataType(type) end 

---@return boolean 
function ImGuiPayload:IsPreview() end 

---@return boolean 
function ImGuiPayload:IsDelivery() end 


-----------------------------------------------------------------
---@class ImGuiStorage 
ImGuiStorage = ImGuiStorage or {}

function ImGuiStorage:Clear() end 

---@param ImGuiID_key number 
---@param default_val number @default value:0 
---@return number 
function ImGuiStorage:GetInt(ImGuiID_key, default_val) end 

---@param ImGuiID_key number 
---@param val number 
function ImGuiStorage:SetInt(ImGuiID_key, val) end 

---@param ImGuiID_key number 
---@param default_val boolean @default value:false 
---@return boolean 
function ImGuiStorage:GetBool(ImGuiID_key, default_val) end 

---@param ImGuiID_key number 
---@param val boolean 
function ImGuiStorage:SetBool(ImGuiID_key, val) end 

---@param ImGuiID_key number 
---@param default_val number @default value:0.0f 
---@return number 
function ImGuiStorage:GetFloat(ImGuiID_key, default_val) end 

---@param ImGuiID_key number 
---@param val number 
function ImGuiStorage:SetFloat(ImGuiID_key, val) end 

---@param ImGuiID_key number 
function ImGuiStorage:GetVoidPtr(ImGuiID_key) end 

---@param ImGuiID_key number 
---@param val void 
function ImGuiStorage:SetVoidPtr(ImGuiID_key, val) end 

---@param ImGuiID_key number 
---@param default_val number @default value:0 
---@return number 
function ImGuiStorage:GetIntRef(ImGuiID_key, default_val) end 

---@param ImGuiID_key number 
---@param default_val boolean @default value:false 
---@return boolean 
function ImGuiStorage:GetBoolRef(ImGuiID_key, default_val) end 

---@param ImGuiID_key number 
---@param default_val number @default value:0.0f 
---@return number 
function ImGuiStorage:GetFloatRef(ImGuiID_key, default_val) end 

---@param val number 
function ImGuiStorage:SetAllInt(val) end 

function ImGuiStorage:BuildSortByKey() end 


-----------------------------------------------------------------
---@class ImGuiStyle 
---@field public Alpha number 
---@field public WindowPadding ImVec2 
---@field public WindowRounding number 
---@field public WindowBorderSize number 
---@field public WindowMinSize ImVec2 
---@field public WindowTitleAlign ImVec2 
---@field public WindowMenuButtonPosition number 
---@field public ChildRounding number 
---@field public ChildBorderSize number 
---@field public PopupRounding number 
---@field public PopupBorderSize number 
---@field public FramePadding ImVec2 
---@field public FrameRounding number 
---@field public FrameBorderSize number 
---@field public ItemSpacing ImVec2 
---@field public ItemInnerSpacing ImVec2 
---@field public TouchExtraPadding ImVec2 
---@field public IndentSpacing number 
---@field public ColumnsMinSpacing number 
---@field public ScrollbarSize number 
---@field public ScrollbarRounding number 
---@field public GrabMinSize number 
---@field public GrabRounding number 
---@field public TabRounding number 
---@field public TabBorderSize number 
---@field public ColorButtonPosition number 
---@field public ButtonTextAlign ImVec2 
---@field public SelectableTextAlign ImVec2 
---@field public DisplayWindowPadding ImVec2 
---@field public DisplaySafeAreaPadding ImVec2 
---@field public MouseCursorScale number 
---@field public AntiAliasedLines boolean 
---@field public AntiAliasedFill boolean 
---@field public CurveTessellationTol number 
---@field public Colors[ImGuiCol_COUNT] ImVec4 
ImGuiStyle = ImGuiStyle or {}

---@param scale_factor number 
function ImGuiStyle:ScaleAllSizes(scale_factor) end 


-----------------------------------------------------------------
---@class ImGuiTabBar 
---@field public ID number 
---@field public SelectedTabId number 
---@field public NextSelectedTabId number 
---@field public VisibleTabId number 
---@field public CurrFrameVisible number 
---@field public PrevFrameVisible number 
---@field public BarRect ImRect 
---@field public LastTabContentHeight number 
---@field public OffsetMax number 
---@field public OffsetMaxIdeal number 
---@field public OffsetNextTab number 
---@field public ScrollingAnim number 
---@field public ScrollingTarget number 
---@field public ScrollingTargetDistToVisibility number 
---@field public ScrollingSpeed number 
---@field public Flags ImGuiTabBarFlags 
---@field public ReorderRequestTabId ImGuiID 
---@field public ReorderRequestDir int8_t 
---@field public WantLayout boolean 
---@field public VisibleTabWasSubmitted boolean 
---@field public LastTabItemIdx number 
---@field public FramePadding ImVec2 
ImGuiTabBar = ImGuiTabBar or {}

---@return ImGuiTabBar 
function ImGuiTabBar:new() end 

---@return ImGuiTabBar 
function ImGuiTabBar:new_local() end 

---@param tab ImGuiTabItem 
---@return number 
function ImGuiTabBar:GetTabOrder(tab) end 

---@param tab ImGuiTabItem 
---@return string 
function ImGuiTabBar:GetTabName(tab) end 


-----------------------------------------------------------------
---@class ImGuiWindow 
---@field public Name string 
---@field public ID number 
---@field public Flags number 
---@field public Pos ImVec2 
---@field public Size ImVec2 
---@field public SizeFull ImVec2 
---@field public ContentSize ImVec2 
---@field public ContentSizeExplicit ImVec2 
---@field public WindowPadding ImVec2 
---@field public WindowRounding number 
---@field public WindowBorderSize number 
---@field public NameBufLen number 
---@field public MoveId number 
---@field public ChildId number 
---@field public Scroll ImVec2 
---@field public ScrollMax ImVec2 
---@field public ScrollTarget ImVec2 
---@field public ScrollTargetCenterRatio ImVec2 
---@field public ScrollbarSizes ImVec2 
---@field public ScrollbarX boolean 
---@field public ScrollbarY boolean 
---@field public Active boolean 
---@field public WasActive boolean 
---@field public WriteAccessed boolean 
---@field public Collapsed boolean 
---@field public WantCollapseToggle boolean 
---@field public SkipItems boolean 
---@field public Appearing boolean 
---@field public Hidden boolean 
---@field public HasCloseButton boolean 
---@field public BeginCount number 
---@field public BeginOrderWithinParent number 
---@field public BeginOrderWithinContext number 
---@field public PopupId number 
---@field public AutoFitFramesX number 
---@field public AutoFitFramesY number 
---@field public AutoFitChildAxises number 
---@field public AutoFitOnlyGrows boolean 
---@field public AutoPosLastDirection number 
---@field public HiddenFramesCanSkipItems number 
---@field public HiddenFramesCannotSkipItems number 
---@field public SetWindowPosAllowFlags number 
---@field public SetWindowSizeAllowFlags number 
---@field public SetWindowCollapsedAllowFlags number 
---@field public SetWindowPosVal ImVec2 
---@field public SetWindowPosPivot ImVec2 
---@field public DC ImGuiWindowTempData 
---@field public OuterRectClipped ImRect 
---@field public InnerRect ImRect 
---@field public InnerClipRect ImRect 
---@field public WorkRect ImRect 
---@field public ClipRect ImRect 
---@field public ContentRegionRect ImRect 
---@field public LastFrameActive number 
---@field public LastTimeActive number 
---@field public ItemWidthDefault number 
---@field public MenuColumns ImGuiMenuColumns 
---@field public StateStorage ImGuiStorage 
---@field public FontWindowScale number 
---@field public SettingsOffset number 
---@field public DrawList ImDrawList 
---@field public DrawListInst ImDrawList 
---@field public ParentWindow ImGuiWindow 
---@field public RootWindow ImGuiWindow 
---@field public RootWindowForTitleBarHighlight ImGuiWindow 
---@field public RootWindowForNav ImGuiWindow 
---@field public NavLastChildNavWindow ImGuiWindow 
---@field public NavLastIds[ImGuiNavLayer_COUNT] number 
---@field public NavRectRel[ImGuiNavLayer_COUNT] ImRect 
---@field public MemoryCompacted boolean 
---@field public MemoryDrawListIdxCapacity number 
---@field public MemoryDrawListVtxCapacity number 
ImGuiWindow = ImGuiWindow or {}

---@param context ImGuiContext 
---@param name string 
---@return ImGuiWindow 
function ImGuiWindow:new(context, name) end 

---@param context ImGuiContext 
---@param name string 
---@return ImGuiWindow 
function ImGuiWindow:new_local(context, name) end 

function ImGuiWindow:delete() end 

---@param str string 
---@param str_end string @default value:NULL 
---@return number 
function ImGuiWindow:GetID(str, str_end) end 

---@param ptr void 
---@return number 
function ImGuiWindow:GetID(ptr) end 

---@param n number 
---@return number 
function ImGuiWindow:GetID(n) end 

---@param str string 
---@param str_end string @default value:NULL 
---@return number 
function ImGuiWindow:GetIDNoKeepAlive(str, str_end) end 

---@param ptr void 
---@return number 
function ImGuiWindow:GetIDNoKeepAlive(ptr) end 

---@param n number 
---@return number 
function ImGuiWindow:GetIDNoKeepAlive(n) end 

---@param r_abs ImRect 
---@return number 
function ImGuiWindow:GetIDFromRectangle(r_abs) end 

---@return ImRect 
function ImGuiWindow:Rect() end 

---@return number 
function ImGuiWindow:CalcFontSize() end 

---@return number 
function ImGuiWindow:TitleBarHeight() end 

---@return ImRect 
function ImGuiWindow:TitleBarRect() end 

---@return number 
function ImGuiWindow:MenuBarHeight() end 

---@return ImRect 
function ImGuiWindow:MenuBarRect() end 


-----------------------------------------------------------------
---@class ImGuiWindowTempData 
---@field public CursorPos ImVec2 
---@field public CursorPosPrevLine ImVec2 
---@field public CursorStartPos ImVec2 
---@field public CursorMaxPos ImVec2 
---@field public CurrLineSize ImVec2 
---@field public PrevLineSize ImVec2 
---@field public CurrLineTextBaseOffset number 
---@field public PrevLineTextBaseOffset number 
---@field public TreeDepth number 
---@field public TreeMayJumpToParentOnPopMask number 
---@field public LastItemId number 
---@field public LastItemStatusFlags number 
---@field public LastItemRect ImRect 
---@field public LastItemDisplayRect ImRect 
---@field public NavLayerCurrent ImGuiNavLayer 
---@field public NavLayerCurrentMask number 
---@field public NavLayerActiveMask number 
---@field public NavLayerActiveMaskNext number 
---@field public NavHideHighlightOneFrame boolean 
---@field public NavHasScroll boolean 
---@field public MenuBarAppending boolean 
---@field public MenuBarOffset ImVec2 
---@field public StateStorage ImGuiStorage 
---@field public LayoutType ImGuiLayoutType 
---@field public ParentLayoutType ImGuiLayoutType 
---@field public FocusCounterAll number 
---@field public FocusCounterTab number 
---@field public ItemFlags number 
---@field public ItemWidth number 
---@field public TextWrapPos number 
---@field public ItemFlagsStack ImVector<int> 
---@field public ItemWidthStack ImVector<float> 
---@field public TextWrapPosStack ImVector<float> 
---@field public StackSizesBackup number[] 
---@field public Indent ImVec1 
---@field public GroupOffset ImVec1 
---@field public ColumnsOffset ImVec1 
---@field public CurrentColumns ImGuiColumns 
ImGuiWindowTempData = ImGuiWindowTempData or {}

---@return ImGuiWindowTempData 
function ImGuiWindowTempData:new() end 

---@return ImGuiWindowTempData 
function ImGuiWindowTempData:new_local() end 


-----------------------------------------------------------------
---@class ImRect 
---@field public Min ImVec2 
---@field public Max ImVec2 
ImRect = ImRect or {}

---@return ImRect 
function ImRect:new() end 

---@return ImRect 
function ImRect:new_local() end 

---@param min ImVec2 
---@param max ImVec2 
---@return ImRect 
function ImRect:new(min, max) end 

---@param min ImVec2 
---@param max ImVec2 
---@return ImRect 
function ImRect:new_local(min, max) end 

---@param v ImVec4 
---@return ImRect 
function ImRect:new(v) end 

---@param v ImVec4 
---@return ImRect 
function ImRect:new_local(v) end 

---@param x1 number 
---@param y1 number 
---@param x2 number 
---@param y2 number 
---@return ImRect 
function ImRect:new(x1, y1, x2, y2) end 

---@param x1 number 
---@param y1 number 
---@param x2 number 
---@param y2 number 
---@return ImRect 
function ImRect:new_local(x1, y1, x2, y2) end 

---@return ImVec2 
function ImRect:GetCenter() end 

---@return ImVec2 
function ImRect:GetSize() end 

---@return number 
function ImRect:GetWidth() end 

---@return number 
function ImRect:GetHeight() end 

---@return ImVec2 
function ImRect:GetTL() end 

---@return ImVec2 
function ImRect:GetTR() end 

---@return ImVec2 
function ImRect:GetBL() end 

---@return ImVec2 
function ImRect:GetBR() end 

---@param p ImVec2 
---@return boolean 
function ImRect:Contains(p) end 

---@param r ImRect 
---@return boolean 
function ImRect:Contains(r) end 

---@param r ImRect 
---@return boolean 
function ImRect:Overlaps(r) end 

---@param p ImVec2 
function ImRect:Add(p) end 

---@param r ImRect 
function ImRect:Add(r) end 

---@param amount number 
function ImRect:Expand(amount) end 

---@param amount ImVec2 
function ImRect:Expand(amount) end 

---@param d ImVec2 
function ImRect:Translate(d) end 

---@param dx number 
function ImRect:TranslateX(dx) end 

---@param dy number 
function ImRect:TranslateY(dy) end 

---@param r ImRect 
function ImRect:ClipWith(r) end 

---@param r ImRect 
function ImRect:ClipWithFull(r) end 

function ImRect:Floor() end 

---@return boolean 
function ImRect:IsInverted() end 


-----------------------------------------------------------------
---@class ImVec1 
---@field public x number 
ImVec1 = ImVec1 or {}

---@return ImVec1 
function ImVec1:new() end 

---@return ImVec1 
function ImVec1:new_local() end 

---@param _x number 
---@return ImVec1 
function ImVec1:new(_x) end 

---@param _x number 
---@return ImVec1 
function ImVec1:new_local(_x) end 

function ImVec1:delete() end 


-----------------------------------------------------------------
---@class ImVec2 
---@field public x number 
---@field public y number 
ImVec2 = ImVec2 or {}

---@return ImVec2 
function ImVec2:new() end 

---@return ImVec2 
function ImVec2:new_local() end 

---@param _x number 
---@param _y number 
---@return ImVec2 
function ImVec2:new(_x, _y) end 

---@param _x number 
---@param _y number 
---@return ImVec2 
function ImVec2:new_local(_x, _y) end 

function ImVec2:delete() end 

---@param idx number 
---@return number[] 
function ImVec2:__index(idx) end 


-----------------------------------------------------------------
---@class ImVec4 
---@field public x number 
---@field public y number 
---@field public z number 
---@field public w number 
ImVec4 = ImVec4 or {}

---@return ImVec4 
function ImVec4:new() end 

---@return ImVec4 
function ImVec4:new_local() end 

---@param _x number 
---@param _y number 
---@param _z number 
---@param _w number 
---@return ImVec4 
function ImVec4:new(_x, _y, _z, _w) end 

---@param _x number 
---@param _y number 
---@param _z number 
---@param _w number 
---@return ImVec4 
function ImVec4:new_local(_x, _y, _z, _w) end 

function ImVec4:delete() end 


-----------------------------------------------------------------
---@class ImVector 
ImVector = ImVector or {}

---@return ImVector 
function ImVector:new() end 

---@return ImVector 
function ImVector:new_local() end 

function ImVector:delete() end 

---@return boolean 
function ImVector:empty() end 

---@return number 
function ImVector:size() end 

---@return number 
function ImVector:size_in_bytes() end 

---@return number 
function ImVector:capacity() end 

---@param i number 
---@return T[] 
function ImVector:__index(i) end 

function ImVector:clear() end 

---@return T 
function ImVector:Begin() end 

---@return T 
function ImVector:End() end 

---@return T 
function ImVector:front() end 

---@return T 
function ImVector:back() end 

---@param sz number 
---@return number 
function ImVector:_grow_capacity(sz) end 

---@param new_size number 
function ImVector:resize(new_size) end 

---@param new_size number 
---@param v T 
function ImVector:resize(new_size, v) end 

---@param new_size number 
function ImVector:shrink(new_size) end 

---@param new_capacity number 
function ImVector:reserve(new_capacity) end 

---@param v T 
function ImVector:push_back(v) end 

function ImVector:pop_back() end 

---@param v T 
function ImVector:push_front(v) end 

---@param it T 
---@return T 
function ImVector:erase(it) end 

---@param it T 
---@param it_last T 
---@return T 
function ImVector:erase(it, it_last) end 

---@param it T 
---@return T 
function ImVector:erase_unsorted(it) end 

---@param it T 
---@param v T 
---@return T 
function ImVector:insert(it, v) end 

---@param v T 
---@return boolean 
function ImVector:contains(v) end 

---@param v T 
---@return T 
function ImVector:find(v) end 

---@param v T 
---@return boolean 
function ImVector:find_erase(v) end 

---@param v T 
---@return boolean 
function ImVector:find_erase_unsorted(v) end 

---@param it T 
---@return number 
function ImVector:index_from_ptr(it) end 


-----------------------------------------------------------------
--global function define
-----------------------------------------------------------------

