
package pod1 {

    enum class EnumWithoutConstant private constructor(value: Long) : Enum<EnumWithoutConstant>, CEnum {
        override val value: Long

        class Var constructor(rawPtr: NativePtr /* = NativePtr */) : CEnumVar {
            var value: EnumWithoutConstant
            @CEnumVarTypeSize(size = 8) @Deprecated(level = DeprecationLevel.WARNING, message = "Use sizeOf<T>() or alignOf<T>() instead.", replaceWith = ReplaceWith(expression = "", imports = {})) companion object : CPrimitiveVar.Type
        }

        companion object {
            @Deprecated(level = DeprecationLevel.WARNING, message = "Will be removed.", replaceWith = ReplaceWith(expression = "", imports = {})) fun byValue(value: Long): EnumWithoutConstant
        }

    }

    enum class ForwardEnum private constructor(value: Long) : Enum<ForwardEnum>, CEnum {
        @ConstantValue.Long(value = 0.toLong()) enum entry A
        @ConstantValue.Long(value = 1.toLong()) enum entry B
        override val value: Long

        class Var constructor(rawPtr: NativePtr /* = NativePtr */) : CEnumVar {
            var value: ForwardEnum
            @CEnumVarTypeSize(size = 8) @Deprecated(level = DeprecationLevel.WARNING, message = "Use sizeOf<T>() or alignOf<T>() instead.", replaceWith = ReplaceWith(expression = "", imports = {})) companion object : CPrimitiveVar.Type
        }

        companion object {
            @Deprecated(level = DeprecationLevel.WARNING, message = "Will be removed.", replaceWith = ReplaceWith(expression = "", imports = {})) fun byValue(value: Long): ForwardEnum
        }

    }

}

package pod1 {
    var enumWithoutConstantVar: EnumWithoutConstant
        @CCall(id = "knifunptr_pod10_enumWithoutConstantVar_getter") get
        @CCall(id = "knifunptr_pod11_enumWithoutConstantVar_setter") set
    var forwardEnumVar: ForwardEnum
        @CCall(id = "knifunptr_pod12_forwardEnumVar_getter") get
        @CCall(id = "knifunptr_pod13_forwardEnumVar_setter") set
}

