#if 0
#elif defined(__arm64__) && __arm64__
// Generated by Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.1)
#ifndef IMQACORE_SWIFT_H
#define IMQACORE_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 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 Foundation;
@import ObjectiveC;
@import WebKit;
#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="IMQACore",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
# pragma pop_macro("any")
#endif

#if defined(__OBJC__)

SWIFT_CLASS("_TtC8IMQACore14CaptureService")
@interface CaptureService : NSObject
/// This method will be called once when the IMQA SDK starts.
/// You should override this method if your <code>CaptureService</code> needs some sort of
/// setup process before it can start generating data.
- (void)onInstall;
/// This method is called by the IMQA SDK when it’s been setup and started capturing data.
/// You should override this method if your <code>CaptureService</code> needs to do something when started.
- (void)onStart;
/// This method is called by the IMQA SDK when it stops capturing data.
/// You should override this method if your <code>CaptureService</code> needs to do something when stopped.
- (void)onStop;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


SWIFT_CLASS("_TtC8IMQACore26AppLifecycleCaptureService")
@interface AppLifecycleCaptureService : CaptureService
- (nonnull instancetype)init;
- (void)onInstall;
@end




SWIFT_CLASS("_TtC8IMQACore21CaptureServiceBuilder")
@interface CaptureServiceBuilder : NSObject
- (NSArray<CaptureService *> * _Nonnull)build SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)add:(CaptureService * _Nonnull)service;
- (nonnull instancetype)removeOfType:(Class _Nonnull)type;
- (nonnull instancetype)addAll;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

/// The state of a <code>CaptureService</code>
typedef SWIFT_ENUM(NSInteger, CaptureServiceState, open) {
/// Indicates that the service has not been installed yet.
  CaptureServiceStateUninstalled = 0,
/// Indicates that the service has been initialized.
/// This state can be used to set up necessary dependencies or perform required
/// modifications (e.g., method swizzling) to enable the service to gather
/// data when needed.
/// important:
/// This does not necessarily imply that the service is active.
  CaptureServiceStateInstalled = 1,
/// Indicates that the service is active and capturing data.
  CaptureServiceStateActive = 2,
/// Indicates that the service is initialized but is not actively capturing data.
  CaptureServiceStatePaused = 3,
};


SWIFT_CLASS_NAMED("CrashCaptureService")
@interface IMQACrashCaptureService : CaptureService
- (nonnull instancetype)init;
- (void)onInstall;
@end

enum IMQASDKState : NSInteger;

SWIFT_CLASS("_TtC8IMQACore4IMQA")
@interface IMQA : NSObject
SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL isDebug;)
+ (BOOL)isDebug SWIFT_WARN_UNUSED_RESULT;
+ (void)setIsDebug:(BOOL)value;
/// Returns the current state of the SDK.
@property (nonatomic, readonly) enum IMQASDKState state;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


@interface IMQA (SWIFT_EXTENSION(IMQACore))
@end


SWIFT_CLASS_NAMED("WebviewOption")
@interface IMQAWebviewOption : NSObject
/// IMQA Mobile SDK에서 세션을 공유할 지 여부(true: 공유 = Mobile SDK에서 공유한 값으로 계측, false: 비공유 = 설정된 값으로 계측)
@property (nonatomic, readonly) BOOL isSharedSession;
/// webagent web단에서 삽입하는가 앱에서 삽입하는가
/// true 앱단에서 삽입, false web에서 삽입
@property (nonatomic, readonly) BOOL isNeedWebAgent;
- (nonnull instancetype)initWithIsSharedSession:(BOOL)isSharedSession isNeedWebAgent:(BOOL)isNeedWebAgent OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


@interface IMQA (SWIFT_EXTENSION(IMQACore))
@end


SWIFT_CLASS_NAMED("SDKCollectControl")
@interface IMQASDKCollectControl : NSObject
@property (nonatomic, readonly) BOOL remoteCollectionControlEnable;
- (nonnull instancetype)initWithRemoteCollectionControlEnable:(BOOL)remoteCollectionControlEnable OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


@interface IMQA (SWIFT_EXTENSION(IMQACore))
@end

@class NSString;
@class IMQAEndpoints;
enum IMQADeployEnvironment : NSInteger;
@class IMQAXHROption;

SWIFT_CLASS_NAMED("Options")
@interface IMQAOptions : NSObject
- (nonnull instancetype)initWithNamespace:(NSString * _Nullable)namespace_ serviceKey:(NSString * _Nonnull)serviceKey endpoints:(IMQAEndpoints * _Nullable)endpoints deployEnvironment:(enum IMQADeployEnvironment)deployEnvironment sampleRate:(double)sampleRate isDeviceIdEnable:(BOOL)isDeviceIdEnable sdkCollectControl:(IMQASDKCollectControl * _Nullable)sdkCollectControl xhrOption:(IMQAXHROption * _Nullable)xhrOption webviewOption:(IMQAWebviewOption * _Nullable)webviewOption OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


@interface IMQA (SWIFT_EXTENSION(IMQACore))
@end

typedef SWIFT_ENUM_NAMED(NSInteger, IMQALogLevel, "LogLevel", open) {
  IMQALogLevelNone = 0,
  IMQALogLevelTrace = 1,
  IMQALogLevelDebug = 2,
  IMQALogLevelInfo = 3,
  IMQALogLevelWarning = 4,
  IMQALogLevelError = 5,
};


@interface IMQA (SWIFT_EXTENSION(IMQACore))
@end


SWIFT_CLASS_NAMED("Endpoints")
@interface IMQAEndpoints : NSObject
/// The base URL to upload session data
@property (nonatomic, readonly, copy) NSString * _Nonnull baseURL;
- (nonnull instancetype)initWithCollectorURL:(NSString * _Nonnull)collectorURL OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end



@interface IMQA (SWIFT_EXTENSION(IMQACore))
@end


SWIFT_CLASS_NAMED("XHROption")
@interface IMQAXHROption : NSObject
@property (nonatomic, readonly) BOOL isCaptureHttpRequestHeader;
@property (nonatomic, readonly) BOOL isCaptureHttpRequestBody;
- (nonnull instancetype)initWithIsCaptureHttpRequestHeader:(BOOL)isCaptureHttpRequestHeader isCaptureHttpRequestBody:(BOOL)isCaptureHttpRequestBody OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


@class WKUserContentController;

@interface IMQA (SWIFT_EXTENSION(IMQACore))
/// sdk parameters setting fucntion
/// \param options parameters
///
///
/// returns:
/// instance
+ (IMQA * _Nullable)setupWithOptions:(IMQAOptions * _Nonnull)options isDebug:(BOOL)isDebug;
/// SDK시작
- (void)start;
/// set userID
/// \param id userID
///
+ (void)setUserIdWithId:(NSString * _Nullable)id;
/// userID 회득
///
/// returns:
/// userID
+ (NSString * _Nullable)getUserId SWIFT_WARN_UNUSED_RESULT;
/// custom log 찍기
/// \param level log level
///
/// \param message 메세지
///
+ (void)customLogWithLevel:(enum IMQALogLevel)level message:(NSString * _Nonnull)message;
/// Span 데이터 전송시 함께 포함되는 값입니다.
/// 형태: Dict[“custom.key”] = value
/// 예: key가 “hello”, value가 “kitty”인 경우
/// Dict[“custom.hello”] = “kitty”
/// SDK start 이전에 설정하면 이후 생성되는 모든 Span에 자동으로 포함됩니다.
/// SDK start 이후 설정하면 설정하는 시점이후 생성되는 모든 Span에 자동으로 포함됩니다.
/// \param key 키
///
/// \param value 값
///
+ (void)setAttributeWithKey:(NSString * _Nonnull)key value:(NSString * _Nullable)value;
/// keychain에 생성한 UUID 회득
///
/// returns:
/// id
+ (NSString * _Nonnull)getDeviceId SWIFT_WARN_UNUSED_RESULT;
/// 수동으로 click span 수집
/// \param buttonName 버튼 이름
///
/// \param buttonClassName 버튼 클라스
///
+ (void)sendClickEventWithButtonName:(NSString * _Nonnull)buttonName buttonClassName:(NSString * _Nonnull)buttonClassName SWIFT_DEPRECATED_MSG("This API will be removed in the future.");
/// 1:) xib 로 webview layout시 주동으로 이 함수를 호출하세요.  webview와 연동하는 script주입하는 방법입니다.
/// 2:) code로 initial시 호출하지 않아도 됩니다.
/// 즉: 아래와 같은 code로 initial시
/// let configuration = WKWebViewConfiguration()
/// let view = WKWebView(frame: .zero, configuration: configuration)
/// \param userContentController userContentController
///
+ (void)setWebviewConfigurationWithUserContentController:(WKUserContentController * _Nonnull)userContentController;
/// webview에 주입할 script를 회득한다
///
/// returns:
/// webview에 주입할 scripts
+ (NSArray<NSString *> * _Nonnull)getWebviewInjectScripts SWIFT_WARN_UNUSED_RESULT;
@end

@class NSBundle;

SWIFT_CLASS("_TtC8IMQACore17IMQACoreResources")
@interface IMQACoreResources : NSObject
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) NSBundle * _Nonnull bundle;)
+ (NSBundle * _Nonnull)bundle SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

typedef SWIFT_ENUM(NSInteger, IMQADeployEnvironment, open) {
  IMQADeployEnvironmentDev SWIFT_COMPILE_NAME("development") = 0,
  IMQADeployEnvironmentProd SWIFT_COMPILE_NAME("production") = 1,
};

@class WKScriptMessage;

SWIFT_CLASS("_TtC8IMQACore13IMQASDKBridge")
@interface IMQASDKBridge : NSObject <WKScriptMessageHandler>
- (void)userContentController:(WKUserContentController * _Nonnull)userContentController didReceiveScriptMessage:(WKScriptMessage * _Nonnull)message;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

typedef SWIFT_ENUM(NSInteger, IMQASDKState, open) {
/// The SDK was not setup yet
  IMQASDKStateNotInitialized = 0,
/// The SDK was setup but hasn’t started yet
  IMQASDKStateInitialized = 1,
/// The SDK was started
  IMQASDKStateStarted = 2,
/// The SDK was stopped
  IMQASDKStateStopped = 3,
};

typedef SWIFT_ENUM(NSInteger, LogSeverity, open) {
  LogSeverityTrace = 1,
  LogSeverityDebug = 5,
  LogSeverityInfo = 9,
  LogSeverityWarn = 13,
  LogSeverityError = 17,
  LogSeverityFatal = 24,
};




SWIFT_CLASS_NAMED("SwiftUILifecycleCaptureService")
@interface IMQASwiftUILifecycleCaptureService : CaptureService
- (nonnull instancetype)init;
- (void)onInstall;
@end


SWIFT_CLASS_NAMED("TapCaptureService")
@interface IMQATapCaptureService : CaptureService
- (nonnull instancetype)init;
- (void)onInstall;
@end





SWIFT_CLASS_NAMED("URLSessionCaptureService")
@interface IMQAURLSessionCaptureService : CaptureService
- (nonnull instancetype)init;
- (void)onInstall;
@end



SWIFT_CLASS_NAMED("ViewCaptureService")
@interface IMQAViewCaptureService : CaptureService
- (nonnull instancetype)init;
- (void)onInstall;
@end


SWIFT_CLASS_NAMED("WebViewCaptureService")
@interface IMQAWebViewCaptureService : CaptureService
- (nonnull instancetype)init;
- (void)onInstall;
@end

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

#elif defined(__x86_64__) && __x86_64__
// Generated by Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.1)
#ifndef IMQACORE_SWIFT_H
#define IMQACORE_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 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 Foundation;
@import ObjectiveC;
@import WebKit;
#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="IMQACore",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
# pragma pop_macro("any")
#endif

#if defined(__OBJC__)

SWIFT_CLASS("_TtC8IMQACore14CaptureService")
@interface CaptureService : NSObject
/// This method will be called once when the IMQA SDK starts.
/// You should override this method if your <code>CaptureService</code> needs some sort of
/// setup process before it can start generating data.
- (void)onInstall;
/// This method is called by the IMQA SDK when it’s been setup and started capturing data.
/// You should override this method if your <code>CaptureService</code> needs to do something when started.
- (void)onStart;
/// This method is called by the IMQA SDK when it stops capturing data.
/// You should override this method if your <code>CaptureService</code> needs to do something when stopped.
- (void)onStop;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


SWIFT_CLASS("_TtC8IMQACore26AppLifecycleCaptureService")
@interface AppLifecycleCaptureService : CaptureService
- (nonnull instancetype)init;
- (void)onInstall;
@end




SWIFT_CLASS("_TtC8IMQACore21CaptureServiceBuilder")
@interface CaptureServiceBuilder : NSObject
- (NSArray<CaptureService *> * _Nonnull)build SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)add:(CaptureService * _Nonnull)service;
- (nonnull instancetype)removeOfType:(Class _Nonnull)type;
- (nonnull instancetype)addAll;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

/// The state of a <code>CaptureService</code>
typedef SWIFT_ENUM(NSInteger, CaptureServiceState, open) {
/// Indicates that the service has not been installed yet.
  CaptureServiceStateUninstalled = 0,
/// Indicates that the service has been initialized.
/// This state can be used to set up necessary dependencies or perform required
/// modifications (e.g., method swizzling) to enable the service to gather
/// data when needed.
/// important:
/// This does not necessarily imply that the service is active.
  CaptureServiceStateInstalled = 1,
/// Indicates that the service is active and capturing data.
  CaptureServiceStateActive = 2,
/// Indicates that the service is initialized but is not actively capturing data.
  CaptureServiceStatePaused = 3,
};


SWIFT_CLASS_NAMED("CrashCaptureService")
@interface IMQACrashCaptureService : CaptureService
- (nonnull instancetype)init;
- (void)onInstall;
@end

enum IMQASDKState : NSInteger;

SWIFT_CLASS("_TtC8IMQACore4IMQA")
@interface IMQA : NSObject
SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL isDebug;)
+ (BOOL)isDebug SWIFT_WARN_UNUSED_RESULT;
+ (void)setIsDebug:(BOOL)value;
/// Returns the current state of the SDK.
@property (nonatomic, readonly) enum IMQASDKState state;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


@interface IMQA (SWIFT_EXTENSION(IMQACore))
@end


SWIFT_CLASS_NAMED("WebviewOption")
@interface IMQAWebviewOption : NSObject
/// IMQA Mobile SDK에서 세션을 공유할 지 여부(true: 공유 = Mobile SDK에서 공유한 값으로 계측, false: 비공유 = 설정된 값으로 계측)
@property (nonatomic, readonly) BOOL isSharedSession;
/// webagent web단에서 삽입하는가 앱에서 삽입하는가
/// true 앱단에서 삽입, false web에서 삽입
@property (nonatomic, readonly) BOOL isNeedWebAgent;
- (nonnull instancetype)initWithIsSharedSession:(BOOL)isSharedSession isNeedWebAgent:(BOOL)isNeedWebAgent OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


@interface IMQA (SWIFT_EXTENSION(IMQACore))
@end


SWIFT_CLASS_NAMED("SDKCollectControl")
@interface IMQASDKCollectControl : NSObject
@property (nonatomic, readonly) BOOL remoteCollectionControlEnable;
- (nonnull instancetype)initWithRemoteCollectionControlEnable:(BOOL)remoteCollectionControlEnable OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


@interface IMQA (SWIFT_EXTENSION(IMQACore))
@end

@class NSString;
@class IMQAEndpoints;
enum IMQADeployEnvironment : NSInteger;
@class IMQAXHROption;

SWIFT_CLASS_NAMED("Options")
@interface IMQAOptions : NSObject
- (nonnull instancetype)initWithNamespace:(NSString * _Nullable)namespace_ serviceKey:(NSString * _Nonnull)serviceKey endpoints:(IMQAEndpoints * _Nullable)endpoints deployEnvironment:(enum IMQADeployEnvironment)deployEnvironment sampleRate:(double)sampleRate isDeviceIdEnable:(BOOL)isDeviceIdEnable sdkCollectControl:(IMQASDKCollectControl * _Nullable)sdkCollectControl xhrOption:(IMQAXHROption * _Nullable)xhrOption webviewOption:(IMQAWebviewOption * _Nullable)webviewOption OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


@interface IMQA (SWIFT_EXTENSION(IMQACore))
@end

typedef SWIFT_ENUM_NAMED(NSInteger, IMQALogLevel, "LogLevel", open) {
  IMQALogLevelNone = 0,
  IMQALogLevelTrace = 1,
  IMQALogLevelDebug = 2,
  IMQALogLevelInfo = 3,
  IMQALogLevelWarning = 4,
  IMQALogLevelError = 5,
};


@interface IMQA (SWIFT_EXTENSION(IMQACore))
@end


SWIFT_CLASS_NAMED("Endpoints")
@interface IMQAEndpoints : NSObject
/// The base URL to upload session data
@property (nonatomic, readonly, copy) NSString * _Nonnull baseURL;
- (nonnull instancetype)initWithCollectorURL:(NSString * _Nonnull)collectorURL OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end



@interface IMQA (SWIFT_EXTENSION(IMQACore))
@end


SWIFT_CLASS_NAMED("XHROption")
@interface IMQAXHROption : NSObject
@property (nonatomic, readonly) BOOL isCaptureHttpRequestHeader;
@property (nonatomic, readonly) BOOL isCaptureHttpRequestBody;
- (nonnull instancetype)initWithIsCaptureHttpRequestHeader:(BOOL)isCaptureHttpRequestHeader isCaptureHttpRequestBody:(BOOL)isCaptureHttpRequestBody OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


@class WKUserContentController;

@interface IMQA (SWIFT_EXTENSION(IMQACore))
/// sdk parameters setting fucntion
/// \param options parameters
///
///
/// returns:
/// instance
+ (IMQA * _Nullable)setupWithOptions:(IMQAOptions * _Nonnull)options isDebug:(BOOL)isDebug;
/// SDK시작
- (void)start;
/// set userID
/// \param id userID
///
+ (void)setUserIdWithId:(NSString * _Nullable)id;
/// userID 회득
///
/// returns:
/// userID
+ (NSString * _Nullable)getUserId SWIFT_WARN_UNUSED_RESULT;
/// custom log 찍기
/// \param level log level
///
/// \param message 메세지
///
+ (void)customLogWithLevel:(enum IMQALogLevel)level message:(NSString * _Nonnull)message;
/// Span 데이터 전송시 함께 포함되는 값입니다.
/// 형태: Dict[“custom.key”] = value
/// 예: key가 “hello”, value가 “kitty”인 경우
/// Dict[“custom.hello”] = “kitty”
/// SDK start 이전에 설정하면 이후 생성되는 모든 Span에 자동으로 포함됩니다.
/// SDK start 이후 설정하면 설정하는 시점이후 생성되는 모든 Span에 자동으로 포함됩니다.
/// \param key 키
///
/// \param value 값
///
+ (void)setAttributeWithKey:(NSString * _Nonnull)key value:(NSString * _Nullable)value;
/// keychain에 생성한 UUID 회득
///
/// returns:
/// id
+ (NSString * _Nonnull)getDeviceId SWIFT_WARN_UNUSED_RESULT;
/// 수동으로 click span 수집
/// \param buttonName 버튼 이름
///
/// \param buttonClassName 버튼 클라스
///
+ (void)sendClickEventWithButtonName:(NSString * _Nonnull)buttonName buttonClassName:(NSString * _Nonnull)buttonClassName SWIFT_DEPRECATED_MSG("This API will be removed in the future.");
/// 1:) xib 로 webview layout시 주동으로 이 함수를 호출하세요.  webview와 연동하는 script주입하는 방법입니다.
/// 2:) code로 initial시 호출하지 않아도 됩니다.
/// 즉: 아래와 같은 code로 initial시
/// let configuration = WKWebViewConfiguration()
/// let view = WKWebView(frame: .zero, configuration: configuration)
/// \param userContentController userContentController
///
+ (void)setWebviewConfigurationWithUserContentController:(WKUserContentController * _Nonnull)userContentController;
/// webview에 주입할 script를 회득한다
///
/// returns:
/// webview에 주입할 scripts
+ (NSArray<NSString *> * _Nonnull)getWebviewInjectScripts SWIFT_WARN_UNUSED_RESULT;
@end

@class NSBundle;

SWIFT_CLASS("_TtC8IMQACore17IMQACoreResources")
@interface IMQACoreResources : NSObject
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) NSBundle * _Nonnull bundle;)
+ (NSBundle * _Nonnull)bundle SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

typedef SWIFT_ENUM(NSInteger, IMQADeployEnvironment, open) {
  IMQADeployEnvironmentDev SWIFT_COMPILE_NAME("development") = 0,
  IMQADeployEnvironmentProd SWIFT_COMPILE_NAME("production") = 1,
};

@class WKScriptMessage;

SWIFT_CLASS("_TtC8IMQACore13IMQASDKBridge")
@interface IMQASDKBridge : NSObject <WKScriptMessageHandler>
- (void)userContentController:(WKUserContentController * _Nonnull)userContentController didReceiveScriptMessage:(WKScriptMessage * _Nonnull)message;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

typedef SWIFT_ENUM(NSInteger, IMQASDKState, open) {
/// The SDK was not setup yet
  IMQASDKStateNotInitialized = 0,
/// The SDK was setup but hasn’t started yet
  IMQASDKStateInitialized = 1,
/// The SDK was started
  IMQASDKStateStarted = 2,
/// The SDK was stopped
  IMQASDKStateStopped = 3,
};

typedef SWIFT_ENUM(NSInteger, LogSeverity, open) {
  LogSeverityTrace = 1,
  LogSeverityDebug = 5,
  LogSeverityInfo = 9,
  LogSeverityWarn = 13,
  LogSeverityError = 17,
  LogSeverityFatal = 24,
};




SWIFT_CLASS_NAMED("SwiftUILifecycleCaptureService")
@interface IMQASwiftUILifecycleCaptureService : CaptureService
- (nonnull instancetype)init;
- (void)onInstall;
@end


SWIFT_CLASS_NAMED("TapCaptureService")
@interface IMQATapCaptureService : CaptureService
- (nonnull instancetype)init;
- (void)onInstall;
@end





SWIFT_CLASS_NAMED("URLSessionCaptureService")
@interface IMQAURLSessionCaptureService : CaptureService
- (nonnull instancetype)init;
- (void)onInstall;
@end



SWIFT_CLASS_NAMED("ViewCaptureService")
@interface IMQAViewCaptureService : CaptureService
- (nonnull instancetype)init;
- (void)onInstall;
@end


SWIFT_CLASS_NAMED("WebViewCaptureService")
@interface IMQAWebViewCaptureService : CaptureService
- (nonnull instancetype)init;
- (void)onInstall;
@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
