#if 0
#elif defined(__arm64__) && __arm64__
// Generated by Apple Swift version 6.2.1 effective-5.10 (swiftlang-6.2.1.4.8 clang-1700.4.4.1)
#ifndef KOCHAVATRACKING_SWIFT_H
#define KOCHAVATRACKING_SWIFT_H
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wgcc-compat"

#if !defined(__has_include)
# define __has_include(x) 0
#endif
#if !defined(__has_attribute)
# define __has_attribute(x) 0
#endif
#if !defined(__has_feature)
# define __has_feature(x) 0
#endif
#if !defined(__has_warning)
# define __has_warning(x) 0
#endif

#if __has_include(<swift/objc-prologue.h>)
# include <swift/objc-prologue.h>
#endif

#pragma clang diagnostic ignored "-Wauto-import"
#if defined(__OBJC__)
#include <Foundation/Foundation.h>
#endif
#if defined(__cplusplus)
#include <cstdint>
#include <cstddef>
#include <cstdbool>
#include <cstring>
#include <stdlib.h>
#include <new>
#include <type_traits>
#else
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include <string.h>
#endif
#if defined(__cplusplus)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnon-modular-include-in-framework-module"
#if defined(__arm64e__) && __has_include(<ptrauth.h>)
# include <ptrauth.h>
#else
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wreserved-macro-identifier"
# ifndef __ptrauth_swift_value_witness_function_pointer
#  define __ptrauth_swift_value_witness_function_pointer(x)
# endif
# ifndef __ptrauth_swift_class_method_pointer
#  define __ptrauth_swift_class_method_pointer(x)
# endif
#pragma clang diagnostic pop
#endif
#pragma clang diagnostic pop
#endif

#if !defined(SWIFT_TYPEDEFS)
# define SWIFT_TYPEDEFS 1
# if __has_include(<uchar.h>)
#  include <uchar.h>
# elif !defined(__cplusplus)
typedef unsigned char char8_t;
typedef uint_least16_t char16_t;
typedef uint_least32_t char32_t;
# endif
typedef float swift_float2  __attribute__((__ext_vector_type__(2)));
typedef float swift_float3  __attribute__((__ext_vector_type__(3)));
typedef float swift_float4  __attribute__((__ext_vector_type__(4)));
typedef double swift_double2  __attribute__((__ext_vector_type__(2)));
typedef double swift_double3  __attribute__((__ext_vector_type__(3)));
typedef double swift_double4  __attribute__((__ext_vector_type__(4)));
typedef int swift_int2  __attribute__((__ext_vector_type__(2)));
typedef int swift_int3  __attribute__((__ext_vector_type__(3)));
typedef int swift_int4  __attribute__((__ext_vector_type__(4)));
typedef unsigned int swift_uint2  __attribute__((__ext_vector_type__(2)));
typedef unsigned int swift_uint3  __attribute__((__ext_vector_type__(3)));
typedef unsigned int swift_uint4  __attribute__((__ext_vector_type__(4)));
#endif

#if !defined(SWIFT_PASTE)
# define SWIFT_PASTE_HELPER(x, y) x##y
# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
#endif
#if !defined(SWIFT_METATYPE)
# define SWIFT_METATYPE(X) Class
#endif
#if !defined(SWIFT_CLASS_PROPERTY)
# if __has_feature(objc_class_property)
#  define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
# else
#  define SWIFT_CLASS_PROPERTY(...) 
# endif
#endif
#if !defined(SWIFT_RUNTIME_NAME)
# if __has_attribute(objc_runtime_name)
#  define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
# else
#  define SWIFT_RUNTIME_NAME(X) 
# endif
#endif
#if !defined(SWIFT_COMPILE_NAME)
# if __has_attribute(swift_name)
#  define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
# else
#  define SWIFT_COMPILE_NAME(X) 
# endif
#endif
#if !defined(SWIFT_METHOD_FAMILY)
# if __has_attribute(objc_method_family)
#  define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
# else
#  define SWIFT_METHOD_FAMILY(X) 
# endif
#endif
#if !defined(SWIFT_NOESCAPE)
# if __has_attribute(noescape)
#  define SWIFT_NOESCAPE __attribute__((noescape))
# else
#  define SWIFT_NOESCAPE 
# endif
#endif
#if !defined(SWIFT_RELEASES_ARGUMENT)
# if __has_attribute(ns_consumed)
#  define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
# else
#  define SWIFT_RELEASES_ARGUMENT 
# endif
#endif
#if !defined(SWIFT_WARN_UNUSED_RESULT)
# if __has_attribute(warn_unused_result)
#  define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
# else
#  define SWIFT_WARN_UNUSED_RESULT 
# endif
#endif
#if !defined(SWIFT_NORETURN)
# if __has_attribute(noreturn)
#  define SWIFT_NORETURN __attribute__((noreturn))
# else
#  define SWIFT_NORETURN 
# endif
#endif
#if !defined(SWIFT_CLASS_EXTRA)
# define SWIFT_CLASS_EXTRA 
#endif
#if !defined(SWIFT_PROTOCOL_EXTRA)
# define SWIFT_PROTOCOL_EXTRA 
#endif
#if !defined(SWIFT_ENUM_EXTRA)
# define SWIFT_ENUM_EXTRA 
#endif
#if !defined(SWIFT_CLASS)
# if __has_attribute(objc_subclassing_restricted)
#  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
#  define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# else
#  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
#  define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# endif
#endif
#if !defined(SWIFT_RESILIENT_CLASS)
# if __has_attribute(objc_class_stub)
#  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
#  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
# else
#  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
#  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
# endif
#endif
#if !defined(SWIFT_PROTOCOL)
# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_EXTENSION)
# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
#endif
#if !defined(OBJC_DESIGNATED_INITIALIZER)
# if __has_attribute(objc_designated_initializer)
#  define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
# else
#  define OBJC_DESIGNATED_INITIALIZER 
# endif
#endif
#if !defined(SWIFT_ENUM_ATTR)
# if __has_attribute(enum_extensibility)
#  define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
# else
#  define SWIFT_ENUM_ATTR(_extensibility) 
# endif
#endif
#if !defined(SWIFT_ENUM)
# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
# if __has_feature(generalized_swift_name)
#  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
# else
#  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
# endif
#endif
#if !defined(SWIFT_UNAVAILABLE)
# define SWIFT_UNAVAILABLE __attribute__((unavailable))
#endif
#if !defined(SWIFT_UNAVAILABLE_MSG)
# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
#endif
#if !defined(SWIFT_AVAILABILITY)
# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
#endif
#if !defined(SWIFT_WEAK_IMPORT)
# define SWIFT_WEAK_IMPORT __attribute__((weak_import))
#endif
#if !defined(SWIFT_DEPRECATED)
# define SWIFT_DEPRECATED __attribute__((deprecated))
#endif
#if !defined(SWIFT_DEPRECATED_MSG)
# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
#endif
#if !defined(SWIFT_DEPRECATED_OBJC)
# if __has_feature(attribute_diagnose_if_objc)
#  define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
# else
#  define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
# endif
#endif
#if defined(__OBJC__)
#if !defined(IBSegueAction)
# define IBSegueAction 
#endif
#endif
#if !defined(SWIFT_EXTERN)
# if defined(__cplusplus)
#  define SWIFT_EXTERN extern "C"
# else
#  define SWIFT_EXTERN extern
# endif
#endif
#if !defined(SWIFT_CALL)
# define SWIFT_CALL __attribute__((swiftcall))
#endif
#if !defined(SWIFT_INDIRECT_RESULT)
# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result))
#endif
#if !defined(SWIFT_CONTEXT)
# define SWIFT_CONTEXT __attribute__((swift_context))
#endif
#if !defined(SWIFT_ERROR_RESULT)
# define SWIFT_ERROR_RESULT __attribute__((swift_error_result))
#endif
#if defined(__cplusplus)
# define SWIFT_NOEXCEPT noexcept
#else
# define SWIFT_NOEXCEPT 
#endif
#if !defined(SWIFT_C_INLINE_THUNK)
# if __has_attribute(always_inline)
# if __has_attribute(nodebug)
#  define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug))
# else
#  define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline))
# endif
# else
#  define SWIFT_C_INLINE_THUNK inline
# endif
#endif
#if defined(_WIN32)
#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport)
#endif
#else
#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
# define SWIFT_IMPORT_STDLIB_SYMBOL 
#endif
#endif
#if defined(__OBJC__)
#if __has_feature(objc_modules)
#if __has_warning("-Watimport-in-framework-header")
#pragma clang diagnostic ignored "-Watimport-in-framework-header"
#endif
@import JavaScriptCore;
@import ObjectiveC;
#endif

#endif
#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
#pragma clang diagnostic ignored "-Wduplicate-method-arg"
#if __has_warning("-Wpragma-clang-attribute")
# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
#endif
#pragma clang diagnostic ignored "-Wunknown-pragmas"
#pragma clang diagnostic ignored "-Wnullability"
#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
#pragma clang diagnostic ignored "-Wunsafe-buffer-usage"

#if __has_attribute(external_source_symbol)
# pragma push_macro("any")
# undef any
# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="KochavaTracking",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
# pragma pop_macro("any")
#endif

#if defined(__OBJC__)

@class KochavaNetworking_Product;
/// A class which defines the tracking product.
/// A product in this context generally refers to the result of a build.
/// note:
/// This is currently overridden to be a subclass of NSObject rather than Product so that it can be represented in Objective-C.  If you use Product it will still build, but the automatic module registration will fail to locate the class when importing pre-compiled xcframeworks (as opposed to swift packages, which do still work).  You can see early evidence of the problem if you also make the shared property be of the class type, where the compiler will say that it cannot use @objc because it cannot be expressed in Objective-C.  This is apparently a problem that Swift has providing Objective-C compatibility to Swift classes which subclass other Swift classes across modules.  For example, KochavaNetworking.Product does not have this problem, presumably because it’s in the same module as Product.  In order to convert this class to subclass Product, or to subsequently allow shared to be of the class’ type, a means of registering/loading the class as a Swift-only class would be required.  More importantly, however, we’d need to give up public Objective-C support.  Since that doesn’t seem possible, the only alternative would be that Apple fixes this issue and provides the necessary support, assuming that’s possible.
SWIFT_CLASS_NAMED("Product")
@interface KochavaTracking_Product : NSObject
/// The singleton shared instance.
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) KochavaNetworking_Product * _Nonnull shared;)
+ (KochavaNetworking_Product * _Nonnull)shared SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@class NSString;
@class KVAContext;
@class KVATracking_General;
@class KVANetworking;
/// The class Tracking provides an interface between a host application and Kochava’s Tracking servers.
SWIFT_CLASS_NAMED("Tracking")
@interface KVATracking : NSObject
/// A shared instance, for convenience.
/// This is the preferred way of using a tracking instance.  To complete the integration you must call func <code>Tracking/start()</code>, or else start a controlling linked module.  You may alternatively use a constructor to create your own tracking instance.  The shared instance simplifies your implementation as you do not need to store a tracking instance somewhere in a public location in your own code, and you do not need to manually link together the clients of any optional products.
/// By default this instance will use the default storage location equivalent to calling <code>Tracking/init(storageIdentifier:)</code> with storageIdentifier nil.  If you wish to specify an alternative storage location, see var <code>sharedStorageIdentifier</code>.
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) KVATracking * _Nonnull shared;)
+ (KVATracking * _Nonnull)shared SWIFT_WARN_UNUSED_RESULT;
/// A shared instance, for convenience— optional.
/// See var <code>shared</code>.  This variable will be nil prior to the shared instance being defaulted.  This may be used to optionally invalidate any existing shared instance without causing it to first be defaulted in the process.
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) KVATracking * _Nullable shared_optional;)
+ (KVATracking * _Nullable)shared_optional SWIFT_WARN_UNUSED_RESULT;
/// The shared instance, an ambiguated form of the var <code>shared</code> which conforms to protocol SharedInstanceProvider.
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) id _Nonnull sharedInstance;)
+ (id _Nonnull)sharedInstance SWIFT_WARN_UNUSED_RESULT;
/// Create a tracking instance.  You rarely create instances of class Tracking.  Instead you typically configure the provided shared instance and then start it using the start method.  See static var <code>shared</code>.
/// <h2>Example</h2>
/// \code
/// class MyClass
/// {
///     let tracking = Tracking()
/// }
///
/// \endcode\param storageIdentifier An optional storage identifier.  The storage identifier should be left unset (nil) unless you have a reason to not use the default storage space.
///
- (nonnull instancetype)initWithStorageIdentifier:(NSString * _Nullable)storageIdentifier;
/// Configure the instance with an object.
/// This is the same method which is used to configure the instance when the config response is returned from Kochava’s servers.  It can also be called from the host to change the defaults of various parameters (or else override them).  The structure of the object you provide has the same capability as that which the server may return.  Additionally you can wrap the parameters you provide in special objects with special keys <code>$default$</code>, <code>$default.append$</code>, <code>$override$</code>, or <code>$override.append$</code>, to indicate how these options are treated relative to the server’s options.
/// | Special Key | Treatment  |
/// — | —
/// $default$ |  Elements within this object will serve as a default for any options of the same name when not specified by the server.  The use of this option will replace any previous use of <code>$default$</code> or <code>$default.append$</code>.
/// $default.append$ |  Elements within this object will append to any previously established <code>$default$</code>.  You may use this without using <code>$default$</code> first, allowing you to specify multiple defaults over the course of multiple configuration calls.  The use of this option is generally considered preferred relative to the others.  That is because as a default it still allows for the server to specify overrides, and as an append it will respect any other previous configuration calls which you may have made at other times and places.
/// $override$ |  Elements within this object will override any options of the same name specified by the server.  Use this option when you do not want to allow the server to specify overrides.  The use of this option will replace any previous use of <code>$override$</code> or <code>$override.append$</code>.
/// $override.append$ |  Elements within this object will append to any previously established <code>$override$</code>.  You may use this without using <code>$override$</code> first, allowing you to specify multiple overrides over the course of multiple configuration calls.  The use of this option is generally preferred to <code>$override$</code>.  That is because as an append it will respect any other previous configuration calls which you may have made at other times and places.
/// The following example will deny the collection of two datapoints, the idfa and idfv.  Ordinarily the best way to do this is through the Kochava dashboard, where these can be controlled within multiple version(s) of an app already in production.  However, if at build time you wanted to explicitly override server-side control, such that these two items effectively always appear in the deny datapoints list, the following code would do so:
/// <h2>Example</h2>
/// \code
/// // trackingConfigureObject
/// let trackingConfigureObject =
/// [
///     "$override.append$":
///     [
///         "privacy":
///         [
///             "deny_datapoints":
///             [
///                 "idfa",
///                 "idfv"
///             ]
///         ]
///     ]
/// ]
///
/// // Tracking
/// Tracking.shared.configure(with: trackingConfigureObject, context: .host)
/// Tracking.shared.general.registerIdentity(
///     nameString: "_SOME_NAME_",
///     valueString: "_SOME_VALUE_"
/// )
/// Tracking.shared.start()
///
/// \endcode\param object An object from which to configure the instance.  This is most commonly a JSON object.
///
/// \param context The context from which the object was provided.  In rare cases this may have some bearing on the proper interpretation of what was provided.
///
- (void)configureWith:(id _Nullable)object context:(KVAContext * _Nullable)context;
/// Configure the instance with an object.
/// See func <code>Tracking/configure(with:context:)</code>.
/// \param object An object from which to configure the instance.  This is most commonly a JSON object.
///
/// \param context The context from which the object was provided.  In rare cases this may have some bearing on the proper interpretation of what was provided.
///
/// \param logMessagePrintBool A boolean indicating if a log messages consistent with this being a call to a public entry point should be printed.
///
/// \param asyncBool A boolean indicating if the work within this method should asynchronously dispatch to the globalSerial queue.
///
- (void)configureWith:(id _Nullable)object context:(KVAContext * _Nullable)context logMessagePrintBool:(BOOL)logMessagePrintBool asyncBool:(BOOL)asyncBool;
/// Start the tracking client.
- (void)start;
/// Start the tracking client with advanced options.
/// This method can be used to start an instance of a tracking which was created from decoded JSON.
/// important:
/// If you pass asyncBool as false, it becomes your responsibility to ensure that class System var shared func System/primarySystemStartDidExecuteOnMainThread() has been called prior to calling this method.  The synchronous dispatch associated with this process can only be made after an asynchronous dispatch to ensure that no locks exist at the time, and so if you pass asyncBool as false it will be skipped here.
/// \param logMessagePrintBool A boolean indicating if a log messages consistent with this being a call to a public entry point should be printed.
///
/// \param asyncBool A boolean indicating if the work within this method should asynchronously dispatch to the globalSerial queue.
///
- (void)startWithLogMessagePrintBool:(BOOL)logMessagePrintBool asyncBool:(BOOL)asyncBool;
/// Stop the tracking client.
/// The primary action of this method is to reset the Networking.General.startedTask, which will cause any task which is dependent upon that task to block the initiation of new execution.  The current state of the system is fundamentally maintained;  however, essentially the same things which would not execute prior to having been started will not execute while stopped.
/// Stop is similar to <code>Tracking/invalidate()</code> (or the use of KochavaTracking.Product/reset(deleteLocalDataBool:) or KochavaTracking.Product.shutdown(deleteLocalDataBool:) which wrap <code>Tracking/invalidate()</code>) in that both will block new execution, though through different mechanisms;  however, it is different in that stop maintains state and can be started again.  In contrast <code>Tracking/invalidate()</code> discards state, cannot be re-started, and in the case of the shared instance is automatically released.
/// Stop is similar to class Networking var sleepBool in that both will block new execution through a similar mechanism;  however, it is different in that stop essentially covers all aspects of exectution which are at an inverse of start.  In contrast, class Networking var sleepBool exempts certain key features and these can continue to execute while sleep is in effect.
- (void)stop;
/// Stop the tracking client with advanced options.
/// The primary action of this method is to reset the Networking.General.startedTask, which will cause any task which is dependent upon that task to block the initiation of new execution.  The current state of the system is fundamentally maintained;  however, essentially the same things which would not execute prior to having been started will not execute while stopped.
/// Stop is similar to <code>Tracking/invalidate()</code> (or the use of KochavaTracking.Product/reset(deleteLocalDataBool:) or KochavaTracking.Product.shutdown(deleteLocalDataBool:) which wrap <code>Tracking/invalidate()</code>) in that both will block new execution, though through different mechanisms;  however, it is different in that stop maintains state and can be started again.  In contrast <code>Tracking/invalidate()</code> discards state, cannot be re-started, and in the case of the shared instance is automatically released.
/// Stop is similar to class Networking var sleepBool in that both will block new execution through a similar mechanism;  however, it is different in that stop essentially covers all aspects of exectution which are at an inverse of start.  In contrast, class Networking var sleepBool exempts certain key features and these can continue to execute while sleep is in effect.
/// \param logMessagePrintBool A boolean indicating if a log messages consistent with this being a call to a public entry point should be printed.
///
/// \param asyncBool A boolean indicating if the work within this method should asynchronously dispatch to the globalSerial queue.
///
- (void)stopWithLogMessagePrintBool:(BOOL)logMessagePrintBool asyncBool:(BOOL)asyncBool;
/// Return a description of the instance.
@property (nonatomic, readonly, copy) NSString * _Nonnull description;
/// Invalidate the tracking client.
/// When using this method with the shared instance, you are guaranteed to be re-defaulted a new instance the next time it is referenced, and you may immediately move forward to re-configure and start it.
- (void)invalidate;
/// Invalidate the tracking client with advanced options.
/// See func <code>Tracking/invalidate()</code>
/// \param logMessagePrintBool A boolean indicating if a log messages consistent with this being a call to a public entry point should be printed.
///
/// \param asyncBool A boolean indicating if the work within this method should asynchronously dispatch to the globalSerial queue.
///
- (void)invalidateWithLogMessagePrintBool:(BOOL)logMessagePrintBool asyncBool:(BOOL)asyncBool;
/// A feature which encapsulates all of the general aspects of a tracking instance not belonging to any other encapsulated features.
/// <h1>See</h1>
/// Class <code>Tracking/General</code>.
@property (nonatomic, readonly, strong) KVATracking_General * _Nonnull general;
/// A feature which provides networking support.  The networking instance manages the exchange of data between the client and various server(s), along with the associated tasks, network transactions, and adapters.
/// <h1>See</h1>
/// Class Networking.
@property (nonatomic, readonly, strong) KVANetworking * _Nonnull networking;
/// A boolean indicating if the shared instance’s networking should link automatically.
/// Default true.  If overridden to false, it is imperative that this value be consistently set prior to accessing the shared instance for the first time.  You must make accommodations to set this as early as possible, where it would be prior to any access to var <code>shared</code> throughout all of your code.  Keep in mind that you should expect to need to do the same with any client(s) which would normally automatically link to this client, setting their own boolean to false as well, as those clients could attempt to link as well when their shared instances are accessed for the first time.
/// The presumption is that if you use this feature to disable automatic linking that you would then go on to perform your own linking, making a call to Networking func link(…) as the first interaction(s) you have with the shared instance.
SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL sharedNetworkingLinkAutomaticallyBool;)
+ (BOOL)sharedNetworkingLinkAutomaticallyBool SWIFT_WARN_UNUSED_RESULT;
+ (void)setSharedNetworkingLinkAutomaticallyBool:(BOOL)sharedNetworkingLinkAutomaticallyBool;
/// A string used as a  storage identifier for the shared instance.
/// This is used to further qualify where in persistent storage the information for this instance is stored.  This property should not be used except in very specific circumstances.  Please contact your client success representative if you are interested in using this.  You would set this value to a short unique string consisting of regular alphanumeric characters.
/// Following deployment with a given storage identifier this should never be changed except to represent an entirely new integration.
/// If used, it is imperative that this value be consistently set prior to accessing the shared instance for the first time.  You must make accommodations to set this as early as possible, where it would be prior to any access to var <code>shared</code> throughout all of your code.
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, copy) NSString * _Nullable sharedStorageIdentifier;)
+ (NSString * _Nullable)sharedStorageIdentifier SWIFT_WARN_UNUSED_RESULT;
+ (void)setSharedStorageIdentifier:(NSString * _Nullable)sharedStorageIdentifier;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

@interface KVATracking (SWIFT_EXTENSION(KochavaTracking)) <JSExport>
@end

@interface KVATracking (SWIFT_EXTENSION(KochavaTracking))
@end

/// A feature which is responsible for a collection of datapoints.
SWIFT_CLASS_NAMED("Datapoints")
@interface KVATracking_Datapoints : NSObject
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@interface KVATracking (SWIFT_EXTENSION(KochavaTracking))
@end

/// A feature which encapsulates all of the general aspects of a tracking instance not belonging to any other feature components.
SWIFT_CLASS_NAMED("General")
@interface KVATracking_General : NSObject
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

#endif
#if __has_attribute(external_source_symbol)
# pragma clang attribute pop
#endif
#if defined(__cplusplus)
#endif
#pragma clang diagnostic pop
#endif

#else
#error unsupported Swift architecture
#endif
