"""
Auto-generated Python stub file from json.__init__.py
Module: json.__init__
"""


import t, c
from stdint import *
import memhub
import string
import viperio

JSON_NULL:   t.CDefine = 0
JSON_BOOL:   t.CDefine = 1
JSON_INT:    t.CDefine = 2
JSON_FLOAT:  t.CDefine = 3
JSON_STRING: t.CDefine = 4
JSON_ARRAY:  t.CDefine = 5
JSON_OBJECT: t.CDefine = 6

class JsonValue:
    vtype: t.CInt
    bool_val: t.CInt
    int_val: t.CInt64T
    float_val: t.CDouble
    str_val: t.CChar | t.CPtr
    next: 'JsonValue' | t.CPtr
    key: t.CChar | t.CPtr
    child: 'JsonValue' | t.CPtr
    child_count: t.CSizeT
    def __new__(self: JsonValue, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass
    def type(self: JsonValue) -> t.CInt: pass
    def is_null(self: JsonValue) -> bool: pass
    def is_bool(self: JsonValue) -> bool: pass
    def is_int(self: JsonValue) -> bool: pass
    def is_float(self: JsonValue) -> bool: pass
    def is_string(self: JsonValue) -> bool: pass
    def is_array(self: JsonValue) -> bool: pass
    def is_object(self: JsonValue) -> bool: pass
    def as_bool(self: JsonValue) -> bool: pass
    def as_int(self: JsonValue) -> t.CInt64T: pass
    def as_float(self: JsonValue) -> t.CDouble: pass
    def as_string(self: JsonValue) -> t.CChar | t.CPtr: pass
    def __len__(self: JsonValue) -> t.CSizeT: pass
    def __getitem__(self: JsonValue, key: t.CChar | t.CPtr) -> 'JsonValue' | t.CPtr: pass
    def __setitem__(self: JsonValue, key: t.CChar | t.CPtr, val: 'JsonValue' | t.CPtr) -> t.CInt: pass
    def get_item(self: JsonValue, index: t.CSizeT) -> 'JsonValue' | t.CPtr: pass
    def _pool_alloc(self: JsonValue, size: t.CSizeT) -> t.CChar | t.CPtr: pass
    def _append_child(self: JsonValue, child: 'JsonValue' | t.CPtr) -> t.CInt: pass

def null(pool: memhub.MemManager | t.CPtr) -> JsonValue | t.CPtr: pass

def bool_val(pool: memhub.MemManager | t.CPtr, val: bool) -> JsonValue | t.CPtr: pass

def int_val(pool: memhub.MemManager | t.CPtr, val: t.CInt64T) -> JsonValue | t.CPtr: pass

def float_val(pool: memhub.MemManager | t.CPtr, val: t.CDouble) -> JsonValue | t.CPtr: pass

def string_val(pool: memhub.MemManager | t.CPtr, val: t.CChar | t.CPtr) -> JsonValue | t.CPtr: pass

def array(pool: memhub.MemManager | t.CPtr) -> JsonValue | t.CPtr: pass

def object(pool: memhub.MemManager | t.CPtr) -> JsonValue | t.CPtr: pass

def array_append(pool: memhub.MemManager | t.CPtr, arr: JsonValue | t.CPtr, item: JsonValue | t.CPtr) -> t.CInt: pass

def object_set(pool: memhub.MemManager | t.CPtr, obj: JsonValue | t.CPtr, key: t.CChar | t.CPtr, val: JsonValue | t.CPtr) -> t.CInt: pass


from .__parser import parse
from .__writer import write