/*
* Copyright (c) Huawei Technologies Co., Ltd. 2023-2024. All rights reserved.
*/
package kv4cj
foreign {
func initializeMMKV_c(rootDir: CString, logLevel: MMKVLogLevel, handler: MMKVHandler): Unit
func onExit_c(): Unit
func defaultMMKV_c(mode: UInt32, cryptKey: CString): UInt64
func mmkvWithID_c(mmapID: CString, mode: UInt32, cryptKey: CString, rootPath: CString): UInt64
func setBool_c(kv: UInt64, key: CString, value: Bool): Bool
func setInt32_t_c(mmkv: UInt64, key: CString, value: Int32): Bool
func setUint32_t_c(mmkv: UInt64, key: CString, value: UInt32): Bool
func setInt64_t_c(mmkv: UInt64, key: CString, value: Int64): Bool
func setUint64_t_c(mmkv: UInt64, key: CString, value: UInt64): Bool
func setFloat_c(mmkv: UInt64, key: CString, value: Float32): Bool
func setDouble_c(mmkv: UInt64, key: CString, value: Float64): Bool
func setString_c(mmkv: UInt64, key: CString, value: CString): Bool
func setBytes_c(kv: UInt64, key: CString, value: CPointer<ByteArray>): Bool
func setStringSet_c(kv: UInt64, key: CString, value: CPointer<DataList>): Bool
func getBool_c(kv: UInt64, key: CString, defaultValue: Bool): Bool
func getInt32_c(mmkv: UInt64, key: CString, defaultValue: Int32): Int32
func getUInt32_c(mmkv: UInt64, key: CString, defaultValue: UInt32): UInt32
func getInt64_c(mmkv: UInt64, key: CString, defaultValue: Int64): Int64
func getUInt64_c(mmkv: UInt64, key: CString, defaultValue: UInt64): UInt64
func getFloat_c(mmkv: UInt64, key: CString, defaultValue: Float32): Float32
func getDouble_c(mmkv: UInt64, key: CString, defaultValue: Float64): Float64
func getString_c(mmkv: UInt64, key: CString): CString
func getBytes_c(kv: UInt64, key: CString): CPointer<ByteArray>
func getStringSet_c(kv: UInt64, key: CString): CPointer<DataList>
func removeValuesForKeys_c(kv: UInt64, arrKeys: CPointer<DataList>): Unit
func removeValueForKey_c(kv: UInt64, key: CString): Unit
func clearAll_c(kv: UInt64): Unit
func trim_c(kv: UInt64): Unit
func close_c(kv: UInt64): Unit
func sync_c(kv: UInt64, sync: Bool): Unit
func clearMemoryCache_c(kv: UInt64): Unit
func lock_c(kv: UInt64): Unit
func unlock_c(kv: UInt64): Unit
func tryLock_c(kv: UInt64): Bool
func backupOne(mmapID: CString, dstDir: CString, srcDir: CString): Bool
func restoreOne(mmapID: CString, srcDir: CString, dstDir: CString): Bool
func backupAll(dstDir: CString, srcDir: CString): UInt64
func restoreAll(srcDir: CString, dstDir: CString): UInt64
func setLogLevel_c(level: MMKVLogLevel): Unit
func setCallbackHandler(handler: MMKVHandler): Unit
func isFileValid_c(mmapID: CString, rootPath: CString): Bool
func pageSize_c(): Int64
func writeValueToBuffer_c(mmkv: UInt64, key: CString, ptr: CPointer<Unit>, size: Int32): Int32
func getValueSize_c(mmkv: UInt64, key: CString, actualSize: Bool): UInt64
func containsKey_c(mmkv: UInt64, key: CString): Bool
func count_c(mmkv: UInt64): UInt64
func totalSize_c(mmkv: UInt64): UInt64
func actualSize_c(mmkv: UInt64): UInt64
func allKeys_c(mmkv: UInt64): CPointer<DataList>
func mmapID_c(mmkv: UInt64): CString
func cryptKey_c(mmkv: UInt64): CString
func reKey_c(mmkv: UInt64, cryptKey: CString): Bool
func checkReSetCryptKey_c(mmkv: UInt64, cryptKey: CString): Bool
func getSizeofSize_t(): Int64
func malloc(size: UIntNative): CPointer<Unit>
func free(ptr: CPointer<Unit>): Unit
}