#ifndef KONAN_LIBKN_H
#define KONAN_LIBKN_H
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
typedef bool            libkn_KBoolean;
#else
typedef _Bool           libkn_KBoolean;
#endif
typedef unsigned short     libkn_KChar;
typedef signed char        libkn_KByte;
typedef short              libkn_KShort;
typedef int                libkn_KInt;
typedef long long          libkn_KLong;
typedef unsigned char      libkn_KUByte;
typedef unsigned short     libkn_KUShort;
typedef unsigned int       libkn_KUInt;
typedef unsigned long long libkn_KULong;
typedef float              libkn_KFloat;
typedef double             libkn_KDouble;
typedef float __attribute__ ((__vector_size__ (16))) libkn_KVector128;
typedef void*              libkn_KNativePtr;
struct libkn_KType;
typedef struct libkn_KType libkn_KType;

typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_Byte;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_Short;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_Int;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_Long;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_Float;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_Double;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_Char;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_Boolean;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_Unit;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_UByte;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_UShort;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_UInt;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_ULong;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_Platform;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_Game2048State;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_collections_List;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_Any;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_Game2048Logic;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_Pair;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_Game2048Logic_Companion;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_SnakeGameState;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_SnakeGameLogic;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_SnakeGameLogic_Companion;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_ChessPieceType;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_ChessPieceType_JIANG;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_ChessPieceType_SHI;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_ChessPieceType_XIANG;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_ChessPieceType_MA;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_ChessPieceType_CHE;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_ChessPieceType_PAO;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_ChessPieceType_BING;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor_RED;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor_BLACK;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_ChessPiece;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_androidx_compose_ui_geometry_Offset;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_XiangqiLogic;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_demos_game_XiangqiLogic_Companion;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_kotlin_collections_Map;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_navigation_ComposeGroup;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_navigation_ComposeGroup_Ui;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_navigation_ComposeGroup_Foundation;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_navigation_ComposeGroup_Material;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_navigation_ComposeGroup_Benchmark;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_navigation_ComposeGroup_Platform;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_navigation_ComponentDemo;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_navigation_Page;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_navigation_Page_Home;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_navigation_Page_Detail;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_Greeting;
typedef struct {
  libkn_KNativePtr pinned;
} libkn_kref_com_dong_maxhap_OhosPlatform;

extern void* MainArkUIViewController(void* env);
extern void androidx_compose_ui_arkui_ArkUIViewController_aboutToAppear(void* controllerRef);
extern void androidx_compose_ui_arkui_ArkUIViewController_aboutToDisappear(void* controllerRef);
extern void androidx_compose_ui_arkui_ArkUIViewController_cancelSyncRefresh(void* controllerRef, libkn_KInt refreshId);
extern void androidx_compose_ui_arkui_ArkUIViewController_dispatchHoverEvent(void* controllerRef);
extern void androidx_compose_ui_arkui_ArkUIViewController_dispatchMouseEvent(void* controllerRef);
extern libkn_KBoolean androidx_compose_ui_arkui_ArkUIViewController_dispatchTouchEvent(void* controllerRef, void* nativeTouchEvent, libkn_KBoolean ignoreInteropView);
extern const char* androidx_compose_ui_arkui_ArkUIViewController_getId(void* controllerRef);
extern void* androidx_compose_ui_arkui_ArkUIViewController_getXComponentRender(void* controllerRef);
extern void androidx_compose_ui_arkui_ArkUIViewController_keyboardWillHide(void* controllerRef);
extern void androidx_compose_ui_arkui_ArkUIViewController_keyboardWillShow(void* controllerRef, libkn_KFloat keyboardHeight);
extern libkn_KBoolean androidx_compose_ui_arkui_ArkUIViewController_onBackPress(void* controllerRef);
extern void androidx_compose_ui_arkui_ArkUIViewController_onFinalize(void* controllerRef);
extern void androidx_compose_ui_arkui_ArkUIViewController_onFocusEvent(void* controllerRef);
extern void androidx_compose_ui_arkui_ArkUIViewController_onFrame(void* controllerRef, libkn_KLong timestamp, libkn_KLong targetTimestamp);
extern void androidx_compose_ui_arkui_ArkUIViewController_onKeyEvent(void* controllerRef);
extern void androidx_compose_ui_arkui_ArkUIViewController_onPageHide(void* controllerRef);
extern void androidx_compose_ui_arkui_ArkUIViewController_onPageShow(void* controllerRef);
extern void androidx_compose_ui_arkui_ArkUIViewController_onSurfaceChanged(void* controllerRef, libkn_KInt width, libkn_KInt height);
extern void androidx_compose_ui_arkui_ArkUIViewController_onSurfaceCreated(void* controllerRef, void* xcomponentPtr, libkn_KInt width, libkn_KInt height);
extern void androidx_compose_ui_arkui_ArkUIViewController_onSurfaceDestroyed(void* controllerRef);
extern void androidx_compose_ui_arkui_ArkUIViewController_onSurfaceHide(void* controllerRef);
extern void androidx_compose_ui_arkui_ArkUIViewController_onSurfaceShow(void* controllerRef);
extern libkn_KInt androidx_compose_ui_arkui_ArkUIViewController_requestSyncRefresh(void* controllerRef);
extern const char* androidx_compose_ui_arkui_ArkUIViewController_sendMessage(void* controllerRef, const char* type, const char* message);
extern void androidx_compose_ui_arkui_ArkUIViewController_setContext(void* controllerRef, void* context);
extern void androidx_compose_ui_arkui_ArkUIViewController_setEnv(void* controllerRef, void* env);
extern void androidx_compose_ui_arkui_ArkUIViewController_setId(void* controllerRef, const char* id);
extern void androidx_compose_ui_arkui_ArkUIViewController_setMessenger(void* controllerRef, void* messenger);
extern void androidx_compose_ui_arkui_ArkUIViewController_setRootView(void* controllerRef, void* backRootView, void* foreRootView, void* touchableRootView);
extern void androidx_compose_ui_arkui_ArkUIViewController_setUIContext(void* controllerRef, void* uiContext);
extern void androidx_compose_ui_arkui_ArkUIViewController_setXComponentRender(void* controllerRef, void* render);
extern void androidx_compose_ui_arkui_init(void* env, void* exports);

typedef struct {
  /* Service functions. */
  void (*DisposeStablePointer)(libkn_KNativePtr ptr);
  void (*DisposeString)(const char* string);
  libkn_KBoolean (*IsInstance)(libkn_KNativePtr ref, const libkn_KType* type);
  libkn_kref_kotlin_Byte (*createNullableByte)(libkn_KByte);
  libkn_KByte (*getNonNullValueOfByte)(libkn_kref_kotlin_Byte);
  libkn_kref_kotlin_Short (*createNullableShort)(libkn_KShort);
  libkn_KShort (*getNonNullValueOfShort)(libkn_kref_kotlin_Short);
  libkn_kref_kotlin_Int (*createNullableInt)(libkn_KInt);
  libkn_KInt (*getNonNullValueOfInt)(libkn_kref_kotlin_Int);
  libkn_kref_kotlin_Long (*createNullableLong)(libkn_KLong);
  libkn_KLong (*getNonNullValueOfLong)(libkn_kref_kotlin_Long);
  libkn_kref_kotlin_Float (*createNullableFloat)(libkn_KFloat);
  libkn_KFloat (*getNonNullValueOfFloat)(libkn_kref_kotlin_Float);
  libkn_kref_kotlin_Double (*createNullableDouble)(libkn_KDouble);
  libkn_KDouble (*getNonNullValueOfDouble)(libkn_kref_kotlin_Double);
  libkn_kref_kotlin_Char (*createNullableChar)(libkn_KChar);
  libkn_KChar (*getNonNullValueOfChar)(libkn_kref_kotlin_Char);
  libkn_kref_kotlin_Boolean (*createNullableBoolean)(libkn_KBoolean);
  libkn_KBoolean (*getNonNullValueOfBoolean)(libkn_kref_kotlin_Boolean);
  libkn_kref_kotlin_Unit (*createNullableUnit)(void);
  libkn_kref_kotlin_UByte (*createNullableUByte)(libkn_KUByte);
  libkn_KUByte (*getNonNullValueOfUByte)(libkn_kref_kotlin_UByte);
  libkn_kref_kotlin_UShort (*createNullableUShort)(libkn_KUShort);
  libkn_KUShort (*getNonNullValueOfUShort)(libkn_kref_kotlin_UShort);
  libkn_kref_kotlin_UInt (*createNullableUInt)(libkn_KUInt);
  libkn_KUInt (*getNonNullValueOfUInt)(libkn_kref_kotlin_UInt);
  libkn_kref_kotlin_ULong (*createNullableULong)(libkn_KULong);
  libkn_KULong (*getNonNullValueOfULong)(libkn_kref_kotlin_ULong);

  /* User functions. */
  struct {
    struct {
      struct {
        struct {
          struct {
            struct {
              struct {
                struct {
                  libkn_KType* (*_type)(void);
                  libkn_kref_com_dong_maxhap_demos_game_Game2048State (*Game2048State)(libkn_kref_kotlin_collections_List grid, libkn_KInt score, libkn_KBoolean gameOver, libkn_KBoolean won);
                  libkn_KBoolean (*get_gameOver)(libkn_kref_com_dong_maxhap_demos_game_Game2048State thiz);
                  libkn_kref_kotlin_collections_List (*get_grid)(libkn_kref_com_dong_maxhap_demos_game_Game2048State thiz);
                  libkn_KInt (*get_score)(libkn_kref_com_dong_maxhap_demos_game_Game2048State thiz);
                  libkn_KBoolean (*get_won)(libkn_kref_com_dong_maxhap_demos_game_Game2048State thiz);
                  libkn_kref_kotlin_collections_List (*component1)(libkn_kref_com_dong_maxhap_demos_game_Game2048State thiz);
                  libkn_KInt (*component2)(libkn_kref_com_dong_maxhap_demos_game_Game2048State thiz);
                  libkn_KBoolean (*component3)(libkn_kref_com_dong_maxhap_demos_game_Game2048State thiz);
                  libkn_KBoolean (*component4)(libkn_kref_com_dong_maxhap_demos_game_Game2048State thiz);
                  libkn_kref_com_dong_maxhap_demos_game_Game2048State (*copy)(libkn_kref_com_dong_maxhap_demos_game_Game2048State thiz, libkn_kref_kotlin_collections_List grid, libkn_KInt score, libkn_KBoolean gameOver, libkn_KBoolean won);
                  libkn_KBoolean (*equals)(libkn_kref_com_dong_maxhap_demos_game_Game2048State thiz, libkn_kref_kotlin_Any other);
                  libkn_KInt (*hashCode)(libkn_kref_com_dong_maxhap_demos_game_Game2048State thiz);
                  const char* (*toString)(libkn_kref_com_dong_maxhap_demos_game_Game2048State thiz);
                } Game2048State;
                struct {
                  struct {
                    libkn_KType* (*_type)(void);
                    libkn_kref_com_dong_maxhap_demos_game_Game2048Logic_Companion (*_instance)();
                    libkn_KInt (*get_GRID_SIZE)(libkn_kref_com_dong_maxhap_demos_game_Game2048Logic_Companion thiz);
                    libkn_KInt (*get_WIN_VALUE)(libkn_kref_com_dong_maxhap_demos_game_Game2048Logic_Companion thiz);
                  } Companion;
                  libkn_KType* (*_type)(void);
                  libkn_kref_com_dong_maxhap_demos_game_Game2048Logic (*Game2048Logic)();
                  libkn_kref_kotlin_collections_List (*addRandomTile)(libkn_kref_com_dong_maxhap_demos_game_Game2048Logic thiz, libkn_kref_kotlin_collections_List grid);
                  libkn_KBoolean (*canMerge)(libkn_kref_com_dong_maxhap_demos_game_Game2048Logic thiz, libkn_kref_kotlin_collections_List grid);
                  libkn_KBoolean (*checkGameOver)(libkn_kref_com_dong_maxhap_demos_game_Game2048Logic thiz, libkn_kref_kotlin_collections_List grid);
                  libkn_KBoolean (*checkWin)(libkn_kref_com_dong_maxhap_demos_game_Game2048Logic thiz, libkn_kref_kotlin_collections_List grid);
                  libkn_kref_kotlin_collections_List (*doInitGrid)(libkn_kref_com_dong_maxhap_demos_game_Game2048Logic thiz);
                  libkn_KBoolean (*hasEmptyCell)(libkn_kref_com_dong_maxhap_demos_game_Game2048Logic thiz, libkn_kref_kotlin_collections_List grid);
                  libkn_kref_kotlin_Pair (*moveDown)(libkn_kref_com_dong_maxhap_demos_game_Game2048Logic thiz, libkn_kref_kotlin_collections_List grid);
                  libkn_kref_kotlin_Pair (*moveLeft)(libkn_kref_com_dong_maxhap_demos_game_Game2048Logic thiz, libkn_kref_kotlin_collections_List grid);
                  libkn_kref_kotlin_Pair (*moveRight)(libkn_kref_com_dong_maxhap_demos_game_Game2048Logic thiz, libkn_kref_kotlin_collections_List grid);
                  libkn_kref_kotlin_Pair (*moveUp)(libkn_kref_com_dong_maxhap_demos_game_Game2048Logic thiz, libkn_kref_kotlin_collections_List grid);
                } Game2048Logic;
                struct {
                  libkn_KType* (*_type)(void);
                  libkn_kref_com_dong_maxhap_demos_game_SnakeGameState (*SnakeGameState)(libkn_kref_kotlin_collections_List snake, libkn_KLong food, libkn_KLong direction, libkn_KInt score, libkn_KBoolean gameOver, libkn_KBoolean gamePaused);
                  libkn_KLong (*get_direction)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz);
                  libkn_KLong (*get_food)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz);
                  libkn_KBoolean (*get_gameOver)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz);
                  libkn_KBoolean (*get_gamePaused)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz);
                  libkn_KInt (*get_score)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz);
                  libkn_kref_kotlin_collections_List (*get_snake)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz);
                  libkn_kref_kotlin_collections_List (*component1)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz);
                  libkn_KLong (*component2)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz);
                  libkn_KLong (*component3)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz);
                  libkn_KInt (*component4)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz);
                  libkn_KBoolean (*component5)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz);
                  libkn_KBoolean (*component6)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz);
                  libkn_kref_com_dong_maxhap_demos_game_SnakeGameState (*copy)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz, libkn_kref_kotlin_collections_List snake, libkn_KLong food, libkn_KLong direction, libkn_KInt score, libkn_KBoolean gameOver, libkn_KBoolean gamePaused);
                  libkn_KBoolean (*equals)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz, libkn_kref_kotlin_Any other);
                  libkn_KInt (*hashCode)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz);
                  const char* (*toString)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameState thiz);
                } SnakeGameState;
                struct {
                  struct {
                    libkn_KType* (*_type)(void);
                    libkn_kref_com_dong_maxhap_demos_game_SnakeGameLogic_Companion (*_instance)();
                    libkn_KFloat (*get_CELL_SIZE)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameLogic_Companion thiz);
                    libkn_KInt (*get_GRID_HEIGHT)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameLogic_Companion thiz);
                    libkn_KInt (*get_GRID_WIDTH)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameLogic_Companion thiz);
                    libkn_KLong (*get_INITIAL_DIRECTION)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameLogic_Companion thiz);
                  } Companion;
                  libkn_KType* (*_type)(void);
                  libkn_kref_com_dong_maxhap_demos_game_SnakeGameLogic (*SnakeGameLogic)();
                  libkn_kref_com_dong_maxhap_demos_game_SnakeGameState (*changeDirection)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameLogic thiz, libkn_kref_com_dong_maxhap_demos_game_SnakeGameState state, libkn_KLong newDirection);
                  libkn_kref_com_dong_maxhap_demos_game_SnakeGameState (*initializeGame)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameLogic thiz);
                  libkn_KBoolean (*isGameOver)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameLogic thiz, libkn_kref_com_dong_maxhap_demos_game_SnakeGameState state);
                  libkn_kref_com_dong_maxhap_demos_game_SnakeGameState (*moveSnake)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameLogic thiz, libkn_kref_com_dong_maxhap_demos_game_SnakeGameState state);
                  libkn_kref_com_dong_maxhap_demos_game_SnakeGameState (*restartGame)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameLogic thiz);
                  libkn_kref_com_dong_maxhap_demos_game_SnakeGameState (*togglePause)(libkn_kref_com_dong_maxhap_demos_game_SnakeGameLogic thiz, libkn_kref_com_dong_maxhap_demos_game_SnakeGameState state);
                } SnakeGameLogic;
                struct {
                  struct {
                    libkn_kref_com_dong_maxhap_demos_game_ChessPieceType (*get)(); /* enum entry for JIANG. */
                  } JIANG;
                  struct {
                    libkn_kref_com_dong_maxhap_demos_game_ChessPieceType (*get)(); /* enum entry for SHI. */
                  } SHI;
                  struct {
                    libkn_kref_com_dong_maxhap_demos_game_ChessPieceType (*get)(); /* enum entry for XIANG. */
                  } XIANG;
                  struct {
                    libkn_kref_com_dong_maxhap_demos_game_ChessPieceType (*get)(); /* enum entry for MA. */
                  } MA;
                  struct {
                    libkn_kref_com_dong_maxhap_demos_game_ChessPieceType (*get)(); /* enum entry for CHE. */
                  } CHE;
                  struct {
                    libkn_kref_com_dong_maxhap_demos_game_ChessPieceType (*get)(); /* enum entry for PAO. */
                  } PAO;
                  struct {
                    libkn_kref_com_dong_maxhap_demos_game_ChessPieceType (*get)(); /* enum entry for BING. */
                  } BING;
                  libkn_KType* (*_type)(void);
                } ChessPieceType;
                struct {
                  struct {
                    libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor (*get)(); /* enum entry for RED. */
                  } RED;
                  struct {
                    libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor (*get)(); /* enum entry for BLACK. */
                  } BLACK;
                  libkn_KType* (*_type)(void);
                } ChessPieceColor;
                struct {
                  libkn_KType* (*_type)(void);
                  libkn_kref_com_dong_maxhap_demos_game_ChessPiece (*ChessPiece)(libkn_kref_com_dong_maxhap_demos_game_ChessPieceType type, libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor color, libkn_KLong position);
                  libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor (*get_color)(libkn_kref_com_dong_maxhap_demos_game_ChessPiece thiz);
                  libkn_KLong (*get_position)(libkn_kref_com_dong_maxhap_demos_game_ChessPiece thiz);
                  libkn_kref_com_dong_maxhap_demos_game_ChessPieceType (*get_type)(libkn_kref_com_dong_maxhap_demos_game_ChessPiece thiz);
                  libkn_kref_com_dong_maxhap_demos_game_ChessPieceType (*component1)(libkn_kref_com_dong_maxhap_demos_game_ChessPiece thiz);
                  libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor (*component2)(libkn_kref_com_dong_maxhap_demos_game_ChessPiece thiz);
                  libkn_KLong (*component3)(libkn_kref_com_dong_maxhap_demos_game_ChessPiece thiz);
                  libkn_kref_com_dong_maxhap_demos_game_ChessPiece (*copy)(libkn_kref_com_dong_maxhap_demos_game_ChessPiece thiz, libkn_kref_com_dong_maxhap_demos_game_ChessPieceType type, libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor color, libkn_KLong position);
                  libkn_KBoolean (*equals)(libkn_kref_com_dong_maxhap_demos_game_ChessPiece thiz, libkn_kref_kotlin_Any other);
                  libkn_KInt (*hashCode)(libkn_kref_com_dong_maxhap_demos_game_ChessPiece thiz);
                  const char* (*toString)(libkn_kref_com_dong_maxhap_demos_game_ChessPiece thiz);
                } ChessPiece;
                struct {
                  libkn_KType* (*_type)(void);
                  libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState (*XiangqiGameState)(libkn_kref_kotlin_collections_List board, libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor currentPlayer, libkn_kref_androidx_compose_ui_geometry_Offset selectedPiece, libkn_KBoolean gameOver, libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor winner);
                  libkn_kref_kotlin_collections_List (*get_board)(libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState thiz);
                  libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor (*get_currentPlayer)(libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState thiz);
                  libkn_KBoolean (*get_gameOver)(libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState thiz);
                  libkn_kref_androidx_compose_ui_geometry_Offset (*get_selectedPiece)(libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState thiz);
                  libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor (*get_winner)(libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState thiz);
                  libkn_kref_kotlin_collections_List (*component1)(libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState thiz);
                  libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor (*component2)(libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState thiz);
                  libkn_kref_androidx_compose_ui_geometry_Offset (*component3)(libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState thiz);
                  libkn_KBoolean (*component4)(libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState thiz);
                  libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor (*component5)(libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState thiz);
                  libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState (*copy)(libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState thiz, libkn_kref_kotlin_collections_List board, libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor currentPlayer, libkn_kref_androidx_compose_ui_geometry_Offset selectedPiece, libkn_KBoolean gameOver, libkn_kref_com_dong_maxhap_demos_game_ChessPieceColor winner);
                  libkn_KBoolean (*equals)(libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState thiz, libkn_kref_kotlin_Any other);
                  libkn_KInt (*hashCode)(libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState thiz);
                  const char* (*toString)(libkn_kref_com_dong_maxhap_demos_game_XiangqiGameState thiz);
                } XiangqiGameState;
                struct {
                  struct {
                    libkn_KType* (*_type)(void);
                    libkn_kref_com_dong_maxhap_demos_game_XiangqiLogic_Companion (*_instance)();
                    libkn_KInt (*get_BOARD_HEIGHT)(libkn_kref_com_dong_maxhap_demos_game_XiangqiLogic_Companion thiz);
                    libkn_KInt (*get_BOARD_WIDTH)(libkn_kref_com_dong_maxhap_demos_game_XiangqiLogic_Companion thiz);
                  } Companion;
                  libkn_KType* (*_type)(void);
                  libkn_kref_com_dong_maxhap_demos_game_XiangqiLogic (*XiangqiLogic)();
                } XiangqiLogic;
                libkn_KInt (*com_dong_maxhap_demos_game_ChessPiece$stableprop_getter)();
                libkn_KInt (*com_dong_maxhap_demos_game_Game2048Logic$stableprop_getter)();
                libkn_KInt (*com_dong_maxhap_demos_game_Game2048State$stableprop_getter)();
                libkn_KInt (*com_dong_maxhap_demos_game_SnakeGameLogic$stableprop_getter)();
                libkn_KInt (*com_dong_maxhap_demos_game_SnakeGameState$stableprop_getter)();
                libkn_KInt (*com_dong_maxhap_demos_game_XiangqiGameState$stableprop_getter)();
                libkn_KInt (*com_dong_maxhap_demos_game_XiangqiLogic$stableprop_getter)();
                libkn_KInt (*com_dong_maxhap_demos_game_ChessPiece$stableprop_getter_)();
                libkn_KInt (*com_dong_maxhap_demos_game_Game2048Logic$stableprop_getter_)();
                libkn_KInt (*com_dong_maxhap_demos_game_Game2048State$stableprop_getter_)();
                libkn_KInt (*com_dong_maxhap_demos_game_SnakeGameLogic$stableprop_getter_)();
                libkn_KInt (*com_dong_maxhap_demos_game_SnakeGameState$stableprop_getter_)();
                libkn_KInt (*com_dong_maxhap_demos_game_XiangqiGameState$stableprop_getter_)();
                libkn_KInt (*com_dong_maxhap_demos_game_XiangqiLogic$stableprop_getter_)();
                libkn_KInt (*com_dong_maxhap_demos_game_ChessPiece$stableprop_getter__)();
                libkn_KInt (*com_dong_maxhap_demos_game_Game2048Logic$stableprop_getter__)();
                libkn_KInt (*com_dong_maxhap_demos_game_Game2048State$stableprop_getter__)();
                libkn_KInt (*com_dong_maxhap_demos_game_SnakeGameLogic$stableprop_getter__)();
                libkn_KInt (*com_dong_maxhap_demos_game_SnakeGameState$stableprop_getter__)();
                libkn_KInt (*com_dong_maxhap_demos_game_XiangqiGameState$stableprop_getter__)();
                libkn_KInt (*com_dong_maxhap_demos_game_XiangqiLogic$stableprop_getter__)();
                libkn_KInt (*com_dong_maxhap_demos_game_ChessPiece$stableprop_getter___)();
                libkn_KInt (*com_dong_maxhap_demos_game_Game2048Logic$stableprop_getter___)();
                libkn_KInt (*com_dong_maxhap_demos_game_Game2048State$stableprop_getter___)();
                libkn_KInt (*com_dong_maxhap_demos_game_SnakeGameLogic$stableprop_getter___)();
                libkn_KInt (*com_dong_maxhap_demos_game_SnakeGameState$stableprop_getter___)();
                libkn_KInt (*com_dong_maxhap_demos_game_XiangqiGameState$stableprop_getter___)();
                libkn_KInt (*com_dong_maxhap_demos_game_XiangqiLogic$stableprop_getter___)();
                libkn_KInt (*com_dong_maxhap_demos_game_ChessPiece$stableprop_getter____)();
                libkn_KInt (*com_dong_maxhap_demos_game_Game2048Logic$stableprop_getter____)();
                libkn_KInt (*com_dong_maxhap_demos_game_Game2048State$stableprop_getter____)();
                libkn_KInt (*com_dong_maxhap_demos_game_SnakeGameLogic$stableprop_getter____)();
                libkn_KInt (*com_dong_maxhap_demos_game_SnakeGameState$stableprop_getter____)();
                libkn_KInt (*com_dong_maxhap_demos_game_XiangqiGameState$stableprop_getter____)();
                libkn_KInt (*com_dong_maxhap_demos_game_XiangqiLogic$stableprop_getter____)();
                libkn_KInt (*com_dong_maxhap_demos_game_ChessPiece$stableprop_getter_____)();
                libkn_KInt (*com_dong_maxhap_demos_game_Game2048Logic$stableprop_getter_____)();
                libkn_KInt (*com_dong_maxhap_demos_game_Game2048State$stableprop_getter_____)();
                libkn_KInt (*com_dong_maxhap_demos_game_SnakeGameLogic$stableprop_getter_____)();
                libkn_KInt (*com_dong_maxhap_demos_game_SnakeGameState$stableprop_getter_____)();
                libkn_KInt (*com_dong_maxhap_demos_game_XiangqiGameState$stableprop_getter_____)();
                libkn_KInt (*com_dong_maxhap_demos_game_XiangqiLogic$stableprop_getter_____)();
              } game;
            } demos;
            struct {
              struct {
                struct {
                  libkn_kref_com_dong_maxhap_navigation_ComposeGroup (*get)(); /* enum entry for Ui. */
                } Ui;
                struct {
                  libkn_kref_com_dong_maxhap_navigation_ComposeGroup (*get)(); /* enum entry for Foundation. */
                } Foundation;
                struct {
                  libkn_kref_com_dong_maxhap_navigation_ComposeGroup (*get)(); /* enum entry for Material. */
                } Material;
                struct {
                  libkn_kref_com_dong_maxhap_navigation_ComposeGroup (*get)(); /* enum entry for Benchmark. */
                } Benchmark;
                struct {
                  libkn_kref_com_dong_maxhap_navigation_ComposeGroup (*get)(); /* enum entry for Platform. */
                } Platform;
                libkn_KType* (*_type)(void);
              } ComposeGroup;
              struct {
                libkn_KType* (*_type)(void);
                libkn_kref_com_dong_maxhap_navigation_ComponentDemo (*ComponentDemo)(const char* id, const char* title, libkn_kref_com_dong_maxhap_navigation_ComposeGroup group);
                libkn_kref_com_dong_maxhap_navigation_ComposeGroup (*get_group)(libkn_kref_com_dong_maxhap_navigation_ComponentDemo thiz);
                const char* (*get_id)(libkn_kref_com_dong_maxhap_navigation_ComponentDemo thiz);
                const char* (*get_title)(libkn_kref_com_dong_maxhap_navigation_ComponentDemo thiz);
                const char* (*component1)(libkn_kref_com_dong_maxhap_navigation_ComponentDemo thiz);
                const char* (*component2)(libkn_kref_com_dong_maxhap_navigation_ComponentDemo thiz);
                libkn_kref_com_dong_maxhap_navigation_ComposeGroup (*component3)(libkn_kref_com_dong_maxhap_navigation_ComponentDemo thiz);
                libkn_kref_com_dong_maxhap_navigation_ComponentDemo (*copy)(libkn_kref_com_dong_maxhap_navigation_ComponentDemo thiz, const char* id, const char* title, libkn_kref_com_dong_maxhap_navigation_ComposeGroup group);
                libkn_KBoolean (*equals)(libkn_kref_com_dong_maxhap_navigation_ComponentDemo thiz, libkn_kref_kotlin_Any other);
                libkn_KInt (*hashCode)(libkn_kref_com_dong_maxhap_navigation_ComponentDemo thiz);
                const char* (*toString)(libkn_kref_com_dong_maxhap_navigation_ComponentDemo thiz);
              } ComponentDemo;
              struct {
                struct {
                  libkn_KType* (*_type)(void);
                  libkn_kref_com_dong_maxhap_navigation_Page_Home (*_instance)();
                  libkn_KBoolean (*equals)(libkn_kref_com_dong_maxhap_navigation_Page_Home thiz, libkn_kref_kotlin_Any other);
                  libkn_KInt (*hashCode)(libkn_kref_com_dong_maxhap_navigation_Page_Home thiz);
                  const char* (*toString)(libkn_kref_com_dong_maxhap_navigation_Page_Home thiz);
                } Home;
                struct {
                  libkn_KType* (*_type)(void);
                  libkn_kref_com_dong_maxhap_navigation_Page_Detail (*Detail)(libkn_kref_com_dong_maxhap_navigation_ComponentDemo demo);
                  libkn_kref_com_dong_maxhap_navigation_ComponentDemo (*get_demo)(libkn_kref_com_dong_maxhap_navigation_Page_Detail thiz);
                  libkn_kref_com_dong_maxhap_navigation_ComponentDemo (*component1)(libkn_kref_com_dong_maxhap_navigation_Page_Detail thiz);
                  libkn_kref_com_dong_maxhap_navigation_Page_Detail (*copy)(libkn_kref_com_dong_maxhap_navigation_Page_Detail thiz, libkn_kref_com_dong_maxhap_navigation_ComponentDemo demo);
                  libkn_KBoolean (*equals)(libkn_kref_com_dong_maxhap_navigation_Page_Detail thiz, libkn_kref_kotlin_Any other);
                  libkn_KInt (*hashCode)(libkn_kref_com_dong_maxhap_navigation_Page_Detail thiz);
                  const char* (*toString)(libkn_kref_com_dong_maxhap_navigation_Page_Detail thiz);
                } Detail;
                libkn_KType* (*_type)(void);
              } Page;
              libkn_kref_kotlin_collections_List (*get_componentDemos)();
              libkn_kref_kotlin_collections_Map (*get_groupTitles)();
              libkn_KInt (*com_dong_maxhap_navigation_ComponentDemo$stableprop_getter)();
              libkn_KInt (*com_dong_maxhap_navigation_Page_Detail$stableprop_getter)();
              libkn_KInt (*com_dong_maxhap_navigation_Page_Home$stableprop_getter)();
              libkn_kref_kotlin_collections_Map (*demosByGroup)();
              const char* (*demosJson)();
              const char* (*groupTitlesJson)();
            } navigation;
            struct {
              libkn_KLong (*getCurrentTimestamp)();
            } utils;
            struct {
              libkn_KType* (*_type)(void);
              libkn_kref_com_dong_maxhap_Greeting (*Greeting)();
              const char* (*greet)(libkn_kref_com_dong_maxhap_Greeting thiz);
            } Greeting;
            struct {
              libkn_KType* (*_type)(void);
              const char* (*get_name)(libkn_kref_com_dong_maxhap_Platform thiz);
            } Platform;
            struct {
              libkn_KType* (*_type)(void);
              libkn_kref_com_dong_maxhap_OhosPlatform (*OhosPlatform)();
              const char* (*get_name)(libkn_kref_com_dong_maxhap_OhosPlatform thiz);
            } OhosPlatform;
            libkn_KInt (*com_dong_maxhap_Greeting$stableprop_getter)();
            libkn_KInt (*com_dong_maxhap_OhosPlatform$stableprop_getter)();
            libkn_KInt (*com_dong_maxhap_Greeting$stableprop_getter_)();
            libkn_KInt (*com_dong_maxhap_OhosPlatform$stableprop_getter_)();
            libkn_KInt (*com_dong_maxhap_Greeting$stableprop_getter__)();
            libkn_KInt (*com_dong_maxhap_OhosPlatform$stableprop_getter__)();
            libkn_KInt (*com_dong_maxhap_Greeting$stableprop_getter___)();
            libkn_KInt (*com_dong_maxhap_OhosPlatform$stableprop_getter___)();
            libkn_KInt (*com_dong_maxhap_Greeting$stableprop_getter____)();
            libkn_KInt (*com_dong_maxhap_OhosPlatform$stableprop_getter____)();
            libkn_KInt (*com_dong_maxhap_Greeting$stableprop_getter_____)();
            libkn_KInt (*com_dong_maxhap_OhosPlatform$stableprop_getter_____)();
            libkn_KInt (*com_dong_maxhap_Greeting$stableprop_getter______)();
            libkn_KInt (*com_dong_maxhap_OhosPlatform$stableprop_getter______)();
            libkn_KInt (*com_dong_maxhap_Greeting$stableprop_getter_______)();
            libkn_KInt (*com_dong_maxhap_OhosPlatform$stableprop_getter_______)();
            libkn_KInt (*com_dong_maxhap_Greeting$stableprop_getter________)();
            libkn_KInt (*com_dong_maxhap_OhosPlatform$stableprop_getter________)();
            void* (*MainArkUIViewController_)(void* env);
            libkn_KInt (*com_dong_maxhap_Greeting$stableprop_getter_________)();
            libkn_KInt (*com_dong_maxhap_OhosPlatform$stableprop_getter_________)();
            libkn_KInt (*com_dong_maxhap_Greeting$stableprop_getter__________)();
            libkn_KInt (*com_dong_maxhap_OhosPlatform$stableprop_getter__________)();
            libkn_kref_com_dong_maxhap_Platform (*getPlatform)();
          } maxhap;
        } dong;
      } com;
      struct {
        struct {
          struct {
            struct {
              struct {
                void (*_Export_ArkUIViewController_aboutToAppear)(void* controllerRef);
                void (*_Export_ArkUIViewController_aboutToDisappear)(void* controllerRef);
                void (*_Export_ArkUIViewController_cancelSyncRefresh)(void* controllerRef, libkn_KInt refreshId);
                void (*_Export_ArkUIViewController_dispatchHoverEvent)(void* controllerRef);
                void (*_Export_ArkUIViewController_dispatchMouseEvent)(void* controllerRef);
                libkn_KBoolean (*_Export_ArkUIViewController_dispatchTouchEvent)(void* controllerRef, void* nativeTouchEvent, libkn_KBoolean ignoreInteropView);
                const char* (*_Export_ArkUIViewController_getId)(void* controllerRef);
                void* (*_Export_ArkUIViewController_getXComponentRender)(void* controllerRef);
                void (*_Export_ArkUIViewController_keyboardWillHide)(void* controllerRef);
                void (*_Export_ArkUIViewController_keyboardWillShow)(void* controllerRef, libkn_KFloat keyboardHeight);
                libkn_KBoolean (*_Export_ArkUIViewController_onBackPress)(void* controllerRef);
                void (*_Export_ArkUIViewController_onFinalize)(void* controllerRef);
                void (*_Export_ArkUIViewController_onFocusEvent)(void* controllerRef);
                void (*_Export_ArkUIViewController_onFrame)(void* controllerRef, libkn_KLong timestamp, libkn_KLong targetTimestamp);
                void (*_Export_ArkUIViewController_onKeyEvent)(void* controllerRef);
                void (*_Export_ArkUIViewController_onPageHide)(void* controllerRef);
                void (*_Export_ArkUIViewController_onPageShow)(void* controllerRef);
                void (*_Export_ArkUIViewController_onSurfaceChanged)(void* controllerRef, libkn_KInt width, libkn_KInt height);
                void (*_Export_ArkUIViewController_onSurfaceCreated)(void* controllerRef, void* xcomponentPtr, libkn_KInt width, libkn_KInt height);
                void (*_Export_ArkUIViewController_onSurfaceDestroyed)(void* controllerRef);
                void (*_Export_ArkUIViewController_onSurfaceHide)(void* controllerRef);
                void (*_Export_ArkUIViewController_onSurfaceShow)(void* controllerRef);
                libkn_KInt (*_Export_ArkUIViewController_requestSyncRefresh)(void* controllerRef);
                const char* (*_Export_ArkUIViewController_sendMessage)(void* controllerRef, const char* type, const char* message);
                void (*_Export_ArkUIViewController_setContext)(void* controllerRef, void* context);
                void (*_Export_ArkUIViewController_setEnv)(void* controllerRef, void* env);
                void (*_Export_ArkUIViewController_setId)(void* controllerRef, const char* id);
                void (*_Export_ArkUIViewController_setMessenger)(void* controllerRef, void* messenger);
                void (*_Export_ArkUIViewController_setRootView)(void* controllerRef, void* backRootView, void* foreRootView, void* touchableRootView);
                void (*_Export_ArkUIViewController_setUIContext)(void* controllerRef, void* uiContext);
                void (*_Export_ArkUIViewController_setXComponentRender)(void* controllerRef, void* render);
                void (*_Export_ArkUIViewInitializer_init)(void* env, void* exports);
              } arkui;
            } ui;
          } export_;
        } compose;
      } androidx;
      struct {
        struct {
          struct {
            struct {
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_array$stableprop_getter)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_drawable$stableprop_getter)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_font$stableprop_getter)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_plurals$stableprop_getter)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_string$stableprop_getter)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_array$stableprop_getter_)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_drawable$stableprop_getter_)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_font$stableprop_getter_)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_plurals$stableprop_getter_)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_string$stableprop_getter_)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_array$stableprop_getter__)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_drawable$stableprop_getter__)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_font$stableprop_getter__)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_plurals$stableprop_getter__)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_string$stableprop_getter__)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_array$stableprop_getter___)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_drawable$stableprop_getter___)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_font$stableprop_getter___)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_plurals$stableprop_getter___)();
              libkn_KInt (*maxhap_composeapp_generated_resources_Res_string$stableprop_getter___)();
            } resources;
          } generated;
        } composeapp;
      } maxhap;
    } root;
  } kotlin;
} libkn_ExportedSymbols;
extern libkn_ExportedSymbols* libkn_symbols(void);
#ifdef __cplusplus
}  /* extern "C" */
#endif
#endif  /* KONAN_LIBKN_H */
