typedef _Bool           libkson_KBoolean;
typedef unsigned short     libkson_KChar;
typedef signed char        libkson_KByte;
typedef short              libkson_KShort;
typedef int                libkson_KInt;
typedef long long          libkson_KLong;
typedef unsigned char      libkson_KUByte;
typedef unsigned short     libkson_KUShort;
typedef unsigned int       libkson_KUInt;
typedef unsigned long long libkson_KULong;
typedef float              libkson_KFloat;
typedef double             libkson_KDouble;
typedef void*              libkson_KNativePtr;
struct libkson_KType;
typedef struct libkson_KType libkson_KType;

typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_Byte;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_Short;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_Int;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_Long;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_Float;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_Double;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_Char;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_Boolean;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_Unit;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_UByte;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_UShort;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_UInt;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_ULong;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_Kson;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_Analysis;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_FormatOptions;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_SchemaResult;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TranspileOptions_Json;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_Result;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TranspileOptions_Yaml;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_Result_Success;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_Result_Failure;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_collections_List;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_SchemaResult_Success;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_SchemaValidator;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_SchemaResult_Failure;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_IndentType;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_FormattingStyle;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TranspileOptions;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_FormattingStyle_PLAIN;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_FormattingStyle_DELIMITED;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_FormattingStyle_COMPACT;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_FormattingStyle_CLASSIC;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_IndentType_Spaces;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_IndentType_Tabs;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_Any;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValue;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_Token;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_Position;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_CURLY_BRACE_L;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_CURLY_BRACE_R;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_SQUARE_BRACKET_L;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_SQUARE_BRACKET_R;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_ANGLE_BRACKET_L;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_ANGLE_BRACKET_R;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_COLON;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_DOT;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_END_DASH;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_COMMA;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_COMMENT;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_EMBED_OPEN_DELIM;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_EMBED_CLOSE_DELIM;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_EMBED_TAG;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_EMBED_TAG_STOP;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_EMBED_METADATA;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_EMBED_PREAMBLE_NEWLINE;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_EMBED_CONTENT;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_FALSE;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_UNQUOTED_STRING;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_ILLEGAL_CHAR;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_LIST_DASH;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_NULL;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_NUMBER;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_STRING_OPEN_QUOTE;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_STRING_CLOSE_QUOTE;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_STRING_CONTENT;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_TRUE;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_WHITESPACE;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_TokenType_EOF;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_Message;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_MessageSeverity;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_MessageSeverity_ERROR;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_MessageSeverity_WARNING;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValueType;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValueType_OBJECT;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValueType_ARRAY;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValueType_STRING;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValueType_INTEGER;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValueType_DECIMAL;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValueType_BOOLEAN;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValueType_NULL;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValueType_EMBED;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValue_KsonObject;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_collections_Map;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValue_KsonArray;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValue_KsonString;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValue_KsonNumber;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValue_KsonNumber_Integer;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValue_KsonNumber_Decimal;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValue_KsonBoolean;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValue_KsonNull;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_KsonValue_KsonEmbed;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_SimpleListIterator;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_SimpleMapEntry;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_SimpleMapIterator;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_EnumHelper;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_kotlin_Enum;
typedef struct {
  libkson_KNativePtr pinned;
} libkson_kref_org_kson_AnyHelper;


typedef struct {
  /* Service functions. */
  void (*DisposeStablePointer)(libkson_KNativePtr ptr);
  void (*DisposeString)(const char* string);
  libkson_KBoolean (*IsInstance)(libkson_KNativePtr ref, const libkson_KType* type);
  libkson_kref_kotlin_Byte (*createNullableByte)(libkson_KByte);
  libkson_KByte (*getNonNullValueOfByte)(libkson_kref_kotlin_Byte);
  libkson_kref_kotlin_Short (*createNullableShort)(libkson_KShort);
  libkson_KShort (*getNonNullValueOfShort)(libkson_kref_kotlin_Short);
  libkson_kref_kotlin_Int (*createNullableInt)(libkson_KInt);
  libkson_KInt (*getNonNullValueOfInt)(libkson_kref_kotlin_Int);
  libkson_kref_kotlin_Long (*createNullableLong)(libkson_KLong);
  libkson_KLong (*getNonNullValueOfLong)(libkson_kref_kotlin_Long);
  libkson_kref_kotlin_Float (*createNullableFloat)(libkson_KFloat);
  libkson_KFloat (*getNonNullValueOfFloat)(libkson_kref_kotlin_Float);
  libkson_kref_kotlin_Double (*createNullableDouble)(libkson_KDouble);
  libkson_KDouble (*getNonNullValueOfDouble)(libkson_kref_kotlin_Double);
  libkson_kref_kotlin_Char (*createNullableChar)(libkson_KChar);
  libkson_KChar (*getNonNullValueOfChar)(libkson_kref_kotlin_Char);
  libkson_kref_kotlin_Boolean (*createNullableBoolean)(libkson_KBoolean);
  libkson_KBoolean (*getNonNullValueOfBoolean)(libkson_kref_kotlin_Boolean);
  libkson_kref_kotlin_Unit (*createNullableUnit)(void);
  libkson_kref_kotlin_UByte (*createNullableUByte)(libkson_KUByte);
  libkson_KUByte (*getNonNullValueOfUByte)(libkson_kref_kotlin_UByte);
  libkson_kref_kotlin_UShort (*createNullableUShort)(libkson_KUShort);
  libkson_KUShort (*getNonNullValueOfUShort)(libkson_kref_kotlin_UShort);
  libkson_kref_kotlin_UInt (*createNullableUInt)(libkson_KUInt);
  libkson_KUInt (*getNonNullValueOfUInt)(libkson_kref_kotlin_UInt);
  libkson_kref_kotlin_ULong (*createNullableULong)(libkson_KULong);
  libkson_KULong (*getNonNullValueOfULong)(libkson_kref_kotlin_ULong);

  /* User functions. */
  struct {
    struct {
      struct {
        struct {
          struct {
            libkson_KType* (*_type)(void);
            libkson_kref_org_kson_Kson (*_instance)();
            libkson_kref_org_kson_Analysis (*analyze)(libkson_kref_org_kson_Kson thiz, const char* kson);
            const char* (*format)(libkson_kref_org_kson_Kson thiz, const char* kson, libkson_kref_org_kson_FormatOptions formatOptions);
            libkson_kref_org_kson_SchemaResult (*parseSchema)(libkson_kref_org_kson_Kson thiz, const char* schemaKson);
            libkson_kref_org_kson_Result (*toJson)(libkson_kref_org_kson_Kson thiz, const char* kson, libkson_kref_org_kson_TranspileOptions_Json options);
            libkson_kref_org_kson_Result (*toYaml)(libkson_kref_org_kson_Kson thiz, const char* kson, libkson_kref_org_kson_TranspileOptions_Yaml options);
          } Kson;
          struct {
            struct {
              libkson_KType* (*_type)(void);
              libkson_kref_org_kson_Result_Success (*Success)(const char* output);
              const char* (*get_output)(libkson_kref_org_kson_Result_Success thiz);
            } Success;
            struct {
              libkson_KType* (*_type)(void);
              libkson_kref_org_kson_Result_Failure (*Failure)(libkson_kref_kotlin_collections_List errors);
              libkson_kref_kotlin_collections_List (*get_errors)(libkson_kref_org_kson_Result_Failure thiz);
            } Failure;
            libkson_KType* (*_type)(void);
            libkson_kref_org_kson_Result (*Result)();
          } Result;
          struct {
            struct {
              libkson_KType* (*_type)(void);
              libkson_kref_org_kson_SchemaResult_Success (*Success)(libkson_kref_org_kson_SchemaValidator schemaValidator);
              libkson_kref_org_kson_SchemaValidator (*get_schemaValidator)(libkson_kref_org_kson_SchemaResult_Success thiz);
            } Success;
            struct {
              libkson_KType* (*_type)(void);
              libkson_kref_org_kson_SchemaResult_Failure (*Failure)(libkson_kref_kotlin_collections_List errors);
              libkson_kref_kotlin_collections_List (*get_errors)(libkson_kref_org_kson_SchemaResult_Failure thiz);
            } Failure;
            libkson_KType* (*_type)(void);
            libkson_kref_org_kson_SchemaResult (*SchemaResult)();
          } SchemaResult;
          struct {
            libkson_KType* (*_type)(void);
            libkson_kref_kotlin_collections_List (*validate)(libkson_kref_org_kson_SchemaValidator thiz, const char* kson);
          } SchemaValidator;
          struct {
            libkson_KType* (*_type)(void);
            libkson_kref_org_kson_FormatOptions (*FormatOptions)(libkson_kref_org_kson_IndentType indentType, libkson_kref_org_kson_FormattingStyle formattingStyle);
            libkson_kref_org_kson_FormattingStyle (*get_formattingStyle)(libkson_kref_org_kson_FormatOptions thiz);
            libkson_kref_org_kson_IndentType (*get_indentType)(libkson_kref_org_kson_FormatOptions thiz);
          } FormatOptions;
          struct {
            struct {
              libkson_KType* (*_type)(void);
              libkson_kref_org_kson_TranspileOptions_Json (*Json)(libkson_KBoolean retainEmbedTags);
              libkson_KBoolean (*get_retainEmbedTags)(libkson_kref_org_kson_TranspileOptions_Json thiz);
            } Json;
            struct {
              libkson_KType* (*_type)(void);
              libkson_kref_org_kson_TranspileOptions_Yaml (*Yaml)(libkson_KBoolean retainEmbedTags);
              libkson_KBoolean (*get_retainEmbedTags)(libkson_kref_org_kson_TranspileOptions_Yaml thiz);
            } Yaml;
            libkson_KType* (*_type)(void);
            libkson_kref_org_kson_TranspileOptions (*TranspileOptions)();
            libkson_KBoolean (*get_retainEmbedTags)(libkson_kref_org_kson_TranspileOptions thiz);
          } TranspileOptions;
          struct {
            struct {
              libkson_kref_org_kson_FormattingStyle (*get)(); /* enum entry for PLAIN. */
            } PLAIN;
            struct {
              libkson_kref_org_kson_FormattingStyle (*get)(); /* enum entry for DELIMITED. */
            } DELIMITED;
            struct {
              libkson_kref_org_kson_FormattingStyle (*get)(); /* enum entry for COMPACT. */
            } COMPACT;
            struct {
              libkson_kref_org_kson_FormattingStyle (*get)(); /* enum entry for CLASSIC. */
            } CLASSIC;
            libkson_KType* (*_type)(void);
          } FormattingStyle;
          struct {
            struct {
              libkson_KType* (*_type)(void);
              libkson_kref_org_kson_IndentType_Spaces (*Spaces)(libkson_KInt size);
              libkson_KInt (*get_size)(libkson_kref_org_kson_IndentType_Spaces thiz);
            } Spaces;
            struct {
              libkson_KType* (*_type)(void);
              libkson_kref_org_kson_IndentType_Tabs (*_instance)();
              libkson_KBoolean (*equals)(libkson_kref_org_kson_IndentType_Tabs thiz, libkson_kref_kotlin_Any other);
              libkson_KInt (*hashCode)(libkson_kref_org_kson_IndentType_Tabs thiz);
              const char* (*toString)(libkson_kref_org_kson_IndentType_Tabs thiz);
            } Tabs;
            libkson_KType* (*_type)(void);
            libkson_kref_org_kson_IndentType (*IndentType)();
          } IndentType;
          struct {
            libkson_KType* (*_type)(void);
            libkson_kref_kotlin_collections_List (*get_errors)(libkson_kref_org_kson_Analysis thiz);
            libkson_kref_org_kson_KsonValue (*get_ksonValue)(libkson_kref_org_kson_Analysis thiz);
            libkson_kref_kotlin_collections_List (*get_tokens)(libkson_kref_org_kson_Analysis thiz);
          } Analysis;
          struct {
            libkson_KType* (*_type)(void);
            libkson_kref_org_kson_Position (*get_end)(libkson_kref_org_kson_Token thiz);
            libkson_kref_org_kson_Position (*get_start)(libkson_kref_org_kson_Token thiz);
            const char* (*get_text)(libkson_kref_org_kson_Token thiz);
            libkson_kref_org_kson_TokenType (*get_tokenType)(libkson_kref_org_kson_Token thiz);
          } Token;
          struct {
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for CURLY_BRACE_L. */
            } CURLY_BRACE_L;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for CURLY_BRACE_R. */
            } CURLY_BRACE_R;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for SQUARE_BRACKET_L. */
            } SQUARE_BRACKET_L;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for SQUARE_BRACKET_R. */
            } SQUARE_BRACKET_R;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for ANGLE_BRACKET_L. */
            } ANGLE_BRACKET_L;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for ANGLE_BRACKET_R. */
            } ANGLE_BRACKET_R;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for COLON. */
            } COLON;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for DOT. */
            } DOT;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for END_DASH. */
            } END_DASH;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for COMMA. */
            } COMMA;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for COMMENT. */
            } COMMENT;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for EMBED_OPEN_DELIM. */
            } EMBED_OPEN_DELIM;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for EMBED_CLOSE_DELIM. */
            } EMBED_CLOSE_DELIM;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for EMBED_TAG. */
            } EMBED_TAG;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for EMBED_TAG_STOP. */
            } EMBED_TAG_STOP;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for EMBED_METADATA. */
            } EMBED_METADATA;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for EMBED_PREAMBLE_NEWLINE. */
            } EMBED_PREAMBLE_NEWLINE;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for EMBED_CONTENT. */
            } EMBED_CONTENT;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for FALSE. */
            } FALSE;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for UNQUOTED_STRING. */
            } UNQUOTED_STRING;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for ILLEGAL_CHAR. */
            } ILLEGAL_CHAR;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for LIST_DASH. */
            } LIST_DASH;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for NULL. */
            } NULL;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for NUMBER. */
            } NUMBER;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for STRING_OPEN_QUOTE. */
            } STRING_OPEN_QUOTE;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for STRING_CLOSE_QUOTE. */
            } STRING_CLOSE_QUOTE;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for STRING_CONTENT. */
            } STRING_CONTENT;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for TRUE. */
            } TRUE;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for WHITESPACE. */
            } WHITESPACE;
            struct {
              libkson_kref_org_kson_TokenType (*get)(); /* enum entry for EOF. */
            } EOF;
            libkson_KType* (*_type)(void);
          } TokenType;
          struct {
            libkson_KType* (*_type)(void);
            libkson_kref_org_kson_Position (*get_end)(libkson_kref_org_kson_Message thiz);
            const char* (*get_message)(libkson_kref_org_kson_Message thiz);
            libkson_kref_org_kson_MessageSeverity (*get_severity)(libkson_kref_org_kson_Message thiz);
            libkson_kref_org_kson_Position (*get_start)(libkson_kref_org_kson_Message thiz);
          } Message;
          struct {
            struct {
              libkson_kref_org_kson_MessageSeverity (*get)(); /* enum entry for ERROR. */
            } ERROR;
            struct {
              libkson_kref_org_kson_MessageSeverity (*get)(); /* enum entry for WARNING. */
            } WARNING;
            libkson_KType* (*_type)(void);
          } MessageSeverity;
          struct {
            libkson_KType* (*_type)(void);
            libkson_KInt (*get_column)(libkson_kref_org_kson_Position thiz);
            libkson_KInt (*get_line)(libkson_kref_org_kson_Position thiz);
          } Position;
          struct {
            struct {
              libkson_kref_org_kson_KsonValueType (*get)(); /* enum entry for OBJECT. */
            } OBJECT;
            struct {
              libkson_kref_org_kson_KsonValueType (*get)(); /* enum entry for ARRAY. */
            } ARRAY;
            struct {
              libkson_kref_org_kson_KsonValueType (*get)(); /* enum entry for STRING. */
            } STRING;
            struct {
              libkson_kref_org_kson_KsonValueType (*get)(); /* enum entry for INTEGER. */
            } INTEGER;
            struct {
              libkson_kref_org_kson_KsonValueType (*get)(); /* enum entry for DECIMAL. */
            } DECIMAL;
            struct {
              libkson_kref_org_kson_KsonValueType (*get)(); /* enum entry for BOOLEAN. */
            } BOOLEAN;
            struct {
              libkson_kref_org_kson_KsonValueType (*get)(); /* enum entry for NULL. */
            } NULL;
            struct {
              libkson_kref_org_kson_KsonValueType (*get)(); /* enum entry for EMBED. */
            } EMBED;
            libkson_KType* (*_type)(void);
          } KsonValueType;
          struct {
            struct {
              libkson_KType* (*_type)(void);
              libkson_kref_kotlin_collections_Map (*get_properties)(libkson_kref_org_kson_KsonValue_KsonObject thiz);
              libkson_kref_kotlin_collections_Map (*get_propertyKeys)(libkson_kref_org_kson_KsonValue_KsonObject thiz);
              libkson_kref_org_kson_KsonValueType (*get_type)(libkson_kref_org_kson_KsonValue_KsonObject thiz);
              libkson_kref_kotlin_collections_Map (*component1)(libkson_kref_org_kson_KsonValue_KsonObject thiz);
              libkson_kref_kotlin_collections_Map (*component2)(libkson_kref_org_kson_KsonValue_KsonObject thiz);
              libkson_KBoolean (*equals)(libkson_kref_org_kson_KsonValue_KsonObject thiz, libkson_kref_kotlin_Any other);
              libkson_KInt (*hashCode)(libkson_kref_org_kson_KsonValue_KsonObject thiz);
              const char* (*toString)(libkson_kref_org_kson_KsonValue_KsonObject thiz);
            } KsonObject;
            struct {
              libkson_KType* (*_type)(void);
              libkson_kref_kotlin_collections_List (*get_elements)(libkson_kref_org_kson_KsonValue_KsonArray thiz);
              libkson_kref_org_kson_KsonValueType (*get_type)(libkson_kref_org_kson_KsonValue_KsonArray thiz);
            } KsonArray;
            struct {
              libkson_KType* (*_type)(void);
              libkson_kref_org_kson_KsonValueType (*get_type)(libkson_kref_org_kson_KsonValue_KsonString thiz);
              const char* (*get_value)(libkson_kref_org_kson_KsonValue_KsonString thiz);
            } KsonString;
            struct {
              struct {
                libkson_KType* (*_type)(void);
                libkson_kref_org_kson_Position (*get_internalEnd)(libkson_kref_org_kson_KsonValue_KsonNumber_Integer thiz);
                libkson_kref_org_kson_Position (*get_internalStart)(libkson_kref_org_kson_KsonValue_KsonNumber_Integer thiz);
                libkson_kref_org_kson_KsonValueType (*get_type)(libkson_kref_org_kson_KsonValue_KsonNumber_Integer thiz);
                libkson_KInt (*get_value)(libkson_kref_org_kson_KsonValue_KsonNumber_Integer thiz);
              } Integer;
              struct {
                libkson_KType* (*_type)(void);
                libkson_kref_org_kson_KsonValueType (*get_type)(libkson_kref_org_kson_KsonValue_KsonNumber_Decimal thiz);
                libkson_KDouble (*get_value)(libkson_kref_org_kson_KsonValue_KsonNumber_Decimal thiz);
              } Decimal;
              libkson_KType* (*_type)(void);
              libkson_kref_org_kson_KsonValue_KsonNumber (*KsonNumber)(libkson_kref_org_kson_Position start, libkson_kref_org_kson_Position end);
            } KsonNumber;
            struct {
              libkson_KType* (*_type)(void);
              libkson_kref_org_kson_KsonValueType (*get_type)(libkson_kref_org_kson_KsonValue_KsonBoolean thiz);
              libkson_KBoolean (*get_value)(libkson_kref_org_kson_KsonValue_KsonBoolean thiz);
            } KsonBoolean;
            struct {
              libkson_KType* (*_type)(void);
              libkson_kref_org_kson_KsonValueType (*get_type)(libkson_kref_org_kson_KsonValue_KsonNull thiz);
            } KsonNull;
            struct {
              libkson_KType* (*_type)(void);
              const char* (*get_content)(libkson_kref_org_kson_KsonValue_KsonEmbed thiz);
              const char* (*get_metadata)(libkson_kref_org_kson_KsonValue_KsonEmbed thiz);
              const char* (*get_tag)(libkson_kref_org_kson_KsonValue_KsonEmbed thiz);
              libkson_kref_org_kson_KsonValueType (*get_type)(libkson_kref_org_kson_KsonValue_KsonEmbed thiz);
            } KsonEmbed;
            libkson_KType* (*_type)(void);
            libkson_kref_org_kson_KsonValue (*KsonValue)(libkson_kref_org_kson_Position start, libkson_kref_org_kson_Position end);
            libkson_kref_org_kson_Position (*get_end)(libkson_kref_org_kson_KsonValue thiz);
            libkson_kref_org_kson_Position (*get_start)(libkson_kref_org_kson_KsonValue thiz);
            libkson_kref_org_kson_KsonValueType (*get_type)(libkson_kref_org_kson_KsonValue thiz);
          } KsonValue;
          struct {
            libkson_KType* (*_type)(void);
            libkson_kref_org_kson_SimpleListIterator (*SimpleListIterator)(libkson_kref_kotlin_collections_List list);
            libkson_kref_kotlin_Any (*next)(libkson_kref_org_kson_SimpleListIterator thiz);
          } SimpleListIterator;
          struct {
            libkson_KType* (*_type)(void);
            libkson_kref_org_kson_SimpleMapEntry (*SimpleMapEntry)(libkson_kref_kotlin_Any key, libkson_kref_kotlin_Any value);
            libkson_kref_kotlin_Any (*get_key)(libkson_kref_org_kson_SimpleMapEntry thiz);
            libkson_kref_kotlin_Any (*get_value)(libkson_kref_org_kson_SimpleMapEntry thiz);
            libkson_kref_kotlin_Any (*component1)(libkson_kref_org_kson_SimpleMapEntry thiz);
            libkson_kref_kotlin_Any (*component2)(libkson_kref_org_kson_SimpleMapEntry thiz);
            libkson_kref_org_kson_SimpleMapEntry (*copy)(libkson_kref_org_kson_SimpleMapEntry thiz, libkson_kref_kotlin_Any key, libkson_kref_kotlin_Any value);
            libkson_KBoolean (*equals)(libkson_kref_org_kson_SimpleMapEntry thiz, libkson_kref_kotlin_Any other);
            libkson_KInt (*hashCode)(libkson_kref_org_kson_SimpleMapEntry thiz);
            const char* (*toString)(libkson_kref_org_kson_SimpleMapEntry thiz);
          } SimpleMapEntry;
          struct {
            libkson_KType* (*_type)(void);
            libkson_kref_org_kson_SimpleMapIterator (*SimpleMapIterator)(libkson_kref_kotlin_collections_Map map);
            libkson_kref_org_kson_SimpleMapEntry (*next)(libkson_kref_org_kson_SimpleMapIterator thiz);
          } SimpleMapIterator;
          struct {
            libkson_KType* (*_type)(void);
            libkson_kref_org_kson_EnumHelper (*_instance)();
            const char* (*name)(libkson_kref_org_kson_EnumHelper thiz, libkson_kref_kotlin_Enum value);
            libkson_KInt (*ordinal)(libkson_kref_org_kson_EnumHelper thiz, libkson_kref_kotlin_Enum value);
          } EnumHelper;
          struct {
            libkson_KType* (*_type)(void);
            libkson_kref_org_kson_AnyHelper (*_instance)();
            libkson_KBoolean (*equals)(libkson_kref_org_kson_AnyHelper thiz, libkson_kref_kotlin_Any x, libkson_kref_kotlin_Any y);
            libkson_KInt (*hashCode)(libkson_kref_org_kson_AnyHelper thiz, libkson_kref_kotlin_Any x);
            const char* (*toString)(libkson_kref_org_kson_AnyHelper thiz, libkson_kref_kotlin_Any x);
          } AnyHelper;
        } kson;
      } org;
    } root;
  } kotlin;
} libkson_ExportedSymbols;
extern libkson_ExportedSymbols* libkson_symbols(void);
