#if 0
#elif defined(__arm64e__) && __arm64e__
// Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)
#ifndef SENTRY_SWIFT_H
#define SENTRY_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)
#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
#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 CoreFoundation;
@import Foundation;
@import MetricKit;
@import ObjectiveC;
@import UIKit;
#endif

#import <Sentry/Sentry.h>

#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"

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

#if defined(__OBJC__)






@class NSString;

SWIFT_CLASS("_TtC6Sentry19HTTPHeaderSanitizer")
@interface HTTPHeaderSanitizer : NSObject
+ (NSDictionary<NSString *, NSString *> * _Nonnull)sanitizeHeaders:(NSDictionary<NSString *, NSString *> * _Nonnull)headers SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end





SWIFT_PROTOCOL_NAMED("SentryRRWebEventProtocol")
@protocol SentryRRWebEvent <SentrySerializable>
@end

enum SentryRRWebEventType : NSInteger;
@class NSDate;

SWIFT_CLASS("_TtC6Sentry16SentryRRWebEvent")
@interface SentryRRWebEvent : NSObject <SentryRRWebEvent>
@property (nonatomic, readonly) enum SentryRRWebEventType type;
@property (nonatomic, readonly, copy) NSDate * _Nonnull timestamp;
@property (nonatomic, readonly, copy) NSDictionary<NSString *, id> * _Nullable data;
- (nonnull instancetype)initWithType:(enum SentryRRWebEventType)type timestamp:(NSDate * _Nonnull)timestamp data:(NSDictionary<NSString *, id> * _Nullable)data OBJC_DESIGNATED_INITIALIZER;
- (NSDictionary<NSString *, id> * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


SWIFT_CLASS("_TtC6Sentry14RRWebMoveEvent")
@interface RRWebMoveEvent : SentryRRWebEvent
- (nonnull instancetype)initWithType:(enum SentryRRWebEventType)type timestamp:(NSDate * _Nonnull)timestamp data:(NSDictionary<NSString *, id> * _Nullable)data SWIFT_UNAVAILABLE;
@end


SWIFT_CLASS("_TtC6Sentry15RRWebTouchEvent")
@interface RRWebTouchEvent : SentryRRWebEvent
- (nonnull instancetype)initWithType:(enum SentryRRWebEventType)type timestamp:(NSDate * _Nonnull)timestamp data:(NSDictionary<NSString *, id> * _Nullable)data SWIFT_UNAVAILABLE;
@end


SWIFT_CLASS("_TtC6Sentry22SentryANRStoppedResult")
@interface SentryANRStoppedResult : NSObject
@property (nonatomic, readonly) NSTimeInterval minDuration;
@property (nonatomic, readonly) NSTimeInterval maxDuration;
- (nonnull instancetype)initWithMinDuration:(NSTimeInterval)minDuration maxDuration:(NSTimeInterval)maxDuration OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

@protocol SentryANRTrackerDelegate;

SWIFT_PROTOCOL("_TtP6Sentry16SentryANRTracker_")
@protocol SentryANRTracker
- (void)addListener:(id <SentryANRTrackerDelegate> _Nonnull)listener;
- (void)removeListener:(id <SentryANRTrackerDelegate> _Nonnull)listener;
/// Only used for tests.
- (void)clear;
@end

enum SentryANRType : NSInteger;

/// The  methods are called from a  background thread.
SWIFT_PROTOCOL("_TtP6Sentry24SentryANRTrackerDelegate_")
@protocol SentryANRTrackerDelegate
- (void)anrDetectedWithType:(enum SentryANRType)type;
- (void)anrStoppedWithResult:(SentryANRStoppedResult * _Nullable)result;
@end

typedef SWIFT_ENUM(NSInteger, SentryANRType, closed) {
  SentryANRTypeFatalFullyBlocking = 0,
  SentryANRTypeFatalNonFullyBlocking = 1,
  SentryANRTypeFullyBlocking = 2,
  SentryANRTypeNonFullyBlocking = 3,
  SentryANRTypeUnknown = 4,
};


SWIFT_CLASS("_TtC6Sentry23SentryAppHangTypeMapper")
@interface SentryAppHangTypeMapper : NSObject
+ (NSString * _Nonnull)getExceptionTypeWithAnrType:(enum SentryANRType)anrType SWIFT_WARN_UNUSED_RESULT;
+ (NSString * _Nonnull)getFatalExceptionTypeWithNonFatalErrorType:(NSString * _Nonnull)nonFatalErrorType SWIFT_WARN_UNUSED_RESULT;
+ (BOOL)isExceptionTypeAppHangWithExceptionType:(NSString * _Nonnull)exceptionType SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


SWIFT_CLASS("_TtC6Sentry26SentryBaggageSerialization")
@interface SentryBaggageSerialization : NSObject
+ (NSString * _Nonnull)encodeDictionary:(NSDictionary<NSString *, NSString *> * _Nonnull)dictionary SWIFT_WARN_UNUSED_RESULT;
+ (NSDictionary<NSString *, NSString *> * _Nonnull)decode:(NSString * _Nonnull)baggage SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


/// We need a protocol to expose SentryCurrentDateProvider to tests.
/// Mocking the previous private class from <code>SentryTestUtils</code> stopped working in Xcode 16.
SWIFT_PROTOCOL("_TtP6Sentry25SentryCurrentDateProvider_")
@protocol SentryCurrentDateProvider
- (NSDate * _Nonnull)date SWIFT_WARN_UNUSED_RESULT;
- (NSInteger)timezoneOffset SWIFT_WARN_UNUSED_RESULT;
- (uint64_t)systemTime SWIFT_WARN_UNUSED_RESULT;
- (NSTimeInterval)systemUptime SWIFT_WARN_UNUSED_RESULT;
@end


SWIFT_CLASS("_TtC6Sentry32SentryDefaultCurrentDateProvider")
@interface SentryDefaultCurrentDateProvider : NSObject <SentryCurrentDateProvider>
- (NSDate * _Nonnull)date SWIFT_WARN_UNUSED_RESULT;
- (NSInteger)timezoneOffset SWIFT_WARN_UNUSED_RESULT;
/// Returns the absolute timestamp, which has no defined reference point or unit
/// as it is platform dependent.
- (uint64_t)systemTime SWIFT_WARN_UNUSED_RESULT;
- (NSTimeInterval)systemUptime SWIFT_WARN_UNUSED_RESULT;
+ (uint64_t)getAbsoluteTime SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


SWIFT_CLASS("_TtC6Sentry25SentryDefaultMaskRenderer")
@interface SentryDefaultMaskRenderer : NSObject
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@class UIView;
@class UIImage;

SWIFT_PROTOCOL("_TtP6Sentry18SentryViewRenderer_")
@protocol SentryViewRenderer
- (UIImage * _Nonnull)renderWithView:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
@end


SWIFT_CLASS("_TtC6Sentry25SentryDefaultViewRenderer")
@interface SentryDefaultViewRenderer : NSObject <SentryViewRenderer>
- (UIImage * _Nonnull)renderWithView:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@class SentryOptions;

SWIFT_CLASS("_TtC6Sentry28SentryEnabledFeaturesBuilder")
@interface SentryEnabledFeaturesBuilder : NSObject
+ (NSArray<NSString *> * _Nonnull)getEnabledFeaturesWithOptions:(SentryOptions * _Nullable)options SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


@class NSData;
@class SentryEvent;

SWIFT_CLASS("_TtC6Sentry18SentryEventDecoder")
@interface SentryEventDecoder : NSObject
+ (SentryEvent * _Nullable)decodeEventWithJsonData:(NSData * _Nonnull)jsonData SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


SWIFT_CLASS("_TtC6Sentry25SentryExperimentalOptions")
@interface SentryExperimentalOptions : NSObject
/// Enables swizzling of<code>NSData</code> to automatically track file operations.
/// note:
/// Swizzling is enabled by setting <code>SentryOptions.enableSwizzling</code> to <code>true</code>.
/// This option allows you to disable swizzling for <code>NSData</code> only, while keeping swizzling enabled for other classes.
/// This is useful if you want to use manual tracing for file operations.
@property (nonatomic) BOOL enableDataSwizzling;
/// Enables swizzling of<code>NSFileManager</code> to automatically track file operations.
/// note:
/// Swizzling is enabled by setting <code>SentryOptions.enableSwizzling</code> to <code>true</code>.
/// This option allows you to disable swizzling for <code>NSFileManager</code> only, while keeping swizzling enabled for other classes.
/// This is useful if you want to use manual tracing for file operations.
/// experiment:
/// This is an experimental feature and is therefore disabled by default. We’ll enable it by default in a future release.
@property (nonatomic) BOOL enableFileManagerSwizzling;
- (void)validateOptions:(NSDictionary<NSString *, id> * _Nullable)options;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

enum SentryFeedbackSource : NSInteger;
@class SentryId;

SWIFT_CLASS("_TtC6Sentry14SentryFeedback")
@interface SentryFeedback : NSObject
@property (nonatomic, copy) NSString * _Nullable name;
@property (nonatomic, copy) NSString * _Nullable email;
@property (nonatomic, copy) NSString * _Nonnull message;
@property (nonatomic) enum SentryFeedbackSource source;
@property (nonatomic, readonly, strong) SentryId * _Nonnull eventId;
/// The event id that this feedback is associated with, like a crash report.
@property (nonatomic, strong) SentryId * _Nullable associatedEventId;
/// \param associatedEventId The ID for an event you’d like associated with the feedback. 
///
/// \param attachments Data objects for any attachments. Currently the web UI only supports showing one attached image, like for a screenshot. 
///
- (nonnull instancetype)initWithMessage:(NSString * _Nonnull)message name:(NSString * _Nullable)name email:(NSString * _Nullable)email source:(enum SentryFeedbackSource)source associatedEventId:(SentryId * _Nullable)associatedEventId attachments:(NSArray<NSData *> * _Nullable)attachments OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

typedef SWIFT_ENUM(NSInteger, SentryFeedbackSource, open) {
  SentryFeedbackSourceWidget = 0,
  SentryFeedbackSourceCustom = 1,
};


@interface SentryFeedback (SWIFT_EXTENSION(Sentry)) <SentrySerializable>
- (NSDictionary<NSString *, id> * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT;
@end

@class SentryAttachment;

@interface SentryFeedback (SWIFT_EXTENSION(Sentry))
/// note:
/// This dictionary is to pass to the block <code>SentryUserFeedbackConfiguration.onSubmitSuccess</code>, describing the contents submitted. This is different from the serialized form of the feedback for envelope transmission, because there are some internal details in that serialization that are irrelevant to the consumer and are not available at the time <code>onSubmitSuccess</code> is called.
- (NSDictionary<NSString *, id> * _Nonnull)dataDictionary SWIFT_WARN_UNUSED_RESULT;
/// note:
/// Currently there is only a single attachment possible, for the screenshot, of which there can be only one.
- (NSArray<SentryAttachment *> * _Nonnull)attachmentsForEnvelope SWIFT_WARN_UNUSED_RESULT;
@end


SWIFT_CLASS("_TtC6Sentry18SentryFileContents")
@interface SentryFileContents : NSObject
@property (nonatomic, readonly, copy) NSString * _Nonnull path;
@property (nonatomic, readonly, copy) NSData * _Nonnull contents;
- (nonnull instancetype)initWithPath:(NSString * _Nonnull)path contents:(NSData * _Nonnull)contents OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end



SWIFT_CLASS("_TtC6Sentry23SentryFramesDelayResult")
@interface SentryFramesDelayResult : NSObject
/// The frames delay for the passed time period. If frame delay can’t be calculated this is -1.
@property (nonatomic, readonly) CFTimeInterval delayDuration;
@property (nonatomic, readonly) NSUInteger framesContributingToDelayCount;
- (nonnull instancetype)initWithDelayDuration:(CFTimeInterval)delayDuration framesContributingToDelayCount:(NSUInteger)framesContributingToDelayCount OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

@class NSUUID;

SWIFT_CLASS("_TtC6Sentry8SentryId")
@interface SentryId : NSObject
/// A @c SentryId with an empty UUID “00000000000000000000000000000000”.
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryId * _Nonnull empty;)
+ (SentryId * _Nonnull)empty SWIFT_WARN_UNUSED_RESULT;
/// Returns a 32 lowercase character hexadecimal string description of the @c SentryId, such as
/// “12c2d058d58442709aa2eca08bf20986”.
@property (nonatomic, readonly, copy) NSString * _Nonnull sentryIdString;
/// Creates a @c SentryId with a random UUID.
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
/// Creates a SentryId with the given UUID.
- (nonnull instancetype)initWithUuid:(NSUUID * _Nonnull)uuid OBJC_DESIGNATED_INITIALIZER;
/// Creates a @c SentryId from a 32 character hexadecimal string without dashes such as
/// “12c2d058d58442709aa2eca08bf20986” or a 36 character hexadecimal string such as such as
/// “12c2d058-d584-4270-9aa2-eca08bf20986”.
/// @return SentryId.empty for invalid strings.
- (nonnull instancetype)initWithUUIDString:(NSString * _Nonnull)uuidString OBJC_DESIGNATED_INITIALIZER;
- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
@property (nonatomic, readonly, copy) NSString * _Nonnull description;
@property (nonatomic, readonly) NSUInteger hash;
@end

typedef SWIFT_ENUM(NSUInteger, SentryLevel, open) {
  kSentryLevelNone SWIFT_COMPILE_NAME("none") = 0,
  kSentryLevelDebug SWIFT_COMPILE_NAME("debug") = 1,
  kSentryLevelInfo SWIFT_COMPILE_NAME("info") = 2,
  kSentryLevelWarning SWIFT_COMPILE_NAME("warning") = 3,
  kSentryLevelError SWIFT_COMPILE_NAME("error") = 4,
  kSentryLevelFatal SWIFT_COMPILE_NAME("fatal") = 5,
};


SWIFT_CLASS("_TtC6Sentry17SentryLevelHelper")
@interface SentryLevelHelper : NSObject
+ (NSString * _Nonnull)nameForLevel:(enum SentryLevel)level SWIFT_WARN_UNUSED_RESULT;
+ (enum SentryLevel)levelForName:(NSString * _Nonnull)name SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


SWIFT_CLASS("_TtC6Sentry9SentryLog")
@interface SentryLog : NSObject
+ (void)configure:(BOOL)isDebug diagnosticLevel:(enum SentryLevel)diagnosticLevel;
+ (void)logWithMessage:(NSString * _Nonnull)message andLevel:(enum SentryLevel)level;
/// @return @c YES if the current logging configuration will log statements at the current level,
/// @c NO if not.
+ (BOOL)willLogAtLevel:(enum SentryLevel)level SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


@class SentryMXFrame;

SWIFT_CLASS("_TtC6Sentry17SentryMXCallStack")
@interface SentryMXCallStack : NSObject
@property (nonatomic, copy) NSArray<SentryMXFrame *> * _Nonnull callStackRootFrames;
@property (nonatomic, readonly, copy) NSArray<SentryMXFrame *> * _Nonnull flattenedRootFrames;
- (nonnull instancetype)initWithThreadAttributed:(BOOL)threadAttributed rootFrames:(NSArray<SentryMXFrame *> * _Nonnull)rootFrames OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


/// JSON specification of MXCallStackTree can be found here https://developer.apple.com/documentation/metrickit/mxcallstacktree/3552293-jsonrepresentation
SWIFT_CLASS("_TtC6Sentry21SentryMXCallStackTree")
@interface SentryMXCallStackTree : NSObject
@property (nonatomic, readonly, copy) NSArray<SentryMXCallStack *> * _Nonnull callStacks;
@property (nonatomic, readonly) BOOL callStackPerThread;
- (nonnull instancetype)initWithCallStacks:(NSArray<SentryMXCallStack *> * _Nonnull)callStacks callStackPerThread:(BOOL)callStackPerThread OBJC_DESIGNATED_INITIALIZER;
+ (SentryMXCallStackTree * _Nullable)fromData:(NSData * _Nonnull)data error:(NSError * _Nullable * _Nullable)error SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


SWIFT_CLASS("_TtC6Sentry13SentryMXFrame")
@interface SentryMXFrame : NSObject
@property (nonatomic, copy) NSUUID * _Nonnull binaryUUID;
@property (nonatomic) NSInteger offsetIntoBinaryTextSegment;
@property (nonatomic, copy) NSString * _Nullable binaryName;
@property (nonatomic) uint64_t address;
@property (nonatomic, copy) NSArray<SentryMXFrame *> * _Nullable subFrames;
@property (nonatomic, readonly, copy) NSArray<SentryMXFrame *> * _Nonnull frames;
@property (nonatomic, readonly, copy) NSArray<SentryMXFrame *> * _Nonnull framesIncludingSelf;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

@protocol SentryMXManagerDelegate;
@class MXDiagnosticPayload;

SWIFT_CLASS("_TtC6Sentry15SentryMXManager") SWIFT_AVAILABILITY(watchos,unavailable) SWIFT_AVAILABILITY(tvos,unavailable) SWIFT_AVAILABILITY(maccatalyst,introduced=15.0) SWIFT_AVAILABILITY(macos,introduced=12.0) SWIFT_AVAILABILITY(ios,introduced=15.0)
@interface SentryMXManager : NSObject <MXMetricManagerSubscriber>
@property (nonatomic, readonly) BOOL disableCrashDiagnostics;
- (nonnull instancetype)initWithDisableCrashDiagnostics:(BOOL)disableCrashDiagnostics OBJC_DESIGNATED_INITIALIZER;
@property (nonatomic, weak) id <SentryMXManagerDelegate> _Nullable delegate;
- (void)receiveReports;
- (void)pauseReports;
- (void)didReceiveDiagnosticPayloads:(NSArray<MXDiagnosticPayload *> * _Nonnull)payloads;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

@class MXCrashDiagnostic;
@class MXDiskWriteExceptionDiagnostic;
@class MXCPUExceptionDiagnostic;
@class MXHangDiagnostic;

SWIFT_PROTOCOL("_TtP6Sentry23SentryMXManagerDelegate_") SWIFT_AVAILABILITY(watchos,unavailable) SWIFT_AVAILABILITY(tvos,unavailable) SWIFT_AVAILABILITY(maccatalyst,introduced=15.0) SWIFT_AVAILABILITY(macos,introduced=12.0) SWIFT_AVAILABILITY(ios,introduced=15.0)
@protocol SentryMXManagerDelegate
- (void)didReceiveCrashDiagnostic:(MXCrashDiagnostic * _Nonnull)diagnostic callStackTree:(SentryMXCallStackTree * _Nonnull)callStackTree timeStampBegin:(NSDate * _Nonnull)timeStampBegin timeStampEnd:(NSDate * _Nonnull)timeStampEnd;
- (void)didReceiveDiskWriteExceptionDiagnostic:(MXDiskWriteExceptionDiagnostic * _Nonnull)diagnostic callStackTree:(SentryMXCallStackTree * _Nonnull)callStackTree timeStampBegin:(NSDate * _Nonnull)timeStampBegin timeStampEnd:(NSDate * _Nonnull)timeStampEnd;
- (void)didReceiveCpuExceptionDiagnostic:(MXCPUExceptionDiagnostic * _Nonnull)diagnostic callStackTree:(SentryMXCallStackTree * _Nonnull)callStackTree timeStampBegin:(NSDate * _Nonnull)timeStampBegin timeStampEnd:(NSDate * _Nonnull)timeStampEnd;
- (void)didReceiveHangDiagnostic:(MXHangDiagnostic * _Nonnull)diagnostic callStackTree:(SentryMXCallStackTree * _Nonnull)callStackTree timeStampBegin:(NSDate * _Nonnull)timeStampBegin timeStampEnd:(NSDate * _Nonnull)timeStampEnd;
@end


SWIFT_CLASS("_TtC6Sentry20SentryMaskRendererV2")
@interface SentryMaskRendererV2 : SentryDefaultMaskRenderer
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@protocol SentryRedactOptions;
@class NSCoder;

SWIFT_CLASS("_TtC6Sentry24SentryMaskingPreviewView")
@interface SentryMaskingPreviewView : UIView
@property (nonatomic) float opacity;
- (nonnull instancetype)initWithRedactOptions:(id <SentryRedactOptions> _Nonnull)redactOptions OBJC_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
- (void)didMoveToSuperview;
- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE;
@end



@class SentryVideoInfo;

SWIFT_PROTOCOL("_TtP6Sentry22SentryReplayVideoMaker_")
@protocol SentryReplayVideoMaker <NSObject>
- (void)addFrameAsyncWithImage:(UIImage * _Nonnull)image forScreen:(NSString * _Nullable)forScreen;
- (void)releaseFramesUntil:(NSDate * _Nonnull)date;
- (void)createVideoInBackgroundWithBeginning:(NSDate * _Nonnull)beginning end:(NSDate * _Nonnull)end completion:(void (^ _Nonnull)(NSArray<SentryVideoInfo *> * _Nonnull))completion;
- (NSArray<SentryVideoInfo *> * _Nonnull)createVideoWithBeginning:(NSDate * _Nonnull)beginning end:(NSDate * _Nonnull)end SWIFT_WARN_UNUSED_RESULT;
@end

@class SentryDispatchQueueWrapper;
@class NSValue;

SWIFT_CLASS("_TtC6Sentry20SentryOnDemandReplay")
@interface SentryOnDemandReplay : NSObject <SentryReplayVideoMaker>
@property (nonatomic) float videoScale;
@property (nonatomic) NSInteger bitRate;
@property (nonatomic) NSInteger frameRate;
@property (nonatomic) NSUInteger cacheMaxSize;
- (nonnull instancetype)initWithOutputPath:(NSString * _Nonnull)outputPath processingQueue:(SentryDispatchQueueWrapper * _Nonnull)processingQueue assetWorkerQueue:(SentryDispatchQueueWrapper * _Nonnull)assetWorkerQueue dateProvider:(id <SentryCurrentDateProvider> _Nonnull)dateProvider OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithContentFrom:(NSString * _Nonnull)outputPath processingQueue:(SentryDispatchQueueWrapper * _Nonnull)processingQueue assetWorkerQueue:(SentryDispatchQueueWrapper * _Nonnull)assetWorkerQueue dateProvider:(id <SentryCurrentDateProvider> _Nonnull)dateProvider;
- (void)addFrameAsyncWithImage:(UIImage * _Nonnull)image forScreen:(NSString * _Nullable)forScreen;
- (void)releaseFramesUntil:(NSDate * _Nonnull)date;
@property (nonatomic, readonly, copy) NSDate * _Nullable oldestFrameDate;
- (void)createVideoInBackgroundWithBeginning:(NSDate * _Nonnull)beginning end:(NSDate * _Nonnull)end completion:(void (^ _Nonnull)(NSArray<SentryVideoInfo *> * _Nonnull))completion;
- (NSArray<SentryVideoInfo *> * _Nonnull)createVideoWithBeginning:(NSDate * _Nonnull)beginning end:(NSDate * _Nonnull)end SWIFT_WARN_UNUSED_RESULT;
- (NSDictionary<NSString *, id> * _Nonnull)createVideoSettingsWithWidth:(CGFloat)width height:(CGFloat)height SWIFT_WARN_UNUSED_RESULT;
/// Calculates the presentation time for a frame at a given index and frame rate.
/// The return value is an <code>NSValue</code> containing a <code>CMTime</code> object representing the calculated presentation time.
/// The <code>CMTime</code> must be wrapped as this class is exposed to Objective-C via <code>Sentry-Swift.h</code>, and Objective-C does not support <code>CMTime</code>
/// as a return value.
/// \param index Index of the frame, counted from 0.
///
/// \param frameRate Number of frames per second.
///
///
/// returns:
/// <code>NSValue</code> containing the <code>CMTime</code> representing the calculated presentation time. Can be accessed using the <code>timeValue</code> property.
+ (NSValue * _Nonnull)calculatePresentationTimeForFrameAtIndex:(NSInteger)index frameRate:(NSInteger)frameRate SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

enum SentryProfileLifecycle : NSInteger;

/// An object containing configuration for the Sentry profiler.
/// warning:
/// Continuous profiling is an experimental feature and may still contain bugs.
/// note:
/// If either <code>SentryOptions.profilesSampleRate</code> or <code>SentryOptions.profilesSampler</code> are
/// set to a non-nil value such that transaction-based profiling is being used, these settings
/// will have no effect, nor will <code>SentrySDK.startProfiler()</code> or <code>SentrySDK.stopProfiler()</code>.
/// note:
/// Profiling is automatically disabled if a thread sanitizer is attached.
SWIFT_CLASS("_TtC6Sentry20SentryProfileOptions")
@interface SentryProfileOptions : NSObject
/// The mode to use for starting and stopping the profiler, either manually or automatically.
/// warning:
/// Continuous profiling is an experimental feature and may still contain bugs.
/// note:
/// Default: <code>SentryProfileLifecycleManual</code>.
/// note:
/// If either <code>SentryOptions.profilesSampleRate</code> or <code>SentryOptions.profilesSampler</code> are
/// set to a non-nil value such that transaction-based profiling is being used, then setting
/// this property has no effect.
/// note:
/// Profiling is automatically disabled if a thread sanitizer is attached.
@property (nonatomic) enum SentryProfileLifecycle lifecycle;
/// The % of user sessions in which to enable profiling.
/// warning:
/// Continuous profiling is an experimental feature and may still contain bugs.
/// note:
/// The decision whether or not to sample profiles is computed using this sample rate
/// when the SDK is started, and applies to any requests to start the profiler–regardless of
/// <code>lifecycle</code>– until the app resigns its active status. It is then reevaluated on subsequent
/// foreground events. The duration of time that a sample decision prevails between
/// launch/foreground and background is referred to as a profile session.
/// note:
/// Backgrounding and foregrounding the app starts a new user session and sampling is
/// re-evaluated. If there is no active trace when the app is backgrounded, profiling stops
/// before the app backgrounds. If there is an active trace and profiling is in-flight when the
/// app is foregrounded again, the same profiling session should continue until the last root
/// span in that trace finishes — this means that the re-evaluated sample rate does not actually
/// take effect until the profiler is started again.
/// note:
/// Profiling is automatically disabled if a thread sanitizer is attached.
@property (nonatomic) float sessionSampleRate;
/// Start the profiler as early as possible during the app lifecycle to capture more activity
/// during your app’s launch.
/// warning:
/// Continuous profiling is an experimental feature and may still contain bugs.
/// note:
/// <code>sessionSampleRate</code> is evaluated on the previous launch and only takes effect when
/// app start profiling activates on the next launch.
/// note:
/// If <code>lifecycle</code> is <code>manual</code>, profiling is started automatically on startup, but you
/// must manually call <code>SentrySDK.stopProfiler()</code> whenever you app startup to be complete. If
/// <code>lifecycle</code> is <code>trace</code>, profiling is started automatically on startup, and will
/// automatically be stopped when the root span that is associated with app startup ends.
/// note:
/// Profiling is automatically disabled if a thread sanitizer is attached.
@property (nonatomic) BOOL profileAppStarts;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

/// Different modes for starting and stopping the profiler.
typedef SWIFT_ENUM(NSInteger, SentryProfileLifecycle, open) {
/// Profiling is controlled manually, and is independent of transactions & spans. Developers
/// must use<code>SentrySDK.startProfiler()</code> and <code>SentrySDK.stopProfiler()</code> to manage the profile
/// session. If the session is sampled, <code>SentrySDK.startProfiler()</code> will always start
/// profiling.
/// warning:
/// Continuous profiling is an experimental feature and may still contain bugs.
/// note:
/// Profiling is automatically disabled if a thread sanitizer is attached.
  SentryProfileLifecycleManual = 0,
/// Profiling is automatically started when there is at least 1 active root span, and
/// automatically stopped when there are 0 root spans.
/// warning:
/// Continuous profiling is an experimental feature and may still contain bugs.
/// note:
/// This mode only works if tracing is enabled.
/// note:
/// Profiling respects both <code>SentryProfileOptions.profileSessionSampleRate</code> and
/// the existing sampling configuration for tracing
/// (<code>SentryOptions.tracesSampleRate</code>/<code>SentryOptions.tracesSampler</code>). Sampling will be
/// re-evaluated on a per root span basis.
/// note:
/// If there are multiple overlapping root spans, where some are sampled and some or
/// not, profiling will continue until the end of the last sampled root span. Profiling data
/// will not be linked with spans that are not sampled.
/// note:
/// When the last root span finishes, the profiler will continue running until the
/// end of the current timed interval. If a new root span starts before this interval
/// completes, the profiler will instead continue running until the next root span stops, at
/// which time it will attempt to stop again in the same way.
/// note:
/// Profiling is automatically disabled if a thread sanitizer is attached.
  SentryProfileLifecycleTrace = 1,
};


SWIFT_CLASS("_TtC6Sentry22SentryRRWebCustomEvent")
@interface SentryRRWebCustomEvent : SentryRRWebEvent
@property (nonatomic, readonly, copy) NSString * _Nonnull tag;
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp tag:(NSString * _Nonnull)tag payload:(NSDictionary<NSString *, id> * _Nonnull)payload OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithType:(enum SentryRRWebEventType)type timestamp:(NSDate * _Nonnull)timestamp data:(NSDictionary<NSString *, id> * _Nullable)data SWIFT_UNAVAILABLE;
@end


SWIFT_CLASS("_TtC6Sentry26SentryRRWebBreadcrumbEvent")
@interface SentryRRWebBreadcrumbEvent : SentryRRWebCustomEvent
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp category:(NSString * _Nonnull)category message:(NSString * _Nullable)message level:(enum SentryLevel)level data:(NSDictionary<NSString *, id> * _Nullable)data OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp tag:(NSString * _Nonnull)tag payload:(NSDictionary<NSString *, id> * _Nonnull)payload SWIFT_UNAVAILABLE;
@end




typedef SWIFT_ENUM(NSInteger, SentryRRWebEventType, closed) {
  SentryRRWebEventTypeNone = 0,
  SentryRRWebEventTypeTouch = 3,
  SentryRRWebEventTypeMeta = 4,
  SentryRRWebEventTypeCustom = 5,
};


SWIFT_CLASS("_TtC6Sentry20SentryRRWebMetaEvent")
@interface SentryRRWebMetaEvent : SentryRRWebEvent
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp height:(NSInteger)height width:(NSInteger)width OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithType:(enum SentryRRWebEventType)type timestamp:(NSDate * _Nonnull)timestamp data:(NSDictionary<NSString *, id> * _Nullable)data SWIFT_UNAVAILABLE;
@end

@class SentryReplayOptions;

SWIFT_CLASS("_TtC6Sentry23SentryRRWebOptionsEvent")
@interface SentryRRWebOptionsEvent : SentryRRWebCustomEvent
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp customOptions:(NSDictionary<NSString *, id> * _Nonnull)customOptions OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp options:(SentryReplayOptions * _Nonnull)options OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp tag:(NSString * _Nonnull)tag payload:(NSDictionary<NSString *, id> * _Nonnull)payload SWIFT_UNAVAILABLE;
@end


SWIFT_CLASS("_TtC6Sentry20SentryRRWebSpanEvent")
@interface SentryRRWebSpanEvent : SentryRRWebCustomEvent
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp endTimestamp:(NSDate * _Nonnull)endTimestamp operation:(NSString * _Nonnull)operation description:(NSString * _Nonnull)description data:(NSDictionary<NSString *, id> * _Nonnull)data OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp tag:(NSString * _Nonnull)tag payload:(NSDictionary<NSString *, id> * _Nonnull)payload SWIFT_UNAVAILABLE;
@end


SWIFT_CLASS("_TtC6Sentry21SentryRRWebVideoEvent")
@interface SentryRRWebVideoEvent : SentryRRWebCustomEvent
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp segmentId:(NSInteger)segmentId size:(NSInteger)size duration:(NSTimeInterval)duration encoding:(NSString * _Nonnull)encoding container:(NSString * _Nonnull)container height:(NSInteger)height width:(NSInteger)width frameCount:(NSInteger)frameCount frameRateType:(NSString * _Nonnull)frameRateType frameRate:(NSInteger)frameRate left:(NSInteger)left top:(NSInteger)top OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp tag:(NSString * _Nonnull)tag payload:(NSDictionary<NSString *, id> * _Nonnull)payload SWIFT_UNAVAILABLE;
@end


SWIFT_PROTOCOL("_TtP6Sentry19SentryRedactOptions_")
@protocol SentryRedactOptions
@property (nonatomic, readonly) BOOL maskAllText;
@property (nonatomic, readonly) BOOL maskAllImages;
@property (nonatomic, readonly, copy) NSArray<Class> * _Nonnull maskedViewClasses;
@property (nonatomic, readonly, copy) NSArray<Class> * _Nonnull unmaskedViewClasses;
@end


SWIFT_CLASS("_TtC6Sentry26SentryRedactDefaultOptions")
@interface SentryRedactDefaultOptions : NSObject <SentryRedactOptions>
@property (nonatomic) BOOL maskAllText;
@property (nonatomic) BOOL maskAllImages;
@property (nonatomic, copy) NSArray<Class> * _Nonnull maskedViewClasses;
@property (nonatomic, copy) NSArray<Class> * _Nonnull unmaskedViewClasses;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end



SWIFT_CLASS("_TtC6Sentry22SentryRedactViewHelper")
@interface SentryRedactViewHelper : NSObject
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
+ (void)maskView:(UIView * _Nonnull)view;
+ (BOOL)shouldMaskView:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
+ (BOOL)shouldUnmask:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
+ (void)unmaskView:(UIView * _Nonnull)view;
+ (BOOL)shouldClipOut:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
+ (void)clipOutView:(UIView * _Nonnull)view;
+ (BOOL)shouldRedactSwiftUI:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
+ (void)maskSwiftUI:(UIView * _Nonnull)view;
@end

@class SentryBreadcrumb;

SWIFT_PROTOCOL("_TtP6Sentry31SentryReplayBreadcrumbConverter_")
@protocol SentryReplayBreadcrumbConverter <NSObject>
- (id <SentryRRWebEvent> _Nullable)convertFrom:(SentryBreadcrumb * _Nonnull)breadcrumb SWIFT_WARN_UNUSED_RESULT;
@end

enum SentryReplayType : NSInteger;

SWIFT_CLASS("_TtC6Sentry17SentryReplayEvent")
@interface SentryReplayEvent : SentryEvent
@property (nonatomic, readonly, copy) NSDate * _Nonnull replayStartTimestamp;
@property (nonatomic, readonly) enum SentryReplayType replayType;
/// Number of the segment in the replay.
/// This is an incremental number
@property (nonatomic, readonly) NSInteger segmentId;
/// This will be used to store the name of the screens
/// that appear during the duration of the replay segment.
@property (nonatomic, copy) NSArray<NSString *> * _Nullable urls;
- (nonnull instancetype)initWithEventId:(SentryId * _Nonnull)eventId replayStartTimestamp:(NSDate * _Nonnull)replayStartTimestamp replayType:(enum SentryReplayType)replayType segmentId:(NSInteger)segmentId OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init;
- (NSDictionary<NSString *, id> * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT;
@end

enum SentryReplayQuality : NSInteger;

SWIFT_CLASS("_TtC6Sentry19SentryReplayOptions")
@interface SentryReplayOptions : NSObject <SentryRedactOptions>
/// Indicates the percentage in which the replay for the session will be created.
/// note:
/// The value needs to be <code>>= 0.0</code> and <code><= 1.0</code>. When setting a value out of range the SDK sets it
/// to the default.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.sessionSegmentDuration</code> for the default duration of the replay.
/// <ul>
///   <li>
///     Specifying @c 0 means never, @c 1.0 means always.
///   </li>
/// </ul>
@property (nonatomic) float sessionSampleRate;
/// Indicates the percentage in which a 30 seconds replay will be send with error events.
/// note:
/// The value needs to be >= 0.0 and <= 1.0. When setting a value out of range the SDK sets it
/// to the default.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.errorReplayDuration</code> for the default duration of the replay.
/// <ul>
///   <li>
///     Specifying 0 means never, 1.0 means always.
///   </li>
/// </ul>
@property (nonatomic) float onErrorSampleRate;
/// Indicates whether session replay should redact all text in the app
/// by drawing a black rectangle over it.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.maskAllText</code> for the default value.
@property (nonatomic) BOOL maskAllText;
/// Indicates whether session replay should redact all non-bundled image
/// in the app by drawing a black rectangle over it.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.maskAllImages</code> for the default value.
@property (nonatomic) BOOL maskAllImages;
/// Indicates the quality of the replay.
/// The higher the quality, the higher the CPU and bandwidth usage.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.quality</code> for the default value.
@property (nonatomic) enum SentryReplayQuality quality;
/// A list of custom UIView subclasses that need
/// to be masked during session replay.
/// By default Sentry already mask text and image elements from UIKit
/// Every child of a view that is redacted will also be redacted.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.maskedViewClasses</code> for the default value.
@property (nonatomic, copy) NSArray<Class> * _Nonnull maskedViewClasses;
/// A list of custom UIView subclasses to be ignored
/// during masking step of the session replay.
/// The views of given classes will not be redacted but their children may be.
/// This property has precedence over <code>redactViewTypes</code>.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.unmaskedViewClasses</code> for the default value.
@property (nonatomic, copy) NSArray<Class> * _Nonnull unmaskedViewClasses;
/// Alias for <code>enableViewRendererV2</code>.
/// This flag is deprecated and will be removed in a future version.
/// Please use <code>enableViewRendererV2</code> instead.
@property (nonatomic) BOOL enableExperimentalViewRenderer SWIFT_DEPRECATED_MSG("", "enableViewRendererV2");
/// Enables the up to 5x faster new view renderer used by the Session Replay integration.
/// Enabling this flag will reduce the amount of time it takes to render each frame of the session replay on the main thread, therefore reducing
/// interruptions and visual lag. <a href="https://github.com/getsentry/sentry-cocoa/pull/4940">Our benchmarks</a> have shown a significant improvement of
/// <em>up to 4-5x faster rendering</em> (reducing <code>~160ms</code> to <code>~36ms</code> per frame) on older devices.
/// experiment:
/// In case you are noticing issues with the new view renderer, please report the issue on <a href="https://github.com/getsentry/sentry-cocoa">GitHub</a>.
/// Eventually, we will remove this feature flag and use the new view renderer by default.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.enableViewRendererV2</code> for the default value.
@property (nonatomic) BOOL enableViewRendererV2;
/// Enables up to 5x faster but incommpelte view rendering used by the Session Replay integration.
/// Enabling this flag will reduce the amount of time it takes to render each frame of the session replay on the main thread, therefore reducing
/// interruptions and visual lag. <a href="https://github.com/getsentry/sentry-cocoa/pull/4940">Our benchmarks</a> have shown a significant improvement of
/// up to <em>5x faster render times</em> (reducing <code>~160ms</code> to <code>~30ms</code> per frame).
/// This flag controls the way the view hierarchy is drawn into a graphics context for the session replay. By default, the view hierarchy is drawn using
/// the <code>UIView.drawHierarchy(in:afterScreenUpdates:)</code> method, which is the most complete way to render the view hierarchy. However,
/// this method can be slow, especially when rendering complex views, therefore enabling this flag will switch to render the underlying <code>CALayer</code> instead.
/// note:
/// This flag can only be used together with <code>enableViewRendererV2</code> with up to 20% faster render times.
/// warning:
/// Rendering the view hiearchy using the <code>CALayer.render(in:)</code> method can lead to rendering issues, especially when using custom views.
/// For complete rendering, it is recommended to set this option to <code>false</code>. In case you prefer performance over completeness, you can
/// set this option to <code>true</code>.
/// experiment:
/// This is an experimental feature and is therefore disabled by default. In case you are noticing issues with the experimental
/// view renderer, please report the issue on <a href="https://github.com/getsentry/sentry-cocoa">GitHub</a>. Eventually, we will
/// mark this feature as stable and remove the experimental flag, but will keep it disabled by default.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.enableFastViewRendering</code> for the default value.
@property (nonatomic) BOOL enableFastViewRendering;
/// Defines the quality of the session replay.
/// Higher bit rates better quality, but also bigger files to transfer.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.quality</code> for the default value.
@property (nonatomic, readonly) NSInteger replayBitRate;
/// The scale related to the window size at which the replay will be created
/// note:
/// The scale is used to reduce the size of the replay.
@property (nonatomic, readonly) float sizeScale;
/// Number of frames per second of the replay.
/// The more the havier the process is.
/// The minimum is 1, if set to zero this will change to 1.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.frameRate</code> for the default value.
@property (nonatomic) NSUInteger frameRate;
/// The maximum duration of replays for error events.
@property (nonatomic) NSTimeInterval errorReplayDuration;
/// The maximum duration of the segment of a session replay.
@property (nonatomic) NSTimeInterval sessionSegmentDuration;
/// The maximum duration of a replay session.
/// note:
/// See  <code>SentryReplayOptions.DefaultValues.maximumDuration</code> for the default value.
@property (nonatomic) NSTimeInterval maximumDuration;
/// Used by hybrid SDKs to be able to configure SDK info for Session Replay
/// note:
/// See <code>SentryReplayOptions.DefaultValues.sdkInfo</code> for the default value.
@property (nonatomic, copy) NSDictionary<NSString *, id> * _Nullable sdkInfo;
/// Initialize session replay options disabled
/// note:
/// This initializer is added for Objective-C compatibility, as constructors with default values
/// are not supported in Objective-C.
/// note:
/// See <code>SentryReplayOptions.DefaultValues</code> for the default values of each parameter.
- (nonnull instancetype)init;
/// Initializes a new instance of <code>SentryReplayOptions</code> using a dictionary.
/// warning:
/// This initializer is primarily used by Hybrid SDKs and is not intended for public use.
/// \param dictionary A dictionary containing the configuration options for the session replay.
///
- (nonnull instancetype)initWithDictionary:(NSDictionary<NSString *, id> * _Nonnull)dictionary;
/// Initializes a new instance of <code>SentryReplayOptions</code> with the specified parameters.
/// note:
/// See <code>SentryReplayOptions.DefaultValues</code> for the default values of each parameter.
/// \param sessionSampleRate Sample rate used to determine the percentage of replays of sessions that will be uploaded.
///
/// \param onErrorSampleRate Sample rate used to determine the percentage of replays of error events that will be uploaded.
///
/// \param maskAllText Flag to redact all text in the app by drawing a rectangle over it.
///
/// \param maskAllImages Flag to redact all images in the app by drawing a rectangle over it.
///
/// \param enableViewRendererV2 Enables the up to 5x faster view renderer.
///
/// \param enableFastViewRendering Enables faster but incomplete view rendering. See <code>SentryReplayOptions.enableFastViewRendering</code> for more information.
///
- (nonnull instancetype)initWithSessionSampleRate:(float)sessionSampleRate onErrorSampleRate:(float)onErrorSampleRate maskAllText:(BOOL)maskAllText maskAllImages:(BOOL)maskAllImages enableViewRendererV2:(BOOL)enableViewRendererV2 enableFastViewRendering:(BOOL)enableFastViewRendering;
@end

/// Enum to define the quality of the session replay.
typedef SWIFT_ENUM(NSInteger, SentryReplayQuality, open) {
/// Video Scale: 80%
/// Bit Rate: 20.000
  SentryReplayQualityLow = 0,
/// Video Scale: 100%
/// Bit Rate: 40.000
  SentryReplayQualityMedium = 1,
/// Video Scale: 100%
/// Bit Rate: 60.000
  SentryReplayQualityHigh = 2,
};


SWIFT_CLASS("_TtC6Sentry21SentryReplayRecording")
@interface SentryReplayRecording : NSObject
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull SentryReplayEncoding;)
+ (NSString * _Nonnull)SentryReplayEncoding SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull SentryReplayContainer;)
+ (NSString * _Nonnull)SentryReplayContainer SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull SentryReplayFrameRateType;)
+ (NSString * _Nonnull)SentryReplayFrameRateType SWIFT_WARN_UNUSED_RESULT;
@property (nonatomic, readonly) NSInteger segmentId;
@property (nonatomic, readonly, copy) NSArray<id <SentryRRWebEvent>> * _Nonnull events;
@property (nonatomic, readonly) NSInteger height;
@property (nonatomic, readonly) NSInteger width;
- (nonnull instancetype)initWithSegmentId:(NSInteger)segmentId video:(SentryVideoInfo * _Nonnull)video extraEvents:(NSArray<id <SentryRRWebEvent>> * _Nonnull)extraEvents;
- (nonnull instancetype)initWithSegmentId:(NSInteger)segmentId size:(NSInteger)size start:(NSDate * _Nonnull)start duration:(NSTimeInterval)duration frameCount:(NSInteger)frameCount frameRate:(NSInteger)frameRate height:(NSInteger)height width:(NSInteger)width extraEvents:(NSArray<id <SentryRRWebEvent>> * _Nullable)extraEvents OBJC_DESIGNATED_INITIALIZER;
- (NSDictionary<NSString *, id> * _Nonnull)headerForReplayRecording SWIFT_WARN_UNUSED_RESULT;
- (NSArray<NSDictionary<NSString *, id> *> * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

typedef SWIFT_ENUM(NSInteger, SentryReplayType, closed) {
  SentryReplayTypeSession = 0,
  SentryReplayTypeBuffer = 1,
};




SWIFT_CLASS("_TtC6Sentry34SentrySRDefaultBreadcrumbConverter")
@interface SentrySRDefaultBreadcrumbConverter : NSObject <SentryReplayBreadcrumbConverter>
/// This function will convert the SDK breadcrumbs to session replay breadcrumbs in a format that the front-end understands.
/// Any deviation in the information will cause the breadcrumb or the information itself to be discarded
/// in order to avoid unknown behavior in the front-end.
- (id <SentryRRWebEvent> _Nullable)convertFrom:(SentryBreadcrumb * _Nonnull)breadcrumb SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@class SentrySession;

SWIFT_PROTOCOL("_TtP6Sentry21SentrySessionListener_")
@protocol SentrySessionListener <NSObject>
- (void)sentrySessionEnded:(SentrySession * _Nonnull)session;
- (void)sentrySessionStarted:(SentrySession * _Nonnull)session;
@end

@protocol SentryViewScreenshotProvider;
@class NSURL;
@class SentryTouchTracker;
@protocol SentrySessionReplayDelegate;
@class SentryDisplayLinkWrapper;

SWIFT_CLASS("_TtC6Sentry19SentrySessionReplay")
@interface SentrySessionReplay : NSObject
@property (nonatomic, readonly) BOOL isFullSession;
@property (nonatomic, readonly, strong) SentryId * _Nullable sessionReplayId;
@property (nonatomic, readonly) BOOL isSessionPaused;
@property (nonatomic, copy) NSDictionary<NSString *, id> * _Nullable replayTags;
@property (nonatomic, readonly) BOOL isRunning;
@property (nonatomic, strong) id <SentryViewScreenshotProvider> _Nonnull screenshotProvider;
@property (nonatomic, strong) id <SentryReplayBreadcrumbConverter> _Nonnull breadcrumbConverter;
- (nonnull instancetype)initWithReplayOptions:(SentryReplayOptions * _Nonnull)replayOptions replayFolderPath:(NSURL * _Nonnull)replayFolderPath screenshotProvider:(id <SentryViewScreenshotProvider> _Nonnull)screenshotProvider replayMaker:(id <SentryReplayVideoMaker> _Nonnull)replayMaker breadcrumbConverter:(id <SentryReplayBreadcrumbConverter> _Nonnull)breadcrumbConverter touchTracker:(SentryTouchTracker * _Nullable)touchTracker dateProvider:(id <SentryCurrentDateProvider> _Nonnull)dateProvider delegate:(id <SentrySessionReplayDelegate> _Nonnull)delegate displayLinkWrapper:(SentryDisplayLinkWrapper * _Nonnull)displayLinkWrapper OBJC_DESIGNATED_INITIALIZER;
- (void)startWithRootView:(UIView * _Nonnull)rootView fullSession:(BOOL)fullSession;
- (void)pauseSessionMode;
- (void)pause;
- (void)resume;
- (void)captureReplayForEvent:(SentryEvent * _Nonnull)event;
- (BOOL)captureReplay;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


SWIFT_PROTOCOL("_TtP6Sentry27SentrySessionReplayDelegate_")
@protocol SentrySessionReplayDelegate <NSObject>
- (BOOL)sessionReplayShouldCaptureReplayForError SWIFT_WARN_UNUSED_RESULT;
- (void)sessionReplayNewSegmentWithReplayEvent:(SentryReplayEvent * _Nonnull)replayEvent replayRecording:(SentryReplayRecording * _Nonnull)replayRecording videoUrl:(NSURL * _Nonnull)videoUrl;
- (void)sessionReplayStartedWithReplayId:(SentryId * _Nonnull)replayId;
- (NSArray<SentryBreadcrumb *> * _Nonnull)breadcrumbsForSessionReplay SWIFT_WARN_UNUSED_RESULT;
- (NSString * _Nullable)currentScreenNameForSessionReplay SWIFT_WARN_UNUSED_RESULT;
@end



SWIFT_CLASS("_TtC6Sentry29SentrySwizzleClassNameExclude")
@interface SentrySwizzleClassNameExclude : NSObject
+ (BOOL)shouldExcludeClassWithClassName:(NSString * _Nonnull)className swizzleClassNameExcludes:(NSSet<NSString *> * _Nonnull)swizzleClassNameExcludes SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


@class UIEvent;

SWIFT_CLASS("_TtC6Sentry18SentryTouchTracker")
@interface SentryTouchTracker : NSObject
- (nonnull instancetype)initWithDateProvider:(id <SentryCurrentDateProvider> _Nonnull)dateProvider scale:(float)scale dispatchQueue:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueue OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithDateProvider:(id <SentryCurrentDateProvider> _Nonnull)dateProvider scale:(float)scale;
- (void)trackTouchFromEvent:(UIEvent * _Nonnull)event;
- (void)flushFinishedEvents;
- (NSArray<SentryRRWebEvent *> * _Nonnull)replayEventsFrom:(NSDate * _Nonnull)from until:(NSDate * _Nonnull)until SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

typedef SWIFT_ENUM(NSInteger, SentryTransactionNameSource, open) {
  kSentryTransactionNameSourceCustom SWIFT_COMPILE_NAME("custom") = 0,
  kSentryTransactionNameSourceUrl SWIFT_COMPILE_NAME("url") = 1,
  kSentryTransactionNameSourceRoute SWIFT_COMPILE_NAME("route") = 2,
  kSentryTransactionNameSourceView SWIFT_COMPILE_NAME("view") = 3,
  kSentryTransactionNameSourceComponent SWIFT_COMPILE_NAME("component") = 4,
  kSentryTransactionNameSourceTask SWIFT_COMPILE_NAME("sourceTask") = 5,
};


/// Use this protocol to customize the name used in the automatic
/// UIViewController performance tracker, view hierarchy, and breadcrumbs.
SWIFT_PROTOCOL("_TtP6Sentry32SentryUIViewControllerDescriptor_")
@protocol SentryUIViewControllerDescriptor <NSObject>
/// The custom name of the UIViewController
/// that the Sentry SDK uses for transaction names, breadcrumbs, and
/// view hierarchy.
@property (nonatomic, readonly, copy) NSString * _Nonnull sentryName;
@end

@class SentryUserFeedbackWidgetConfiguration;
@class UIButton;
@class SentryUserFeedbackFormConfiguration;
@class SentryUserFeedbackThemeConfiguration;

/// The settings to use for how the user feedback form is presented, what data is required and how
/// it’s submitted, and some auxiliary hooks to customize the workflow.
SWIFT_CLASS("_TtC6Sentry31SentryUserFeedbackConfiguration") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackConfiguration : NSObject
/// Whether or not to show animations, like for presenting and dismissing the form.
/// note:
/// Default: <code>true</code>.
@property (nonatomic) BOOL animations;
/// Configuration settings specific to the managed widget that displays the UI form.
/// note:
/// Default: <code>nil</code> to use the default widget settings.
@property (nonatomic, copy) void (^ _Nullable configureWidget)(SentryUserFeedbackWidgetConfiguration * _Nonnull);
@property (nonatomic, strong) SentryUserFeedbackWidgetConfiguration * _Nonnull widgetConfig;
/// Use a shake gesture to display the form.
/// note:
/// Default: <code>false</code>
/// note:
/// Setting this to true does not disable the widget. In order to do so, you must set <code>SentryUserFeedbackWidgetConfiguration.autoInject</code> to <code>false</code> using the <code>SentryUserFeedbackConfiguration.configureWidget</code> config builder.
@property (nonatomic) BOOL useShakeGesture;
/// Any time a user takes a screenshot, bring up the form with the screenshot attached.
/// note:
/// Default: <code>false</code>
/// note:
/// Setting this to true does not disable the widget. In order to do so, you must set <code>SentryUserFeedbackWidgetConfiguration.autoInject</code> to <code>false</code> using the <code>SentryUserFeedbackConfiguration.configureWidget</code> config builder.
@property (nonatomic) BOOL showFormForScreenshots;
/// Install a hook for the specified button to show the form when it is pressed.
/// note:
/// If this is set, <code>configureWidget</code> is ignored.
/// note:
/// Default: <code>nil</code>
@property (nonatomic, strong) UIButton * _Nullable customButton;
/// Configuration settings specific to the managed UI form to gather user input.
/// note:
/// Default: <code>nil</code>
@property (nonatomic, copy) void (^ _Nullable configureForm)(SentryUserFeedbackFormConfiguration * _Nonnull);
@property (nonatomic, strong) SentryUserFeedbackFormConfiguration * _Nonnull formConfig;
/// Tags to set on the feedback event. This is a dictionary where keys are strings
/// and values can be different data types such as <code>NSNumber</code>, <code>NSString</code>, etc.
/// note:
/// Default: <code>nil</code>
@property (nonatomic, copy) NSDictionary<NSString *, id> * _Nullable tags;
/// Called when the managed feedback form is opened.
/// note:
/// Default: <code>nil</code>
@property (nonatomic, copy) void (^ _Nullable onFormOpen)(void);
/// Called when the managed feedback form is closed.
/// note:
/// Default: <code>nil</code>
@property (nonatomic, copy) void (^ _Nullable onFormClose)(void);
/// Called when feedback is successfully submitted via the managed feedback form, indicating that the
/// user correctly filled out the form and confirmed submission. The data dictionary contains the feedback details.
/// note:
/// Default: <code>nil</code>
/// note:
/// This is unrelated to <code>SentrySDK.captureUserFeedback</code> and is not called when using
/// that function.
@property (nonatomic, copy) void (^ _Nullable onSubmitSuccess)(NSDictionary<NSString *, id> * _Nonnull);
/// Called when there is an error submitting feedback via the managed feedback form, like missing
/// required inputs. The error object contains details of the error.
/// note:
/// Default: <code>nil</code>
/// note:
/// This is unrelated to <code>SentrySDK.captureUserFeedback</code> and is not called when using
/// that function.
@property (nonatomic, copy) void (^ _Nullable onSubmitError)(NSError * _Nonnull);
/// Builder for default/light theme overrides.
/// note:
/// On iOS versions predating dark mode (≤12) this is the only theme override used. Apps
/// running on later versions that include dark mode should also consider <code>configureDarkTheme</code>.
/// note:
/// Default: <code>nil</code>
@property (nonatomic, copy) void (^ _Nullable configureTheme)(SentryUserFeedbackThemeConfiguration * _Nonnull);
@property (nonatomic, strong) SentryUserFeedbackThemeConfiguration * _Nonnull theme;
/// Builder for dark mode theme overrides. If your app does not deploy a different theme for dark
/// mode, but you still want to override some theme settings, assign the same builder to this
/// property as you do for <code>configureTheme</code>.
/// note:
/// Default: <code>nil</code>
/// note:
/// Only applies to iOS ≤12.
@property (nonatomic, copy) void (^ _Nullable configureDarkTheme)(SentryUserFeedbackThemeConfiguration * _Nonnull);
@property (nonatomic, strong) SentryUserFeedbackThemeConfiguration * _Nonnull darkTheme;
@property (nonatomic) CGFloat textEffectiveHeightCenter;
/// The ratio of the configured font size to the system default font size, to know how large to scale things like the icon and lozenge shape.
@property (nonatomic) CGFloat scaleFactor;
- (CGFloat)calculateScaleFactor SWIFT_WARN_UNUSED_RESULT;
/// Too much padding as the font size grows larger makes the button look weird with lots of negative space. Keeping the padding constant looks weird if the text is too small. So, scale it down below system default font sizes, but keep it fixed with larger font sizes.
@property (nonatomic) CGFloat paddingScaleFactor;
- (CGFloat)calculatePaddingScaleFactor SWIFT_WARN_UNUSED_RESULT;
- (void)recalculateScaleFactors;
@property (nonatomic, readonly) CGFloat padding;
@property (nonatomic, readonly) CGFloat spacing;
@property (nonatomic, readonly) CGFloat margin;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


/// Settings to control the behavior and appearance of the UI form.
SWIFT_CLASS("_TtC6Sentry35SentryUserFeedbackFormConfiguration") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormConfiguration : NSObject
/// Sets the email and name field text content to the values contained in the current scope’s
/// <code>SentryUser</code> instance, if any.
/// seealso:
/// <code>- [SentrySDK setUser:]</code>
/// note:
/// Default: <code>true</code>
@property (nonatomic) BOOL useSentryUser;
/// Displays the Sentry logo inside of the form.
/// note:
/// Default: <code>true</code>
@property (nonatomic) BOOL showBranding;
/// The title at the top of the feedback form.
/// note:
/// Default: <code>"Report a Bug"</code>
@property (nonatomic, copy) NSString * _Nonnull formTitle;
/// The label for the feedback description input field.
/// note:
/// Default: <code>"Description"</code>
@property (nonatomic, copy) NSString * _Nonnull messageLabel;
@property (nonatomic, copy) NSString * _Nonnull messageLabelContents;
/// The placeholder for the feedback description input field.
/// note:
/// Default: <code>"What's the bug? What did you expect?"</code>
@property (nonatomic, copy) NSString * _Nonnull messagePlaceholder;
@property (nonatomic, copy) NSString * _Nonnull messageTextViewAccessibilityLabel;
/// The label shown next to an input field that is required.
/// note:
/// Default: <code>"(Required)"</code>
@property (nonatomic, copy) NSString * _Nonnull isRequiredLabel;
/// The label of the button to remove the screenshot from the form.
/// note:
/// Default: <code>"Remove screenshot"</code>
/// note:
/// ignored if <code>SentryUserFeedbackConfiguration.showFormForScreenshots</code> is <code>false</code>.
@property (nonatomic, copy) NSString * _Nonnull removeScreenshotButtonLabel;
@property (nonatomic, copy) NSString * _Nonnull removeScreenshotButtonAccessibilityLabel;
/// Requires the name field on the feedback form to be filled in.
/// note:
/// Default: <code>false</code>
@property (nonatomic) BOOL isNameRequired;
/// Displays the name field on the feedback form.
/// note:
/// Default: <code>true</code>
/// note:
/// ignored if <code>isNameRequired</code> is <code>true</code>.
@property (nonatomic) BOOL showName;
/// The label of the name input field.
/// note:
/// Default: <code>"Name"</code>
/// note:
/// ignored if <code>showName</code> is <code>false</code>.
@property (nonatomic, copy) NSString * _Nonnull nameLabel;
@property (nonatomic, copy) NSString * _Nonnull nameLabelContents;
/// The placeholder for the name input field.
/// note:
/// Default: <code>"Your Name"</code>
/// note:
/// ignored if <code>showName</code> is <code>false</code>.
@property (nonatomic, copy) NSString * _Nonnull namePlaceholder;
@property (nonatomic, copy) NSString * _Nonnull nameTextFieldAccessibilityLabel;
/// Requires the email field on the feedback form to be filled in.
/// note:
/// Default: <code>false</code>
@property (nonatomic) BOOL isEmailRequired;
/// Displays the email field on the feedback form.
/// note:
/// Default: <code>true</code>
/// note:
/// ignored if <code>isEmailRequired</code> is <code>true</code>.
@property (nonatomic) BOOL showEmail;
/// The label of the email input field.
/// note:
/// Default: <code>"Email"</code>
@property (nonatomic, copy) NSString * _Nonnull emailLabel;
@property (nonatomic, copy) NSString * _Nonnull emailLabelContents;
/// The placeholder for the email input field.
/// note:
/// Default: <code>"your.email@example.org"</code>
@property (nonatomic, copy) NSString * _Nonnull emailPlaceholder;
@property (nonatomic, copy) NSString * _Nonnull emailTextFieldAccessibilityLabel;
/// The label of the submit button used in the feedback form.
/// note:
/// Default: <code>"Send Bug Report"</code>
@property (nonatomic, copy) NSString * _Nonnull submitButtonLabel;
/// The accessibility label of the form’s “Submit” button.
/// note:
/// Default: <code>submitButtonLabel</code> value
@property (nonatomic, copy) NSString * _Nonnull submitButtonAccessibilityLabel;
/// The label of cancel buttons used in the feedback form.
/// note:
/// Default: <code>"Cancel"</code>
@property (nonatomic, copy) NSString * _Nonnull cancelButtonLabel;
/// The accessibility label of the form’s “Cancel” button.
/// note:
/// Default: <code>cancelButtonLabel</code> value
@property (nonatomic, copy) NSString * _Nonnull cancelButtonAccessibilityLabel;
- (NSString * _Nonnull)fullLabelTextWithLabelText:(NSString * _Nonnull)labelText required:(BOOL)required SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@class UITraitCollection;
@class NSBundle;

SWIFT_CLASS("_TtC6Sentry32SentryUserFeedbackFormController") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormController : UIViewController
- (void)traitCollectionDidChange:(UITraitCollection * _Nullable)previousTraitCollection;
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithNibName:(NSString * _Nullable)nibNameOrNil bundle:(NSBundle * _Nullable)nibBundleOrNil SWIFT_UNAVAILABLE;
@end

@class UITextView;

SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormController (SWIFT_EXTENSION(Sentry)) <UITextViewDelegate>
- (void)textViewDidChange:(UITextView * _Nonnull)textView;
@end

@class UITextField;

SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormController (SWIFT_EXTENSION(Sentry)) <UITextFieldDelegate>
- (BOOL)textFieldShouldReturn:(UITextField * _Nonnull)textField SWIFT_WARN_UNUSED_RESULT;
- (void)textFieldDidChangeSelection:(UITextField * _Nonnull)textField;
@end


@class NSNotification;

SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormController (SWIFT_EXTENSION(Sentry))
- (void)showedKeyboardWithNote:(NSNotification * _Nonnull)note;
- (void)hidKeyboard;
@end

@class NSDateFormatter;
@class UILabel;
@class UIImageView;
@class UIStackView;
@class UIScrollView;
@class NSLayoutConstraint;

SWIFT_CLASS("_TtC6Sentry31SentryUserFeedbackFormViewModel") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormViewModel : NSObject
@property (nonatomic, readonly, strong) SentryUserFeedbackConfiguration * _Nonnull config;
@property (nonatomic, readonly, unsafe_unretained) SentryUserFeedbackFormController * _Nonnull controller;
@property (nonatomic, readonly, strong) UIImage * _Nullable screenshot;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) NSDateFormatter * _Nonnull dateFormatter;)
+ (NSDateFormatter * _Nonnull)dateFormatter SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)initWithConfig:(SentryUserFeedbackConfiguration * _Nonnull)config controller:(SentryUserFeedbackFormController * _Nonnull)controller screenshot:(UIImage * _Nullable)screenshot OBJC_DESIGNATED_INITIALIZER;
@property (nonatomic, strong) UILabel * _Nonnull formTitleLabel;
@property (nonatomic, strong) UIView * _Nonnull sentryLogoView;
@property (nonatomic, strong) UILabel * _Nonnull fullNameLabel;
@property (nonatomic, strong) UITextField * _Nonnull fullNameTextField;
@property (nonatomic, strong) UILabel * _Nonnull emailLabel;
@property (nonatomic, strong) UITextField * _Nonnull emailTextField;
@property (nonatomic, strong) UILabel * _Nonnull messageLabel;
@property (nonatomic, strong) UILabel * _Nonnull messageTextViewPlaceholder;
@property (nonatomic, strong) UITextView * _Nonnull messageTextView;
@property (nonatomic, strong) UIImageView * _Nonnull screenshotImageView;
@property (nonatomic, strong) UIButton * _Nonnull removeScreenshotButton;
@property (nonatomic, strong) UIButton * _Nonnull submitButton;
@property (nonatomic, strong) UIButton * _Nonnull cancelButton;
@property (nonatomic, strong) UIStackView * _Nonnull removeScreenshotStack;
@property (nonatomic, strong) UIStackView * _Nonnull stack;
@property (nonatomic, strong) UIScrollView * _Nonnull scrollView;
@property (nonatomic, readonly) CGFloat formElementHeight;
@property (nonatomic, readonly) CGFloat logoWidth;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull messageTextViewHeightConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull logoViewWidthConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull fullNameTextFieldHeightConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull emailTextFieldHeightConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull removeScreenshotButtonHeightConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull submitButtonHeightConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull cancelButtonHeightConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull screenshotImageAspectRatioConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull messagePlaceholderLeadingConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull messagePlaceholderTrailingConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull messagePlaceholderTopConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull messagePlaceholderBottomConstraint;
- (NSArray<NSLayoutConstraint *> * _Nonnull)allConstraintsWithView:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormViewModel (SWIFT_EXTENSION(Sentry))
- (void)removeScreenshotTapped;
- (void)submitFeedback;
- (void)cancel;
@end


SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormViewModel (SWIFT_EXTENSION(Sentry))
- (void)updateSubmitButtonAccessibilityHint;
- (void)themeElements;
- (void)setScrollViewBottomInset:(CGFloat)inset;
- (void)updateLayout;
- (SentryFeedback * _Nonnull)feedbackObject SWIFT_WARN_UNUSED_RESULT;
@end

@protocol SentryUserFeedbackIntegrationDriverDelegate;
@class SentryScreenshot;

/// An integration managing a workflow for end users to report feedback via Sentry.
/// note:
/// The default method to show the feedback form is via a floating widget placed in the bottom trailing corner of the screen. See the configuration classes for alternative options.
SWIFT_CLASS("_TtC6Sentry35SentryUserFeedbackIntegrationDriver") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackIntegrationDriver : NSObject
@property (nonatomic, readonly, strong) SentryUserFeedbackConfiguration * _Nonnull configuration;
@property (nonatomic, weak) id <SentryUserFeedbackIntegrationDriverDelegate> _Nullable delegate;
@property (nonatomic, readonly, strong) SentryScreenshot * _Nonnull screenshotProvider;
@property (nonatomic, weak) UIButton * _Nullable customButton;
- (nonnull instancetype)initWithConfiguration:(SentryUserFeedbackConfiguration * _Nonnull)configuration delegate:(id <SentryUserFeedbackIntegrationDriverDelegate> _Nonnull)delegate screenshotProvider:(SentryScreenshot * _Nonnull)screenshotProvider OBJC_DESIGNATED_INITIALIZER;
- (void)showWidget;
- (void)hideWidget;
- (void)showFormWithSender:(UIButton * _Nonnull)sender;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


SWIFT_AVAILABILITY(ios_app_extension,introduced=13.0)
@interface SentryUserFeedbackIntegrationDriver (SWIFT_EXTENSION(Sentry))
- (void)showForm;
@end

@class UIPresentationController;

SWIFT_AVAILABILITY(ios_app_extension,introduced=13.0)
@interface SentryUserFeedbackIntegrationDriver (SWIFT_EXTENSION(Sentry)) <UIAdaptivePresentationControllerDelegate>
- (void)presentationControllerDidDismiss:(UIPresentationController * _Nonnull)presentationController;
@end


SWIFT_AVAILABILITY(ios_app_extension,introduced=13.0)
@interface SentryUserFeedbackIntegrationDriver (SWIFT_EXTENSION(Sentry))
- (void)finishedWith:(SentryFeedback * _Nullable)feedback;
@end



SWIFT_PROTOCOL("_TtP6Sentry43SentryUserFeedbackIntegrationDriverDelegate_") SWIFT_AVAILABILITY(ios,introduced=13.0)
@protocol SentryUserFeedbackIntegrationDriverDelegate <NSObject>
- (void)captureWithFeedback:(SentryFeedback * _Nonnull)feedback;
@end

@class UIFont;
@class UIColor;
@class SentryFormElementOutlineStyle;

/// Settings for overriding theming components for the User Feedback Widget and Form.
SWIFT_CLASS("_TtC6Sentry36SentryUserFeedbackThemeConfiguration") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackThemeConfiguration : NSObject
/// The font family to use for form text elements.
/// note:
/// Defaults to the system default, if this property is <code>nil</code>.
@property (nonatomic, copy) NSString * _Nullable fontFamily;
/// Font for form input elements and the widget button label.
/// note:
/// Defaults to <code>UIFont.TextStyle.callout</code>.
@property (nonatomic, strong) UIFont * _Nonnull font;
/// Font for the main header title of the feedback form.
/// note:
/// Defaults to <code>UIFont.TextStyle.title1</code>.
@property (nonatomic, strong) UIFont * _Nonnull headerFont;
/// Font for titles of text fields and buttons in the form.
/// note:
/// Defaults to <code>UIFont.TextStyle.headline</code>.
@property (nonatomic, strong) UIFont * _Nonnull titleFont;
/// Return a scaled font for the given style, using the configured font family.
- (UIFont * _Nonnull)scaledFontWithStyle:(UIFontTextStyle _Nonnull)style SWIFT_WARN_UNUSED_RESULT;
/// Helps respond to dynamic font size changes when the app is in the background, and then comes back to the foreground.
- (void)updateDefaultFonts;
/// Foreground text color of the widget and form.
/// note:
/// Default light mode: <code>rgb(43, 34, 51)</code>; dark mode: <code>rgb(235, 230, 239)</code>
@property (nonatomic, strong) UIColor * _Nonnull foreground;
/// Background color of the widget and form.
/// note:
/// Default light mode: <code>rgb(255, 255, 255)</code>; dark mode: <code>rgb(41, 35, 47)</code>
@property (nonatomic, strong) UIColor * _Nonnull background;
/// Foreground color for the form submit button.
/// note:
/// Default: <code>rgb(255, 255, 255)</code> for both dark and light modes
@property (nonatomic, strong) UIColor * _Nonnull submitForeground;
/// Background color for the form submit button in light and dark modes.
/// note:
/// Default: <code>rgb(88, 74, 192)</code> for both light and dark modes
@property (nonatomic, strong) UIColor * _Nonnull submitBackground;
/// Foreground color for the cancel and screenshot buttons.
/// note:
/// Default: Same as <code>foreground</code> for both dark and light modes
@property (nonatomic, strong) UIColor * _Nonnull buttonForeground;
/// Background color for the form cancel and screenshot buttons in light and dark modes.
/// note:
/// Default: Transparent for both light and dark modes
@property (nonatomic, strong) UIColor * _Nonnull buttonBackground;
/// Color used for error-related components (such as text color when there’s an error submitting feedback).
/// note:
/// Default light mode: <code>rgb(223, 51, 56)</code>; dark mode: <code>rgb(245, 84, 89)</code>
@property (nonatomic, strong) UIColor * _Nonnull errorColor;
/// note:
/// We need to keep a reference to a default instance of this for comparison purposes later. We don’t use the default to give UITextFields a default style, instead, we use <code>UITextField.BorderStyle.roundedRect</code> if <code>SentryUserFeedbackThemeConfiguration.outlineStyle == defaultOutlineStyle</code>.
@property (nonatomic, readonly, strong) SentryFormElementOutlineStyle * _Nonnull defaultOutlineStyle;
/// Options for styling the outline of input elements and buttons in the feedback form.
@property (nonatomic, strong) SentryFormElementOutlineStyle * _Nonnull outlineStyle;
/// Background color to use for text inputs in the feedback form.
@property (nonatomic, strong) UIColor * _Nonnull inputBackground;
/// Background color to use for text inputs in the feedback form.
@property (nonatomic, strong) UIColor * _Nonnull inputForeground;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


SWIFT_CLASS("_TtCC6Sentry36SentryUserFeedbackThemeConfiguration29SentryFormElementOutlineStyle")
@interface SentryFormElementOutlineStyle : NSObject
- (nonnull instancetype)initWithColor:(UIColor * _Nonnull)color cornerRadius:(CGFloat)cornerRadius outlineWidth:(CGFloat)outlineWidth OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


SWIFT_CLASS("_TtC6Sentry47SentryUserFeedbackWidgetButtonMegaphoneIconView") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackWidgetButtonMegaphoneIconView : UIView
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE;
@end


SWIFT_CLASS("_TtC6Sentry34SentryUserFeedbackWidgetButtonView") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackWidgetButtonView : UIView
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
- (void)buttonPressed;
- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE;
@end


/// Settings for whether to show the widget and how it should appear.
SWIFT_CLASS("_TtC6Sentry37SentryUserFeedbackWidgetConfiguration") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackWidgetConfiguration : NSObject
/// Automatically inject the widget button into the application UI.
/// note:
/// Default: <code>true</code>
@property (nonatomic) BOOL autoInject;
@property (nonatomic, readonly, copy) NSString * _Nonnull defaultLabelText;
/// The label of the injected button that opens up the feedback form when clicked. If <code>nil</code>, no
/// text is displayed and only the icon image is shown.
/// note:
/// Default: <code>"Report a Bug"</code>
@property (nonatomic, copy) NSString * _Nullable labelText;
/// Whether or not to show our icon along with the text in the button.
/// note:
/// Default: <code>true</code>.
@property (nonatomic) BOOL showIcon;
/// The accessibility label of the injected button that opens up the feedback form when clicked.
/// note:
/// Default: <code>labelText</code> value
@property (nonatomic, copy) NSString * _Nullable widgetAccessibilityLabel;
/// The window level of the widget.
/// note:
/// Default: <code>UIWindow.Level.normal + 1</code>
@property (nonatomic) UIWindowLevel windowLevel;
/// The location for positioning the widget.
/// note:
/// Default: <code>[.bottom, .right]</code>
@property (nonatomic) NSDirectionalRectEdge location;
/// The distance to use from the widget button to the <code>safeAreaLayoutGuide</code> of the root view in the widget’s container window.
/// note:
/// Default: <code>UIOffset.zero</code>
@property (nonatomic) UIOffset layoutUIOffset;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


SWIFT_CLASS("_TtC6Sentry15SentryVideoInfo")
@interface SentryVideoInfo : NSObject
@property (nonatomic, readonly, copy) NSURL * _Nonnull path;
@property (nonatomic, readonly) NSInteger height;
@property (nonatomic, readonly) NSInteger width;
@property (nonatomic, readonly) NSTimeInterval duration;
@property (nonatomic, readonly) NSInteger frameCount;
@property (nonatomic, readonly) NSInteger frameRate;
@property (nonatomic, readonly, copy) NSDate * _Nonnull start;
@property (nonatomic, readonly, copy) NSDate * _Nonnull end;
@property (nonatomic, readonly) NSInteger fileSize;
@property (nonatomic, readonly, copy) NSArray<NSString *> * _Nonnull screens;
- (nonnull instancetype)initWithPath:(NSURL * _Nonnull)path height:(NSInteger)height width:(NSInteger)width duration:(NSTimeInterval)duration frameCount:(NSInteger)frameCount frameRate:(NSInteger)frameRate start:(NSDate * _Nonnull)start end:(NSDate * _Nonnull)end fileSize:(NSInteger)fileSize screens:(NSArray<NSString *> * _Nonnull)screens OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


SWIFT_PROTOCOL("_TtP6Sentry28SentryViewScreenshotProvider_")
@protocol SentryViewScreenshotProvider <NSObject>
- (void)imageWithView:(UIView * _Nonnull)view onComplete:(void (^ _Nonnull)(UIImage * _Nonnull))onComplete;
@end


SWIFT_CLASS("_TtC6Sentry22SentryViewPhotographer")
@interface SentryViewPhotographer : NSObject <SentryViewScreenshotProvider>
@property (nonatomic, strong) id <SentryViewRenderer> _Nonnull renderer;
/// Creates a view photographer used to convert a view hierarchy to an image.
/// note:
/// The option <code>enableMaskRendererV2</code> is an internal flag, which is not part of the public API.
/// Therefore, it is not part of the the <code>redactOptions</code> parameter, to not further expose it.
/// \param renderer Implementation of the view renderer.
///
/// \param redactOptions Options provided to redact sensitive information.
///
/// \param enableMaskRendererV2 Flag to enable experimental view renderer.
///
- (nonnull instancetype)initWithRenderer:(id <SentryViewRenderer> _Nonnull)renderer redactOptions:(id <SentryRedactOptions> _Nonnull)redactOptions enableMaskRendererV2:(BOOL)enableMaskRendererV2 OBJC_DESIGNATED_INITIALIZER;
- (void)imageWithView:(UIView * _Nonnull)view onComplete:(void (^ _Nonnull)(UIImage * _Nonnull))onComplete;
- (UIImage * _Nonnull)imageWithView:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
- (void)addIgnoreClasses:(NSArray<Class> * _Nonnull)classes;
- (void)addRedactClasses:(NSArray<Class> * _Nonnull)classes;
- (void)setIgnoreContainerClass:(Class _Nonnull)containerClass;
- (void)setRedactContainerClass:(Class _Nonnull)containerClass;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end



SWIFT_CLASS("_TtC6Sentry20SentryViewRendererV2")
@interface SentryViewRendererV2 : NSObject <SentryViewRenderer>
@property (nonatomic, readonly) BOOL enableFastViewRendering;
- (nonnull instancetype)initWithEnableFastViewRendering:(BOOL)enableFastViewRendering OBJC_DESIGNATED_INITIALIZER;
- (UIImage * _Nonnull)renderWithView:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end



SWIFT_CLASS("_TtC6Sentry15SwiftDescriptor")
@interface SwiftDescriptor : NSObject
+ (NSString * _Nonnull)getObjectClassName:(id _Nonnull)object SWIFT_WARN_UNUSED_RESULT;
+ (NSString * _Nonnull)getViewControllerClassName:(UIViewController * _Nonnull)object SWIFT_WARN_UNUSED_RESULT;
+ (NSString * _Nullable)getSwiftErrorDescription:(NSError * _Nonnull)error SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end






@class NSURLSessionTask;

SWIFT_CLASS("_TtC6Sentry20URLSessionTaskHelper")
@interface URLSessionTaskHelper : NSObject
+ (NSString * _Nullable)getGraphQLOperationNameFrom:(NSURLSessionTask * _Nullable)task SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@class NSURLQueryItem;

SWIFT_CLASS("_TtC6Sentry12UrlSanitized")
@interface UrlSanitized : NSObject
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull SENSITIVE_DATA_SUBSTITUTE;)
+ (NSString * _Nonnull)SENSITIVE_DATA_SUBSTITUTE SWIFT_WARN_UNUSED_RESULT;
@property (nonatomic, readonly, copy) NSString * _Nullable query;
@property (nonatomic, readonly, copy) NSArray<NSURLQueryItem *> * _Nullable queryItems;
@property (nonatomic, readonly, copy) NSString * _Nullable fragment;
- (nonnull instancetype)initWithURL:(NSURL * _Nonnull)url OBJC_DESIGNATED_INITIALIZER;
@property (nonatomic, readonly, copy) NSString * _Nullable sanitizedUrl;
- (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

#elif defined(__arm64__) && __arm64__
// Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)
#ifndef SENTRY_SWIFT_H
#define SENTRY_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)
#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
#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 CoreFoundation;
@import Foundation;
@import MetricKit;
@import ObjectiveC;
@import UIKit;
#endif

#import <Sentry/Sentry.h>

#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"

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

#if defined(__OBJC__)






@class NSString;

SWIFT_CLASS("_TtC6Sentry19HTTPHeaderSanitizer")
@interface HTTPHeaderSanitizer : NSObject
+ (NSDictionary<NSString *, NSString *> * _Nonnull)sanitizeHeaders:(NSDictionary<NSString *, NSString *> * _Nonnull)headers SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end





SWIFT_PROTOCOL_NAMED("SentryRRWebEventProtocol")
@protocol SentryRRWebEvent <SentrySerializable>
@end

enum SentryRRWebEventType : NSInteger;
@class NSDate;

SWIFT_CLASS("_TtC6Sentry16SentryRRWebEvent")
@interface SentryRRWebEvent : NSObject <SentryRRWebEvent>
@property (nonatomic, readonly) enum SentryRRWebEventType type;
@property (nonatomic, readonly, copy) NSDate * _Nonnull timestamp;
@property (nonatomic, readonly, copy) NSDictionary<NSString *, id> * _Nullable data;
- (nonnull instancetype)initWithType:(enum SentryRRWebEventType)type timestamp:(NSDate * _Nonnull)timestamp data:(NSDictionary<NSString *, id> * _Nullable)data OBJC_DESIGNATED_INITIALIZER;
- (NSDictionary<NSString *, id> * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


SWIFT_CLASS("_TtC6Sentry14RRWebMoveEvent")
@interface RRWebMoveEvent : SentryRRWebEvent
- (nonnull instancetype)initWithType:(enum SentryRRWebEventType)type timestamp:(NSDate * _Nonnull)timestamp data:(NSDictionary<NSString *, id> * _Nullable)data SWIFT_UNAVAILABLE;
@end


SWIFT_CLASS("_TtC6Sentry15RRWebTouchEvent")
@interface RRWebTouchEvent : SentryRRWebEvent
- (nonnull instancetype)initWithType:(enum SentryRRWebEventType)type timestamp:(NSDate * _Nonnull)timestamp data:(NSDictionary<NSString *, id> * _Nullable)data SWIFT_UNAVAILABLE;
@end


SWIFT_CLASS("_TtC6Sentry22SentryANRStoppedResult")
@interface SentryANRStoppedResult : NSObject
@property (nonatomic, readonly) NSTimeInterval minDuration;
@property (nonatomic, readonly) NSTimeInterval maxDuration;
- (nonnull instancetype)initWithMinDuration:(NSTimeInterval)minDuration maxDuration:(NSTimeInterval)maxDuration OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

@protocol SentryANRTrackerDelegate;

SWIFT_PROTOCOL("_TtP6Sentry16SentryANRTracker_")
@protocol SentryANRTracker
- (void)addListener:(id <SentryANRTrackerDelegate> _Nonnull)listener;
- (void)removeListener:(id <SentryANRTrackerDelegate> _Nonnull)listener;
/// Only used for tests.
- (void)clear;
@end

enum SentryANRType : NSInteger;

/// The  methods are called from a  background thread.
SWIFT_PROTOCOL("_TtP6Sentry24SentryANRTrackerDelegate_")
@protocol SentryANRTrackerDelegate
- (void)anrDetectedWithType:(enum SentryANRType)type;
- (void)anrStoppedWithResult:(SentryANRStoppedResult * _Nullable)result;
@end

typedef SWIFT_ENUM(NSInteger, SentryANRType, closed) {
  SentryANRTypeFatalFullyBlocking = 0,
  SentryANRTypeFatalNonFullyBlocking = 1,
  SentryANRTypeFullyBlocking = 2,
  SentryANRTypeNonFullyBlocking = 3,
  SentryANRTypeUnknown = 4,
};


SWIFT_CLASS("_TtC6Sentry23SentryAppHangTypeMapper")
@interface SentryAppHangTypeMapper : NSObject
+ (NSString * _Nonnull)getExceptionTypeWithAnrType:(enum SentryANRType)anrType SWIFT_WARN_UNUSED_RESULT;
+ (NSString * _Nonnull)getFatalExceptionTypeWithNonFatalErrorType:(NSString * _Nonnull)nonFatalErrorType SWIFT_WARN_UNUSED_RESULT;
+ (BOOL)isExceptionTypeAppHangWithExceptionType:(NSString * _Nonnull)exceptionType SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


SWIFT_CLASS("_TtC6Sentry26SentryBaggageSerialization")
@interface SentryBaggageSerialization : NSObject
+ (NSString * _Nonnull)encodeDictionary:(NSDictionary<NSString *, NSString *> * _Nonnull)dictionary SWIFT_WARN_UNUSED_RESULT;
+ (NSDictionary<NSString *, NSString *> * _Nonnull)decode:(NSString * _Nonnull)baggage SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


/// We need a protocol to expose SentryCurrentDateProvider to tests.
/// Mocking the previous private class from <code>SentryTestUtils</code> stopped working in Xcode 16.
SWIFT_PROTOCOL("_TtP6Sentry25SentryCurrentDateProvider_")
@protocol SentryCurrentDateProvider
- (NSDate * _Nonnull)date SWIFT_WARN_UNUSED_RESULT;
- (NSInteger)timezoneOffset SWIFT_WARN_UNUSED_RESULT;
- (uint64_t)systemTime SWIFT_WARN_UNUSED_RESULT;
- (NSTimeInterval)systemUptime SWIFT_WARN_UNUSED_RESULT;
@end


SWIFT_CLASS("_TtC6Sentry32SentryDefaultCurrentDateProvider")
@interface SentryDefaultCurrentDateProvider : NSObject <SentryCurrentDateProvider>
- (NSDate * _Nonnull)date SWIFT_WARN_UNUSED_RESULT;
- (NSInteger)timezoneOffset SWIFT_WARN_UNUSED_RESULT;
/// Returns the absolute timestamp, which has no defined reference point or unit
/// as it is platform dependent.
- (uint64_t)systemTime SWIFT_WARN_UNUSED_RESULT;
- (NSTimeInterval)systemUptime SWIFT_WARN_UNUSED_RESULT;
+ (uint64_t)getAbsoluteTime SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


SWIFT_CLASS("_TtC6Sentry25SentryDefaultMaskRenderer")
@interface SentryDefaultMaskRenderer : NSObject
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@class UIView;
@class UIImage;

SWIFT_PROTOCOL("_TtP6Sentry18SentryViewRenderer_")
@protocol SentryViewRenderer
- (UIImage * _Nonnull)renderWithView:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
@end


SWIFT_CLASS("_TtC6Sentry25SentryDefaultViewRenderer")
@interface SentryDefaultViewRenderer : NSObject <SentryViewRenderer>
- (UIImage * _Nonnull)renderWithView:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@class SentryOptions;

SWIFT_CLASS("_TtC6Sentry28SentryEnabledFeaturesBuilder")
@interface SentryEnabledFeaturesBuilder : NSObject
+ (NSArray<NSString *> * _Nonnull)getEnabledFeaturesWithOptions:(SentryOptions * _Nullable)options SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


@class NSData;
@class SentryEvent;

SWIFT_CLASS("_TtC6Sentry18SentryEventDecoder")
@interface SentryEventDecoder : NSObject
+ (SentryEvent * _Nullable)decodeEventWithJsonData:(NSData * _Nonnull)jsonData SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


SWIFT_CLASS("_TtC6Sentry25SentryExperimentalOptions")
@interface SentryExperimentalOptions : NSObject
/// Enables swizzling of<code>NSData</code> to automatically track file operations.
/// note:
/// Swizzling is enabled by setting <code>SentryOptions.enableSwizzling</code> to <code>true</code>.
/// This option allows you to disable swizzling for <code>NSData</code> only, while keeping swizzling enabled for other classes.
/// This is useful if you want to use manual tracing for file operations.
@property (nonatomic) BOOL enableDataSwizzling;
/// Enables swizzling of<code>NSFileManager</code> to automatically track file operations.
/// note:
/// Swizzling is enabled by setting <code>SentryOptions.enableSwizzling</code> to <code>true</code>.
/// This option allows you to disable swizzling for <code>NSFileManager</code> only, while keeping swizzling enabled for other classes.
/// This is useful if you want to use manual tracing for file operations.
/// experiment:
/// This is an experimental feature and is therefore disabled by default. We’ll enable it by default in a future release.
@property (nonatomic) BOOL enableFileManagerSwizzling;
- (void)validateOptions:(NSDictionary<NSString *, id> * _Nullable)options;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

enum SentryFeedbackSource : NSInteger;
@class SentryId;

SWIFT_CLASS("_TtC6Sentry14SentryFeedback")
@interface SentryFeedback : NSObject
@property (nonatomic, copy) NSString * _Nullable name;
@property (nonatomic, copy) NSString * _Nullable email;
@property (nonatomic, copy) NSString * _Nonnull message;
@property (nonatomic) enum SentryFeedbackSource source;
@property (nonatomic, readonly, strong) SentryId * _Nonnull eventId;
/// The event id that this feedback is associated with, like a crash report.
@property (nonatomic, strong) SentryId * _Nullable associatedEventId;
/// \param associatedEventId The ID for an event you’d like associated with the feedback. 
///
/// \param attachments Data objects for any attachments. Currently the web UI only supports showing one attached image, like for a screenshot. 
///
- (nonnull instancetype)initWithMessage:(NSString * _Nonnull)message name:(NSString * _Nullable)name email:(NSString * _Nullable)email source:(enum SentryFeedbackSource)source associatedEventId:(SentryId * _Nullable)associatedEventId attachments:(NSArray<NSData *> * _Nullable)attachments OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

typedef SWIFT_ENUM(NSInteger, SentryFeedbackSource, open) {
  SentryFeedbackSourceWidget = 0,
  SentryFeedbackSourceCustom = 1,
};


@interface SentryFeedback (SWIFT_EXTENSION(Sentry)) <SentrySerializable>
- (NSDictionary<NSString *, id> * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT;
@end

@class SentryAttachment;

@interface SentryFeedback (SWIFT_EXTENSION(Sentry))
/// note:
/// This dictionary is to pass to the block <code>SentryUserFeedbackConfiguration.onSubmitSuccess</code>, describing the contents submitted. This is different from the serialized form of the feedback for envelope transmission, because there are some internal details in that serialization that are irrelevant to the consumer and are not available at the time <code>onSubmitSuccess</code> is called.
- (NSDictionary<NSString *, id> * _Nonnull)dataDictionary SWIFT_WARN_UNUSED_RESULT;
/// note:
/// Currently there is only a single attachment possible, for the screenshot, of which there can be only one.
- (NSArray<SentryAttachment *> * _Nonnull)attachmentsForEnvelope SWIFT_WARN_UNUSED_RESULT;
@end


SWIFT_CLASS("_TtC6Sentry18SentryFileContents")
@interface SentryFileContents : NSObject
@property (nonatomic, readonly, copy) NSString * _Nonnull path;
@property (nonatomic, readonly, copy) NSData * _Nonnull contents;
- (nonnull instancetype)initWithPath:(NSString * _Nonnull)path contents:(NSData * _Nonnull)contents OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end



SWIFT_CLASS("_TtC6Sentry23SentryFramesDelayResult")
@interface SentryFramesDelayResult : NSObject
/// The frames delay for the passed time period. If frame delay can’t be calculated this is -1.
@property (nonatomic, readonly) CFTimeInterval delayDuration;
@property (nonatomic, readonly) NSUInteger framesContributingToDelayCount;
- (nonnull instancetype)initWithDelayDuration:(CFTimeInterval)delayDuration framesContributingToDelayCount:(NSUInteger)framesContributingToDelayCount OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

@class NSUUID;

SWIFT_CLASS("_TtC6Sentry8SentryId")
@interface SentryId : NSObject
/// A @c SentryId with an empty UUID “00000000000000000000000000000000”.
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryId * _Nonnull empty;)
+ (SentryId * _Nonnull)empty SWIFT_WARN_UNUSED_RESULT;
/// Returns a 32 lowercase character hexadecimal string description of the @c SentryId, such as
/// “12c2d058d58442709aa2eca08bf20986”.
@property (nonatomic, readonly, copy) NSString * _Nonnull sentryIdString;
/// Creates a @c SentryId with a random UUID.
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
/// Creates a SentryId with the given UUID.
- (nonnull instancetype)initWithUuid:(NSUUID * _Nonnull)uuid OBJC_DESIGNATED_INITIALIZER;
/// Creates a @c SentryId from a 32 character hexadecimal string without dashes such as
/// “12c2d058d58442709aa2eca08bf20986” or a 36 character hexadecimal string such as such as
/// “12c2d058-d584-4270-9aa2-eca08bf20986”.
/// @return SentryId.empty for invalid strings.
- (nonnull instancetype)initWithUUIDString:(NSString * _Nonnull)uuidString OBJC_DESIGNATED_INITIALIZER;
- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
@property (nonatomic, readonly, copy) NSString * _Nonnull description;
@property (nonatomic, readonly) NSUInteger hash;
@end

typedef SWIFT_ENUM(NSUInteger, SentryLevel, open) {
  kSentryLevelNone SWIFT_COMPILE_NAME("none") = 0,
  kSentryLevelDebug SWIFT_COMPILE_NAME("debug") = 1,
  kSentryLevelInfo SWIFT_COMPILE_NAME("info") = 2,
  kSentryLevelWarning SWIFT_COMPILE_NAME("warning") = 3,
  kSentryLevelError SWIFT_COMPILE_NAME("error") = 4,
  kSentryLevelFatal SWIFT_COMPILE_NAME("fatal") = 5,
};


SWIFT_CLASS("_TtC6Sentry17SentryLevelHelper")
@interface SentryLevelHelper : NSObject
+ (NSString * _Nonnull)nameForLevel:(enum SentryLevel)level SWIFT_WARN_UNUSED_RESULT;
+ (enum SentryLevel)levelForName:(NSString * _Nonnull)name SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


SWIFT_CLASS("_TtC6Sentry9SentryLog")
@interface SentryLog : NSObject
+ (void)configure:(BOOL)isDebug diagnosticLevel:(enum SentryLevel)diagnosticLevel;
+ (void)logWithMessage:(NSString * _Nonnull)message andLevel:(enum SentryLevel)level;
/// @return @c YES if the current logging configuration will log statements at the current level,
/// @c NO if not.
+ (BOOL)willLogAtLevel:(enum SentryLevel)level SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


@class SentryMXFrame;

SWIFT_CLASS("_TtC6Sentry17SentryMXCallStack")
@interface SentryMXCallStack : NSObject
@property (nonatomic, copy) NSArray<SentryMXFrame *> * _Nonnull callStackRootFrames;
@property (nonatomic, readonly, copy) NSArray<SentryMXFrame *> * _Nonnull flattenedRootFrames;
- (nonnull instancetype)initWithThreadAttributed:(BOOL)threadAttributed rootFrames:(NSArray<SentryMXFrame *> * _Nonnull)rootFrames OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


/// JSON specification of MXCallStackTree can be found here https://developer.apple.com/documentation/metrickit/mxcallstacktree/3552293-jsonrepresentation
SWIFT_CLASS("_TtC6Sentry21SentryMXCallStackTree")
@interface SentryMXCallStackTree : NSObject
@property (nonatomic, readonly, copy) NSArray<SentryMXCallStack *> * _Nonnull callStacks;
@property (nonatomic, readonly) BOOL callStackPerThread;
- (nonnull instancetype)initWithCallStacks:(NSArray<SentryMXCallStack *> * _Nonnull)callStacks callStackPerThread:(BOOL)callStackPerThread OBJC_DESIGNATED_INITIALIZER;
+ (SentryMXCallStackTree * _Nullable)fromData:(NSData * _Nonnull)data error:(NSError * _Nullable * _Nullable)error SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


SWIFT_CLASS("_TtC6Sentry13SentryMXFrame")
@interface SentryMXFrame : NSObject
@property (nonatomic, copy) NSUUID * _Nonnull binaryUUID;
@property (nonatomic) NSInteger offsetIntoBinaryTextSegment;
@property (nonatomic, copy) NSString * _Nullable binaryName;
@property (nonatomic) uint64_t address;
@property (nonatomic, copy) NSArray<SentryMXFrame *> * _Nullable subFrames;
@property (nonatomic, readonly, copy) NSArray<SentryMXFrame *> * _Nonnull frames;
@property (nonatomic, readonly, copy) NSArray<SentryMXFrame *> * _Nonnull framesIncludingSelf;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

@protocol SentryMXManagerDelegate;
@class MXDiagnosticPayload;

SWIFT_CLASS("_TtC6Sentry15SentryMXManager") SWIFT_AVAILABILITY(watchos,unavailable) SWIFT_AVAILABILITY(tvos,unavailable) SWIFT_AVAILABILITY(maccatalyst,introduced=15.0) SWIFT_AVAILABILITY(macos,introduced=12.0) SWIFT_AVAILABILITY(ios,introduced=15.0)
@interface SentryMXManager : NSObject <MXMetricManagerSubscriber>
@property (nonatomic, readonly) BOOL disableCrashDiagnostics;
- (nonnull instancetype)initWithDisableCrashDiagnostics:(BOOL)disableCrashDiagnostics OBJC_DESIGNATED_INITIALIZER;
@property (nonatomic, weak) id <SentryMXManagerDelegate> _Nullable delegate;
- (void)receiveReports;
- (void)pauseReports;
- (void)didReceiveDiagnosticPayloads:(NSArray<MXDiagnosticPayload *> * _Nonnull)payloads;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

@class MXCrashDiagnostic;
@class MXDiskWriteExceptionDiagnostic;
@class MXCPUExceptionDiagnostic;
@class MXHangDiagnostic;

SWIFT_PROTOCOL("_TtP6Sentry23SentryMXManagerDelegate_") SWIFT_AVAILABILITY(watchos,unavailable) SWIFT_AVAILABILITY(tvos,unavailable) SWIFT_AVAILABILITY(maccatalyst,introduced=15.0) SWIFT_AVAILABILITY(macos,introduced=12.0) SWIFT_AVAILABILITY(ios,introduced=15.0)
@protocol SentryMXManagerDelegate
- (void)didReceiveCrashDiagnostic:(MXCrashDiagnostic * _Nonnull)diagnostic callStackTree:(SentryMXCallStackTree * _Nonnull)callStackTree timeStampBegin:(NSDate * _Nonnull)timeStampBegin timeStampEnd:(NSDate * _Nonnull)timeStampEnd;
- (void)didReceiveDiskWriteExceptionDiagnostic:(MXDiskWriteExceptionDiagnostic * _Nonnull)diagnostic callStackTree:(SentryMXCallStackTree * _Nonnull)callStackTree timeStampBegin:(NSDate * _Nonnull)timeStampBegin timeStampEnd:(NSDate * _Nonnull)timeStampEnd;
- (void)didReceiveCpuExceptionDiagnostic:(MXCPUExceptionDiagnostic * _Nonnull)diagnostic callStackTree:(SentryMXCallStackTree * _Nonnull)callStackTree timeStampBegin:(NSDate * _Nonnull)timeStampBegin timeStampEnd:(NSDate * _Nonnull)timeStampEnd;
- (void)didReceiveHangDiagnostic:(MXHangDiagnostic * _Nonnull)diagnostic callStackTree:(SentryMXCallStackTree * _Nonnull)callStackTree timeStampBegin:(NSDate * _Nonnull)timeStampBegin timeStampEnd:(NSDate * _Nonnull)timeStampEnd;
@end


SWIFT_CLASS("_TtC6Sentry20SentryMaskRendererV2")
@interface SentryMaskRendererV2 : SentryDefaultMaskRenderer
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@protocol SentryRedactOptions;
@class NSCoder;

SWIFT_CLASS("_TtC6Sentry24SentryMaskingPreviewView")
@interface SentryMaskingPreviewView : UIView
@property (nonatomic) float opacity;
- (nonnull instancetype)initWithRedactOptions:(id <SentryRedactOptions> _Nonnull)redactOptions OBJC_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
- (void)didMoveToSuperview;
- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE;
@end



@class SentryVideoInfo;

SWIFT_PROTOCOL("_TtP6Sentry22SentryReplayVideoMaker_")
@protocol SentryReplayVideoMaker <NSObject>
- (void)addFrameAsyncWithImage:(UIImage * _Nonnull)image forScreen:(NSString * _Nullable)forScreen;
- (void)releaseFramesUntil:(NSDate * _Nonnull)date;
- (void)createVideoInBackgroundWithBeginning:(NSDate * _Nonnull)beginning end:(NSDate * _Nonnull)end completion:(void (^ _Nonnull)(NSArray<SentryVideoInfo *> * _Nonnull))completion;
- (NSArray<SentryVideoInfo *> * _Nonnull)createVideoWithBeginning:(NSDate * _Nonnull)beginning end:(NSDate * _Nonnull)end SWIFT_WARN_UNUSED_RESULT;
@end

@class SentryDispatchQueueWrapper;
@class NSValue;

SWIFT_CLASS("_TtC6Sentry20SentryOnDemandReplay")
@interface SentryOnDemandReplay : NSObject <SentryReplayVideoMaker>
@property (nonatomic) float videoScale;
@property (nonatomic) NSInteger bitRate;
@property (nonatomic) NSInteger frameRate;
@property (nonatomic) NSUInteger cacheMaxSize;
- (nonnull instancetype)initWithOutputPath:(NSString * _Nonnull)outputPath processingQueue:(SentryDispatchQueueWrapper * _Nonnull)processingQueue assetWorkerQueue:(SentryDispatchQueueWrapper * _Nonnull)assetWorkerQueue dateProvider:(id <SentryCurrentDateProvider> _Nonnull)dateProvider OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithContentFrom:(NSString * _Nonnull)outputPath processingQueue:(SentryDispatchQueueWrapper * _Nonnull)processingQueue assetWorkerQueue:(SentryDispatchQueueWrapper * _Nonnull)assetWorkerQueue dateProvider:(id <SentryCurrentDateProvider> _Nonnull)dateProvider;
- (void)addFrameAsyncWithImage:(UIImage * _Nonnull)image forScreen:(NSString * _Nullable)forScreen;
- (void)releaseFramesUntil:(NSDate * _Nonnull)date;
@property (nonatomic, readonly, copy) NSDate * _Nullable oldestFrameDate;
- (void)createVideoInBackgroundWithBeginning:(NSDate * _Nonnull)beginning end:(NSDate * _Nonnull)end completion:(void (^ _Nonnull)(NSArray<SentryVideoInfo *> * _Nonnull))completion;
- (NSArray<SentryVideoInfo *> * _Nonnull)createVideoWithBeginning:(NSDate * _Nonnull)beginning end:(NSDate * _Nonnull)end SWIFT_WARN_UNUSED_RESULT;
- (NSDictionary<NSString *, id> * _Nonnull)createVideoSettingsWithWidth:(CGFloat)width height:(CGFloat)height SWIFT_WARN_UNUSED_RESULT;
/// Calculates the presentation time for a frame at a given index and frame rate.
/// The return value is an <code>NSValue</code> containing a <code>CMTime</code> object representing the calculated presentation time.
/// The <code>CMTime</code> must be wrapped as this class is exposed to Objective-C via <code>Sentry-Swift.h</code>, and Objective-C does not support <code>CMTime</code>
/// as a return value.
/// \param index Index of the frame, counted from 0.
///
/// \param frameRate Number of frames per second.
///
///
/// returns:
/// <code>NSValue</code> containing the <code>CMTime</code> representing the calculated presentation time. Can be accessed using the <code>timeValue</code> property.
+ (NSValue * _Nonnull)calculatePresentationTimeForFrameAtIndex:(NSInteger)index frameRate:(NSInteger)frameRate SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

enum SentryProfileLifecycle : NSInteger;

/// An object containing configuration for the Sentry profiler.
/// warning:
/// Continuous profiling is an experimental feature and may still contain bugs.
/// note:
/// If either <code>SentryOptions.profilesSampleRate</code> or <code>SentryOptions.profilesSampler</code> are
/// set to a non-nil value such that transaction-based profiling is being used, these settings
/// will have no effect, nor will <code>SentrySDK.startProfiler()</code> or <code>SentrySDK.stopProfiler()</code>.
/// note:
/// Profiling is automatically disabled if a thread sanitizer is attached.
SWIFT_CLASS("_TtC6Sentry20SentryProfileOptions")
@interface SentryProfileOptions : NSObject
/// The mode to use for starting and stopping the profiler, either manually or automatically.
/// warning:
/// Continuous profiling is an experimental feature and may still contain bugs.
/// note:
/// Default: <code>SentryProfileLifecycleManual</code>.
/// note:
/// If either <code>SentryOptions.profilesSampleRate</code> or <code>SentryOptions.profilesSampler</code> are
/// set to a non-nil value such that transaction-based profiling is being used, then setting
/// this property has no effect.
/// note:
/// Profiling is automatically disabled if a thread sanitizer is attached.
@property (nonatomic) enum SentryProfileLifecycle lifecycle;
/// The % of user sessions in which to enable profiling.
/// warning:
/// Continuous profiling is an experimental feature and may still contain bugs.
/// note:
/// The decision whether or not to sample profiles is computed using this sample rate
/// when the SDK is started, and applies to any requests to start the profiler–regardless of
/// <code>lifecycle</code>– until the app resigns its active status. It is then reevaluated on subsequent
/// foreground events. The duration of time that a sample decision prevails between
/// launch/foreground and background is referred to as a profile session.
/// note:
/// Backgrounding and foregrounding the app starts a new user session and sampling is
/// re-evaluated. If there is no active trace when the app is backgrounded, profiling stops
/// before the app backgrounds. If there is an active trace and profiling is in-flight when the
/// app is foregrounded again, the same profiling session should continue until the last root
/// span in that trace finishes — this means that the re-evaluated sample rate does not actually
/// take effect until the profiler is started again.
/// note:
/// Profiling is automatically disabled if a thread sanitizer is attached.
@property (nonatomic) float sessionSampleRate;
/// Start the profiler as early as possible during the app lifecycle to capture more activity
/// during your app’s launch.
/// warning:
/// Continuous profiling is an experimental feature and may still contain bugs.
/// note:
/// <code>sessionSampleRate</code> is evaluated on the previous launch and only takes effect when
/// app start profiling activates on the next launch.
/// note:
/// If <code>lifecycle</code> is <code>manual</code>, profiling is started automatically on startup, but you
/// must manually call <code>SentrySDK.stopProfiler()</code> whenever you app startup to be complete. If
/// <code>lifecycle</code> is <code>trace</code>, profiling is started automatically on startup, and will
/// automatically be stopped when the root span that is associated with app startup ends.
/// note:
/// Profiling is automatically disabled if a thread sanitizer is attached.
@property (nonatomic) BOOL profileAppStarts;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

/// Different modes for starting and stopping the profiler.
typedef SWIFT_ENUM(NSInteger, SentryProfileLifecycle, open) {
/// Profiling is controlled manually, and is independent of transactions & spans. Developers
/// must use<code>SentrySDK.startProfiler()</code> and <code>SentrySDK.stopProfiler()</code> to manage the profile
/// session. If the session is sampled, <code>SentrySDK.startProfiler()</code> will always start
/// profiling.
/// warning:
/// Continuous profiling is an experimental feature and may still contain bugs.
/// note:
/// Profiling is automatically disabled if a thread sanitizer is attached.
  SentryProfileLifecycleManual = 0,
/// Profiling is automatically started when there is at least 1 active root span, and
/// automatically stopped when there are 0 root spans.
/// warning:
/// Continuous profiling is an experimental feature and may still contain bugs.
/// note:
/// This mode only works if tracing is enabled.
/// note:
/// Profiling respects both <code>SentryProfileOptions.profileSessionSampleRate</code> and
/// the existing sampling configuration for tracing
/// (<code>SentryOptions.tracesSampleRate</code>/<code>SentryOptions.tracesSampler</code>). Sampling will be
/// re-evaluated on a per root span basis.
/// note:
/// If there are multiple overlapping root spans, where some are sampled and some or
/// not, profiling will continue until the end of the last sampled root span. Profiling data
/// will not be linked with spans that are not sampled.
/// note:
/// When the last root span finishes, the profiler will continue running until the
/// end of the current timed interval. If a new root span starts before this interval
/// completes, the profiler will instead continue running until the next root span stops, at
/// which time it will attempt to stop again in the same way.
/// note:
/// Profiling is automatically disabled if a thread sanitizer is attached.
  SentryProfileLifecycleTrace = 1,
};


SWIFT_CLASS("_TtC6Sentry22SentryRRWebCustomEvent")
@interface SentryRRWebCustomEvent : SentryRRWebEvent
@property (nonatomic, readonly, copy) NSString * _Nonnull tag;
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp tag:(NSString * _Nonnull)tag payload:(NSDictionary<NSString *, id> * _Nonnull)payload OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithType:(enum SentryRRWebEventType)type timestamp:(NSDate * _Nonnull)timestamp data:(NSDictionary<NSString *, id> * _Nullable)data SWIFT_UNAVAILABLE;
@end


SWIFT_CLASS("_TtC6Sentry26SentryRRWebBreadcrumbEvent")
@interface SentryRRWebBreadcrumbEvent : SentryRRWebCustomEvent
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp category:(NSString * _Nonnull)category message:(NSString * _Nullable)message level:(enum SentryLevel)level data:(NSDictionary<NSString *, id> * _Nullable)data OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp tag:(NSString * _Nonnull)tag payload:(NSDictionary<NSString *, id> * _Nonnull)payload SWIFT_UNAVAILABLE;
@end




typedef SWIFT_ENUM(NSInteger, SentryRRWebEventType, closed) {
  SentryRRWebEventTypeNone = 0,
  SentryRRWebEventTypeTouch = 3,
  SentryRRWebEventTypeMeta = 4,
  SentryRRWebEventTypeCustom = 5,
};


SWIFT_CLASS("_TtC6Sentry20SentryRRWebMetaEvent")
@interface SentryRRWebMetaEvent : SentryRRWebEvent
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp height:(NSInteger)height width:(NSInteger)width OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithType:(enum SentryRRWebEventType)type timestamp:(NSDate * _Nonnull)timestamp data:(NSDictionary<NSString *, id> * _Nullable)data SWIFT_UNAVAILABLE;
@end

@class SentryReplayOptions;

SWIFT_CLASS("_TtC6Sentry23SentryRRWebOptionsEvent")
@interface SentryRRWebOptionsEvent : SentryRRWebCustomEvent
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp customOptions:(NSDictionary<NSString *, id> * _Nonnull)customOptions OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp options:(SentryReplayOptions * _Nonnull)options OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp tag:(NSString * _Nonnull)tag payload:(NSDictionary<NSString *, id> * _Nonnull)payload SWIFT_UNAVAILABLE;
@end


SWIFT_CLASS("_TtC6Sentry20SentryRRWebSpanEvent")
@interface SentryRRWebSpanEvent : SentryRRWebCustomEvent
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp endTimestamp:(NSDate * _Nonnull)endTimestamp operation:(NSString * _Nonnull)operation description:(NSString * _Nonnull)description data:(NSDictionary<NSString *, id> * _Nonnull)data OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp tag:(NSString * _Nonnull)tag payload:(NSDictionary<NSString *, id> * _Nonnull)payload SWIFT_UNAVAILABLE;
@end


SWIFT_CLASS("_TtC6Sentry21SentryRRWebVideoEvent")
@interface SentryRRWebVideoEvent : SentryRRWebCustomEvent
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp segmentId:(NSInteger)segmentId size:(NSInteger)size duration:(NSTimeInterval)duration encoding:(NSString * _Nonnull)encoding container:(NSString * _Nonnull)container height:(NSInteger)height width:(NSInteger)width frameCount:(NSInteger)frameCount frameRateType:(NSString * _Nonnull)frameRateType frameRate:(NSInteger)frameRate left:(NSInteger)left top:(NSInteger)top OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithTimestamp:(NSDate * _Nonnull)timestamp tag:(NSString * _Nonnull)tag payload:(NSDictionary<NSString *, id> * _Nonnull)payload SWIFT_UNAVAILABLE;
@end


SWIFT_PROTOCOL("_TtP6Sentry19SentryRedactOptions_")
@protocol SentryRedactOptions
@property (nonatomic, readonly) BOOL maskAllText;
@property (nonatomic, readonly) BOOL maskAllImages;
@property (nonatomic, readonly, copy) NSArray<Class> * _Nonnull maskedViewClasses;
@property (nonatomic, readonly, copy) NSArray<Class> * _Nonnull unmaskedViewClasses;
@end


SWIFT_CLASS("_TtC6Sentry26SentryRedactDefaultOptions")
@interface SentryRedactDefaultOptions : NSObject <SentryRedactOptions>
@property (nonatomic) BOOL maskAllText;
@property (nonatomic) BOOL maskAllImages;
@property (nonatomic, copy) NSArray<Class> * _Nonnull maskedViewClasses;
@property (nonatomic, copy) NSArray<Class> * _Nonnull unmaskedViewClasses;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end



SWIFT_CLASS("_TtC6Sentry22SentryRedactViewHelper")
@interface SentryRedactViewHelper : NSObject
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
+ (void)maskView:(UIView * _Nonnull)view;
+ (BOOL)shouldMaskView:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
+ (BOOL)shouldUnmask:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
+ (void)unmaskView:(UIView * _Nonnull)view;
+ (BOOL)shouldClipOut:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
+ (void)clipOutView:(UIView * _Nonnull)view;
+ (BOOL)shouldRedactSwiftUI:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
+ (void)maskSwiftUI:(UIView * _Nonnull)view;
@end

@class SentryBreadcrumb;

SWIFT_PROTOCOL("_TtP6Sentry31SentryReplayBreadcrumbConverter_")
@protocol SentryReplayBreadcrumbConverter <NSObject>
- (id <SentryRRWebEvent> _Nullable)convertFrom:(SentryBreadcrumb * _Nonnull)breadcrumb SWIFT_WARN_UNUSED_RESULT;
@end

enum SentryReplayType : NSInteger;

SWIFT_CLASS("_TtC6Sentry17SentryReplayEvent")
@interface SentryReplayEvent : SentryEvent
@property (nonatomic, readonly, copy) NSDate * _Nonnull replayStartTimestamp;
@property (nonatomic, readonly) enum SentryReplayType replayType;
/// Number of the segment in the replay.
/// This is an incremental number
@property (nonatomic, readonly) NSInteger segmentId;
/// This will be used to store the name of the screens
/// that appear during the duration of the replay segment.
@property (nonatomic, copy) NSArray<NSString *> * _Nullable urls;
- (nonnull instancetype)initWithEventId:(SentryId * _Nonnull)eventId replayStartTimestamp:(NSDate * _Nonnull)replayStartTimestamp replayType:(enum SentryReplayType)replayType segmentId:(NSInteger)segmentId OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init;
- (NSDictionary<NSString *, id> * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT;
@end

enum SentryReplayQuality : NSInteger;

SWIFT_CLASS("_TtC6Sentry19SentryReplayOptions")
@interface SentryReplayOptions : NSObject <SentryRedactOptions>
/// Indicates the percentage in which the replay for the session will be created.
/// note:
/// The value needs to be <code>>= 0.0</code> and <code><= 1.0</code>. When setting a value out of range the SDK sets it
/// to the default.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.sessionSegmentDuration</code> for the default duration of the replay.
/// <ul>
///   <li>
///     Specifying @c 0 means never, @c 1.0 means always.
///   </li>
/// </ul>
@property (nonatomic) float sessionSampleRate;
/// Indicates the percentage in which a 30 seconds replay will be send with error events.
/// note:
/// The value needs to be >= 0.0 and <= 1.0. When setting a value out of range the SDK sets it
/// to the default.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.errorReplayDuration</code> for the default duration of the replay.
/// <ul>
///   <li>
///     Specifying 0 means never, 1.0 means always.
///   </li>
/// </ul>
@property (nonatomic) float onErrorSampleRate;
/// Indicates whether session replay should redact all text in the app
/// by drawing a black rectangle over it.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.maskAllText</code> for the default value.
@property (nonatomic) BOOL maskAllText;
/// Indicates whether session replay should redact all non-bundled image
/// in the app by drawing a black rectangle over it.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.maskAllImages</code> for the default value.
@property (nonatomic) BOOL maskAllImages;
/// Indicates the quality of the replay.
/// The higher the quality, the higher the CPU and bandwidth usage.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.quality</code> for the default value.
@property (nonatomic) enum SentryReplayQuality quality;
/// A list of custom UIView subclasses that need
/// to be masked during session replay.
/// By default Sentry already mask text and image elements from UIKit
/// Every child of a view that is redacted will also be redacted.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.maskedViewClasses</code> for the default value.
@property (nonatomic, copy) NSArray<Class> * _Nonnull maskedViewClasses;
/// A list of custom UIView subclasses to be ignored
/// during masking step of the session replay.
/// The views of given classes will not be redacted but their children may be.
/// This property has precedence over <code>redactViewTypes</code>.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.unmaskedViewClasses</code> for the default value.
@property (nonatomic, copy) NSArray<Class> * _Nonnull unmaskedViewClasses;
/// Alias for <code>enableViewRendererV2</code>.
/// This flag is deprecated and will be removed in a future version.
/// Please use <code>enableViewRendererV2</code> instead.
@property (nonatomic) BOOL enableExperimentalViewRenderer SWIFT_DEPRECATED_MSG("", "enableViewRendererV2");
/// Enables the up to 5x faster new view renderer used by the Session Replay integration.
/// Enabling this flag will reduce the amount of time it takes to render each frame of the session replay on the main thread, therefore reducing
/// interruptions and visual lag. <a href="https://github.com/getsentry/sentry-cocoa/pull/4940">Our benchmarks</a> have shown a significant improvement of
/// <em>up to 4-5x faster rendering</em> (reducing <code>~160ms</code> to <code>~36ms</code> per frame) on older devices.
/// experiment:
/// In case you are noticing issues with the new view renderer, please report the issue on <a href="https://github.com/getsentry/sentry-cocoa">GitHub</a>.
/// Eventually, we will remove this feature flag and use the new view renderer by default.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.enableViewRendererV2</code> for the default value.
@property (nonatomic) BOOL enableViewRendererV2;
/// Enables up to 5x faster but incommpelte view rendering used by the Session Replay integration.
/// Enabling this flag will reduce the amount of time it takes to render each frame of the session replay on the main thread, therefore reducing
/// interruptions and visual lag. <a href="https://github.com/getsentry/sentry-cocoa/pull/4940">Our benchmarks</a> have shown a significant improvement of
/// up to <em>5x faster render times</em> (reducing <code>~160ms</code> to <code>~30ms</code> per frame).
/// This flag controls the way the view hierarchy is drawn into a graphics context for the session replay. By default, the view hierarchy is drawn using
/// the <code>UIView.drawHierarchy(in:afterScreenUpdates:)</code> method, which is the most complete way to render the view hierarchy. However,
/// this method can be slow, especially when rendering complex views, therefore enabling this flag will switch to render the underlying <code>CALayer</code> instead.
/// note:
/// This flag can only be used together with <code>enableViewRendererV2</code> with up to 20% faster render times.
/// warning:
/// Rendering the view hiearchy using the <code>CALayer.render(in:)</code> method can lead to rendering issues, especially when using custom views.
/// For complete rendering, it is recommended to set this option to <code>false</code>. In case you prefer performance over completeness, you can
/// set this option to <code>true</code>.
/// experiment:
/// This is an experimental feature and is therefore disabled by default. In case you are noticing issues with the experimental
/// view renderer, please report the issue on <a href="https://github.com/getsentry/sentry-cocoa">GitHub</a>. Eventually, we will
/// mark this feature as stable and remove the experimental flag, but will keep it disabled by default.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.enableFastViewRendering</code> for the default value.
@property (nonatomic) BOOL enableFastViewRendering;
/// Defines the quality of the session replay.
/// Higher bit rates better quality, but also bigger files to transfer.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.quality</code> for the default value.
@property (nonatomic, readonly) NSInteger replayBitRate;
/// The scale related to the window size at which the replay will be created
/// note:
/// The scale is used to reduce the size of the replay.
@property (nonatomic, readonly) float sizeScale;
/// Number of frames per second of the replay.
/// The more the havier the process is.
/// The minimum is 1, if set to zero this will change to 1.
/// note:
/// See <code>SentryReplayOptions.DefaultValues.frameRate</code> for the default value.
@property (nonatomic) NSUInteger frameRate;
/// The maximum duration of replays for error events.
@property (nonatomic) NSTimeInterval errorReplayDuration;
/// The maximum duration of the segment of a session replay.
@property (nonatomic) NSTimeInterval sessionSegmentDuration;
/// The maximum duration of a replay session.
/// note:
/// See  <code>SentryReplayOptions.DefaultValues.maximumDuration</code> for the default value.
@property (nonatomic) NSTimeInterval maximumDuration;
/// Used by hybrid SDKs to be able to configure SDK info for Session Replay
/// note:
/// See <code>SentryReplayOptions.DefaultValues.sdkInfo</code> for the default value.
@property (nonatomic, copy) NSDictionary<NSString *, id> * _Nullable sdkInfo;
/// Initialize session replay options disabled
/// note:
/// This initializer is added for Objective-C compatibility, as constructors with default values
/// are not supported in Objective-C.
/// note:
/// See <code>SentryReplayOptions.DefaultValues</code> for the default values of each parameter.
- (nonnull instancetype)init;
/// Initializes a new instance of <code>SentryReplayOptions</code> using a dictionary.
/// warning:
/// This initializer is primarily used by Hybrid SDKs and is not intended for public use.
/// \param dictionary A dictionary containing the configuration options for the session replay.
///
- (nonnull instancetype)initWithDictionary:(NSDictionary<NSString *, id> * _Nonnull)dictionary;
/// Initializes a new instance of <code>SentryReplayOptions</code> with the specified parameters.
/// note:
/// See <code>SentryReplayOptions.DefaultValues</code> for the default values of each parameter.
/// \param sessionSampleRate Sample rate used to determine the percentage of replays of sessions that will be uploaded.
///
/// \param onErrorSampleRate Sample rate used to determine the percentage of replays of error events that will be uploaded.
///
/// \param maskAllText Flag to redact all text in the app by drawing a rectangle over it.
///
/// \param maskAllImages Flag to redact all images in the app by drawing a rectangle over it.
///
/// \param enableViewRendererV2 Enables the up to 5x faster view renderer.
///
/// \param enableFastViewRendering Enables faster but incomplete view rendering. See <code>SentryReplayOptions.enableFastViewRendering</code> for more information.
///
- (nonnull instancetype)initWithSessionSampleRate:(float)sessionSampleRate onErrorSampleRate:(float)onErrorSampleRate maskAllText:(BOOL)maskAllText maskAllImages:(BOOL)maskAllImages enableViewRendererV2:(BOOL)enableViewRendererV2 enableFastViewRendering:(BOOL)enableFastViewRendering;
@end

/// Enum to define the quality of the session replay.
typedef SWIFT_ENUM(NSInteger, SentryReplayQuality, open) {
/// Video Scale: 80%
/// Bit Rate: 20.000
  SentryReplayQualityLow = 0,
/// Video Scale: 100%
/// Bit Rate: 40.000
  SentryReplayQualityMedium = 1,
/// Video Scale: 100%
/// Bit Rate: 60.000
  SentryReplayQualityHigh = 2,
};


SWIFT_CLASS("_TtC6Sentry21SentryReplayRecording")
@interface SentryReplayRecording : NSObject
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull SentryReplayEncoding;)
+ (NSString * _Nonnull)SentryReplayEncoding SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull SentryReplayContainer;)
+ (NSString * _Nonnull)SentryReplayContainer SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull SentryReplayFrameRateType;)
+ (NSString * _Nonnull)SentryReplayFrameRateType SWIFT_WARN_UNUSED_RESULT;
@property (nonatomic, readonly) NSInteger segmentId;
@property (nonatomic, readonly, copy) NSArray<id <SentryRRWebEvent>> * _Nonnull events;
@property (nonatomic, readonly) NSInteger height;
@property (nonatomic, readonly) NSInteger width;
- (nonnull instancetype)initWithSegmentId:(NSInteger)segmentId video:(SentryVideoInfo * _Nonnull)video extraEvents:(NSArray<id <SentryRRWebEvent>> * _Nonnull)extraEvents;
- (nonnull instancetype)initWithSegmentId:(NSInteger)segmentId size:(NSInteger)size start:(NSDate * _Nonnull)start duration:(NSTimeInterval)duration frameCount:(NSInteger)frameCount frameRate:(NSInteger)frameRate height:(NSInteger)height width:(NSInteger)width extraEvents:(NSArray<id <SentryRRWebEvent>> * _Nullable)extraEvents OBJC_DESIGNATED_INITIALIZER;
- (NSDictionary<NSString *, id> * _Nonnull)headerForReplayRecording SWIFT_WARN_UNUSED_RESULT;
- (NSArray<NSDictionary<NSString *, id> *> * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

typedef SWIFT_ENUM(NSInteger, SentryReplayType, closed) {
  SentryReplayTypeSession = 0,
  SentryReplayTypeBuffer = 1,
};




SWIFT_CLASS("_TtC6Sentry34SentrySRDefaultBreadcrumbConverter")
@interface SentrySRDefaultBreadcrumbConverter : NSObject <SentryReplayBreadcrumbConverter>
/// This function will convert the SDK breadcrumbs to session replay breadcrumbs in a format that the front-end understands.
/// Any deviation in the information will cause the breadcrumb or the information itself to be discarded
/// in order to avoid unknown behavior in the front-end.
- (id <SentryRRWebEvent> _Nullable)convertFrom:(SentryBreadcrumb * _Nonnull)breadcrumb SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@class SentrySession;

SWIFT_PROTOCOL("_TtP6Sentry21SentrySessionListener_")
@protocol SentrySessionListener <NSObject>
- (void)sentrySessionEnded:(SentrySession * _Nonnull)session;
- (void)sentrySessionStarted:(SentrySession * _Nonnull)session;
@end

@protocol SentryViewScreenshotProvider;
@class NSURL;
@class SentryTouchTracker;
@protocol SentrySessionReplayDelegate;
@class SentryDisplayLinkWrapper;

SWIFT_CLASS("_TtC6Sentry19SentrySessionReplay")
@interface SentrySessionReplay : NSObject
@property (nonatomic, readonly) BOOL isFullSession;
@property (nonatomic, readonly, strong) SentryId * _Nullable sessionReplayId;
@property (nonatomic, readonly) BOOL isSessionPaused;
@property (nonatomic, copy) NSDictionary<NSString *, id> * _Nullable replayTags;
@property (nonatomic, readonly) BOOL isRunning;
@property (nonatomic, strong) id <SentryViewScreenshotProvider> _Nonnull screenshotProvider;
@property (nonatomic, strong) id <SentryReplayBreadcrumbConverter> _Nonnull breadcrumbConverter;
- (nonnull instancetype)initWithReplayOptions:(SentryReplayOptions * _Nonnull)replayOptions replayFolderPath:(NSURL * _Nonnull)replayFolderPath screenshotProvider:(id <SentryViewScreenshotProvider> _Nonnull)screenshotProvider replayMaker:(id <SentryReplayVideoMaker> _Nonnull)replayMaker breadcrumbConverter:(id <SentryReplayBreadcrumbConverter> _Nonnull)breadcrumbConverter touchTracker:(SentryTouchTracker * _Nullable)touchTracker dateProvider:(id <SentryCurrentDateProvider> _Nonnull)dateProvider delegate:(id <SentrySessionReplayDelegate> _Nonnull)delegate displayLinkWrapper:(SentryDisplayLinkWrapper * _Nonnull)displayLinkWrapper OBJC_DESIGNATED_INITIALIZER;
- (void)startWithRootView:(UIView * _Nonnull)rootView fullSession:(BOOL)fullSession;
- (void)pauseSessionMode;
- (void)pause;
- (void)resume;
- (void)captureReplayForEvent:(SentryEvent * _Nonnull)event;
- (BOOL)captureReplay;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


SWIFT_PROTOCOL("_TtP6Sentry27SentrySessionReplayDelegate_")
@protocol SentrySessionReplayDelegate <NSObject>
- (BOOL)sessionReplayShouldCaptureReplayForError SWIFT_WARN_UNUSED_RESULT;
- (void)sessionReplayNewSegmentWithReplayEvent:(SentryReplayEvent * _Nonnull)replayEvent replayRecording:(SentryReplayRecording * _Nonnull)replayRecording videoUrl:(NSURL * _Nonnull)videoUrl;
- (void)sessionReplayStartedWithReplayId:(SentryId * _Nonnull)replayId;
- (NSArray<SentryBreadcrumb *> * _Nonnull)breadcrumbsForSessionReplay SWIFT_WARN_UNUSED_RESULT;
- (NSString * _Nullable)currentScreenNameForSessionReplay SWIFT_WARN_UNUSED_RESULT;
@end



SWIFT_CLASS("_TtC6Sentry29SentrySwizzleClassNameExclude")
@interface SentrySwizzleClassNameExclude : NSObject
+ (BOOL)shouldExcludeClassWithClassName:(NSString * _Nonnull)className swizzleClassNameExcludes:(NSSet<NSString *> * _Nonnull)swizzleClassNameExcludes SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


@class UIEvent;

SWIFT_CLASS("_TtC6Sentry18SentryTouchTracker")
@interface SentryTouchTracker : NSObject
- (nonnull instancetype)initWithDateProvider:(id <SentryCurrentDateProvider> _Nonnull)dateProvider scale:(float)scale dispatchQueue:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueue OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithDateProvider:(id <SentryCurrentDateProvider> _Nonnull)dateProvider scale:(float)scale;
- (void)trackTouchFromEvent:(UIEvent * _Nonnull)event;
- (void)flushFinishedEvents;
- (NSArray<SentryRRWebEvent *> * _Nonnull)replayEventsFrom:(NSDate * _Nonnull)from until:(NSDate * _Nonnull)until SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

typedef SWIFT_ENUM(NSInteger, SentryTransactionNameSource, open) {
  kSentryTransactionNameSourceCustom SWIFT_COMPILE_NAME("custom") = 0,
  kSentryTransactionNameSourceUrl SWIFT_COMPILE_NAME("url") = 1,
  kSentryTransactionNameSourceRoute SWIFT_COMPILE_NAME("route") = 2,
  kSentryTransactionNameSourceView SWIFT_COMPILE_NAME("view") = 3,
  kSentryTransactionNameSourceComponent SWIFT_COMPILE_NAME("component") = 4,
  kSentryTransactionNameSourceTask SWIFT_COMPILE_NAME("sourceTask") = 5,
};


/// Use this protocol to customize the name used in the automatic
/// UIViewController performance tracker, view hierarchy, and breadcrumbs.
SWIFT_PROTOCOL("_TtP6Sentry32SentryUIViewControllerDescriptor_")
@protocol SentryUIViewControllerDescriptor <NSObject>
/// The custom name of the UIViewController
/// that the Sentry SDK uses for transaction names, breadcrumbs, and
/// view hierarchy.
@property (nonatomic, readonly, copy) NSString * _Nonnull sentryName;
@end

@class SentryUserFeedbackWidgetConfiguration;
@class UIButton;
@class SentryUserFeedbackFormConfiguration;
@class SentryUserFeedbackThemeConfiguration;

/// The settings to use for how the user feedback form is presented, what data is required and how
/// it’s submitted, and some auxiliary hooks to customize the workflow.
SWIFT_CLASS("_TtC6Sentry31SentryUserFeedbackConfiguration") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackConfiguration : NSObject
/// Whether or not to show animations, like for presenting and dismissing the form.
/// note:
/// Default: <code>true</code>.
@property (nonatomic) BOOL animations;
/// Configuration settings specific to the managed widget that displays the UI form.
/// note:
/// Default: <code>nil</code> to use the default widget settings.
@property (nonatomic, copy) void (^ _Nullable configureWidget)(SentryUserFeedbackWidgetConfiguration * _Nonnull);
@property (nonatomic, strong) SentryUserFeedbackWidgetConfiguration * _Nonnull widgetConfig;
/// Use a shake gesture to display the form.
/// note:
/// Default: <code>false</code>
/// note:
/// Setting this to true does not disable the widget. In order to do so, you must set <code>SentryUserFeedbackWidgetConfiguration.autoInject</code> to <code>false</code> using the <code>SentryUserFeedbackConfiguration.configureWidget</code> config builder.
@property (nonatomic) BOOL useShakeGesture;
/// Any time a user takes a screenshot, bring up the form with the screenshot attached.
/// note:
/// Default: <code>false</code>
/// note:
/// Setting this to true does not disable the widget. In order to do so, you must set <code>SentryUserFeedbackWidgetConfiguration.autoInject</code> to <code>false</code> using the <code>SentryUserFeedbackConfiguration.configureWidget</code> config builder.
@property (nonatomic) BOOL showFormForScreenshots;
/// Install a hook for the specified button to show the form when it is pressed.
/// note:
/// If this is set, <code>configureWidget</code> is ignored.
/// note:
/// Default: <code>nil</code>
@property (nonatomic, strong) UIButton * _Nullable customButton;
/// Configuration settings specific to the managed UI form to gather user input.
/// note:
/// Default: <code>nil</code>
@property (nonatomic, copy) void (^ _Nullable configureForm)(SentryUserFeedbackFormConfiguration * _Nonnull);
@property (nonatomic, strong) SentryUserFeedbackFormConfiguration * _Nonnull formConfig;
/// Tags to set on the feedback event. This is a dictionary where keys are strings
/// and values can be different data types such as <code>NSNumber</code>, <code>NSString</code>, etc.
/// note:
/// Default: <code>nil</code>
@property (nonatomic, copy) NSDictionary<NSString *, id> * _Nullable tags;
/// Called when the managed feedback form is opened.
/// note:
/// Default: <code>nil</code>
@property (nonatomic, copy) void (^ _Nullable onFormOpen)(void);
/// Called when the managed feedback form is closed.
/// note:
/// Default: <code>nil</code>
@property (nonatomic, copy) void (^ _Nullable onFormClose)(void);
/// Called when feedback is successfully submitted via the managed feedback form, indicating that the
/// user correctly filled out the form and confirmed submission. The data dictionary contains the feedback details.
/// note:
/// Default: <code>nil</code>
/// note:
/// This is unrelated to <code>SentrySDK.captureUserFeedback</code> and is not called when using
/// that function.
@property (nonatomic, copy) void (^ _Nullable onSubmitSuccess)(NSDictionary<NSString *, id> * _Nonnull);
/// Called when there is an error submitting feedback via the managed feedback form, like missing
/// required inputs. The error object contains details of the error.
/// note:
/// Default: <code>nil</code>
/// note:
/// This is unrelated to <code>SentrySDK.captureUserFeedback</code> and is not called when using
/// that function.
@property (nonatomic, copy) void (^ _Nullable onSubmitError)(NSError * _Nonnull);
/// Builder for default/light theme overrides.
/// note:
/// On iOS versions predating dark mode (≤12) this is the only theme override used. Apps
/// running on later versions that include dark mode should also consider <code>configureDarkTheme</code>.
/// note:
/// Default: <code>nil</code>
@property (nonatomic, copy) void (^ _Nullable configureTheme)(SentryUserFeedbackThemeConfiguration * _Nonnull);
@property (nonatomic, strong) SentryUserFeedbackThemeConfiguration * _Nonnull theme;
/// Builder for dark mode theme overrides. If your app does not deploy a different theme for dark
/// mode, but you still want to override some theme settings, assign the same builder to this
/// property as you do for <code>configureTheme</code>.
/// note:
/// Default: <code>nil</code>
/// note:
/// Only applies to iOS ≤12.
@property (nonatomic, copy) void (^ _Nullable configureDarkTheme)(SentryUserFeedbackThemeConfiguration * _Nonnull);
@property (nonatomic, strong) SentryUserFeedbackThemeConfiguration * _Nonnull darkTheme;
@property (nonatomic) CGFloat textEffectiveHeightCenter;
/// The ratio of the configured font size to the system default font size, to know how large to scale things like the icon and lozenge shape.
@property (nonatomic) CGFloat scaleFactor;
- (CGFloat)calculateScaleFactor SWIFT_WARN_UNUSED_RESULT;
/// Too much padding as the font size grows larger makes the button look weird with lots of negative space. Keeping the padding constant looks weird if the text is too small. So, scale it down below system default font sizes, but keep it fixed with larger font sizes.
@property (nonatomic) CGFloat paddingScaleFactor;
- (CGFloat)calculatePaddingScaleFactor SWIFT_WARN_UNUSED_RESULT;
- (void)recalculateScaleFactors;
@property (nonatomic, readonly) CGFloat padding;
@property (nonatomic, readonly) CGFloat spacing;
@property (nonatomic, readonly) CGFloat margin;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


/// Settings to control the behavior and appearance of the UI form.
SWIFT_CLASS("_TtC6Sentry35SentryUserFeedbackFormConfiguration") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormConfiguration : NSObject
/// Sets the email and name field text content to the values contained in the current scope’s
/// <code>SentryUser</code> instance, if any.
/// seealso:
/// <code>- [SentrySDK setUser:]</code>
/// note:
/// Default: <code>true</code>
@property (nonatomic) BOOL useSentryUser;
/// Displays the Sentry logo inside of the form.
/// note:
/// Default: <code>true</code>
@property (nonatomic) BOOL showBranding;
/// The title at the top of the feedback form.
/// note:
/// Default: <code>"Report a Bug"</code>
@property (nonatomic, copy) NSString * _Nonnull formTitle;
/// The label for the feedback description input field.
/// note:
/// Default: <code>"Description"</code>
@property (nonatomic, copy) NSString * _Nonnull messageLabel;
@property (nonatomic, copy) NSString * _Nonnull messageLabelContents;
/// The placeholder for the feedback description input field.
/// note:
/// Default: <code>"What's the bug? What did you expect?"</code>
@property (nonatomic, copy) NSString * _Nonnull messagePlaceholder;
@property (nonatomic, copy) NSString * _Nonnull messageTextViewAccessibilityLabel;
/// The label shown next to an input field that is required.
/// note:
/// Default: <code>"(Required)"</code>
@property (nonatomic, copy) NSString * _Nonnull isRequiredLabel;
/// The label of the button to remove the screenshot from the form.
/// note:
/// Default: <code>"Remove screenshot"</code>
/// note:
/// ignored if <code>SentryUserFeedbackConfiguration.showFormForScreenshots</code> is <code>false</code>.
@property (nonatomic, copy) NSString * _Nonnull removeScreenshotButtonLabel;
@property (nonatomic, copy) NSString * _Nonnull removeScreenshotButtonAccessibilityLabel;
/// Requires the name field on the feedback form to be filled in.
/// note:
/// Default: <code>false</code>
@property (nonatomic) BOOL isNameRequired;
/// Displays the name field on the feedback form.
/// note:
/// Default: <code>true</code>
/// note:
/// ignored if <code>isNameRequired</code> is <code>true</code>.
@property (nonatomic) BOOL showName;
/// The label of the name input field.
/// note:
/// Default: <code>"Name"</code>
/// note:
/// ignored if <code>showName</code> is <code>false</code>.
@property (nonatomic, copy) NSString * _Nonnull nameLabel;
@property (nonatomic, copy) NSString * _Nonnull nameLabelContents;
/// The placeholder for the name input field.
/// note:
/// Default: <code>"Your Name"</code>
/// note:
/// ignored if <code>showName</code> is <code>false</code>.
@property (nonatomic, copy) NSString * _Nonnull namePlaceholder;
@property (nonatomic, copy) NSString * _Nonnull nameTextFieldAccessibilityLabel;
/// Requires the email field on the feedback form to be filled in.
/// note:
/// Default: <code>false</code>
@property (nonatomic) BOOL isEmailRequired;
/// Displays the email field on the feedback form.
/// note:
/// Default: <code>true</code>
/// note:
/// ignored if <code>isEmailRequired</code> is <code>true</code>.
@property (nonatomic) BOOL showEmail;
/// The label of the email input field.
/// note:
/// Default: <code>"Email"</code>
@property (nonatomic, copy) NSString * _Nonnull emailLabel;
@property (nonatomic, copy) NSString * _Nonnull emailLabelContents;
/// The placeholder for the email input field.
/// note:
/// Default: <code>"your.email@example.org"</code>
@property (nonatomic, copy) NSString * _Nonnull emailPlaceholder;
@property (nonatomic, copy) NSString * _Nonnull emailTextFieldAccessibilityLabel;
/// The label of the submit button used in the feedback form.
/// note:
/// Default: <code>"Send Bug Report"</code>
@property (nonatomic, copy) NSString * _Nonnull submitButtonLabel;
/// The accessibility label of the form’s “Submit” button.
/// note:
/// Default: <code>submitButtonLabel</code> value
@property (nonatomic, copy) NSString * _Nonnull submitButtonAccessibilityLabel;
/// The label of cancel buttons used in the feedback form.
/// note:
/// Default: <code>"Cancel"</code>
@property (nonatomic, copy) NSString * _Nonnull cancelButtonLabel;
/// The accessibility label of the form’s “Cancel” button.
/// note:
/// Default: <code>cancelButtonLabel</code> value
@property (nonatomic, copy) NSString * _Nonnull cancelButtonAccessibilityLabel;
- (NSString * _Nonnull)fullLabelTextWithLabelText:(NSString * _Nonnull)labelText required:(BOOL)required SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@class UITraitCollection;
@class NSBundle;

SWIFT_CLASS("_TtC6Sentry32SentryUserFeedbackFormController") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormController : UIViewController
- (void)traitCollectionDidChange:(UITraitCollection * _Nullable)previousTraitCollection;
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithNibName:(NSString * _Nullable)nibNameOrNil bundle:(NSBundle * _Nullable)nibBundleOrNil SWIFT_UNAVAILABLE;
@end

@class UITextView;

SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormController (SWIFT_EXTENSION(Sentry)) <UITextViewDelegate>
- (void)textViewDidChange:(UITextView * _Nonnull)textView;
@end

@class UITextField;

SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormController (SWIFT_EXTENSION(Sentry)) <UITextFieldDelegate>
- (BOOL)textFieldShouldReturn:(UITextField * _Nonnull)textField SWIFT_WARN_UNUSED_RESULT;
- (void)textFieldDidChangeSelection:(UITextField * _Nonnull)textField;
@end


@class NSNotification;

SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormController (SWIFT_EXTENSION(Sentry))
- (void)showedKeyboardWithNote:(NSNotification * _Nonnull)note;
- (void)hidKeyboard;
@end

@class NSDateFormatter;
@class UILabel;
@class UIImageView;
@class UIStackView;
@class UIScrollView;
@class NSLayoutConstraint;

SWIFT_CLASS("_TtC6Sentry31SentryUserFeedbackFormViewModel") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormViewModel : NSObject
@property (nonatomic, readonly, strong) SentryUserFeedbackConfiguration * _Nonnull config;
@property (nonatomic, readonly, unsafe_unretained) SentryUserFeedbackFormController * _Nonnull controller;
@property (nonatomic, readonly, strong) UIImage * _Nullable screenshot;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) NSDateFormatter * _Nonnull dateFormatter;)
+ (NSDateFormatter * _Nonnull)dateFormatter SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)initWithConfig:(SentryUserFeedbackConfiguration * _Nonnull)config controller:(SentryUserFeedbackFormController * _Nonnull)controller screenshot:(UIImage * _Nullable)screenshot OBJC_DESIGNATED_INITIALIZER;
@property (nonatomic, strong) UILabel * _Nonnull formTitleLabel;
@property (nonatomic, strong) UIView * _Nonnull sentryLogoView;
@property (nonatomic, strong) UILabel * _Nonnull fullNameLabel;
@property (nonatomic, strong) UITextField * _Nonnull fullNameTextField;
@property (nonatomic, strong) UILabel * _Nonnull emailLabel;
@property (nonatomic, strong) UITextField * _Nonnull emailTextField;
@property (nonatomic, strong) UILabel * _Nonnull messageLabel;
@property (nonatomic, strong) UILabel * _Nonnull messageTextViewPlaceholder;
@property (nonatomic, strong) UITextView * _Nonnull messageTextView;
@property (nonatomic, strong) UIImageView * _Nonnull screenshotImageView;
@property (nonatomic, strong) UIButton * _Nonnull removeScreenshotButton;
@property (nonatomic, strong) UIButton * _Nonnull submitButton;
@property (nonatomic, strong) UIButton * _Nonnull cancelButton;
@property (nonatomic, strong) UIStackView * _Nonnull removeScreenshotStack;
@property (nonatomic, strong) UIStackView * _Nonnull stack;
@property (nonatomic, strong) UIScrollView * _Nonnull scrollView;
@property (nonatomic, readonly) CGFloat formElementHeight;
@property (nonatomic, readonly) CGFloat logoWidth;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull messageTextViewHeightConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull logoViewWidthConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull fullNameTextFieldHeightConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull emailTextFieldHeightConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull removeScreenshotButtonHeightConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull submitButtonHeightConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull cancelButtonHeightConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull screenshotImageAspectRatioConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull messagePlaceholderLeadingConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull messagePlaceholderTrailingConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull messagePlaceholderTopConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nonnull messagePlaceholderBottomConstraint;
- (NSArray<NSLayoutConstraint *> * _Nonnull)allConstraintsWithView:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormViewModel (SWIFT_EXTENSION(Sentry))
- (void)removeScreenshotTapped;
- (void)submitFeedback;
- (void)cancel;
@end


SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackFormViewModel (SWIFT_EXTENSION(Sentry))
- (void)updateSubmitButtonAccessibilityHint;
- (void)themeElements;
- (void)setScrollViewBottomInset:(CGFloat)inset;
- (void)updateLayout;
- (SentryFeedback * _Nonnull)feedbackObject SWIFT_WARN_UNUSED_RESULT;
@end

@protocol SentryUserFeedbackIntegrationDriverDelegate;
@class SentryScreenshot;

/// An integration managing a workflow for end users to report feedback via Sentry.
/// note:
/// The default method to show the feedback form is via a floating widget placed in the bottom trailing corner of the screen. See the configuration classes for alternative options.
SWIFT_CLASS("_TtC6Sentry35SentryUserFeedbackIntegrationDriver") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackIntegrationDriver : NSObject
@property (nonatomic, readonly, strong) SentryUserFeedbackConfiguration * _Nonnull configuration;
@property (nonatomic, weak) id <SentryUserFeedbackIntegrationDriverDelegate> _Nullable delegate;
@property (nonatomic, readonly, strong) SentryScreenshot * _Nonnull screenshotProvider;
@property (nonatomic, weak) UIButton * _Nullable customButton;
- (nonnull instancetype)initWithConfiguration:(SentryUserFeedbackConfiguration * _Nonnull)configuration delegate:(id <SentryUserFeedbackIntegrationDriverDelegate> _Nonnull)delegate screenshotProvider:(SentryScreenshot * _Nonnull)screenshotProvider OBJC_DESIGNATED_INITIALIZER;
- (void)showWidget;
- (void)hideWidget;
- (void)showFormWithSender:(UIButton * _Nonnull)sender;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


SWIFT_AVAILABILITY(ios_app_extension,introduced=13.0)
@interface SentryUserFeedbackIntegrationDriver (SWIFT_EXTENSION(Sentry))
- (void)showForm;
@end

@class UIPresentationController;

SWIFT_AVAILABILITY(ios_app_extension,introduced=13.0)
@interface SentryUserFeedbackIntegrationDriver (SWIFT_EXTENSION(Sentry)) <UIAdaptivePresentationControllerDelegate>
- (void)presentationControllerDidDismiss:(UIPresentationController * _Nonnull)presentationController;
@end


SWIFT_AVAILABILITY(ios_app_extension,introduced=13.0)
@interface SentryUserFeedbackIntegrationDriver (SWIFT_EXTENSION(Sentry))
- (void)finishedWith:(SentryFeedback * _Nullable)feedback;
@end



SWIFT_PROTOCOL("_TtP6Sentry43SentryUserFeedbackIntegrationDriverDelegate_") SWIFT_AVAILABILITY(ios,introduced=13.0)
@protocol SentryUserFeedbackIntegrationDriverDelegate <NSObject>
- (void)captureWithFeedback:(SentryFeedback * _Nonnull)feedback;
@end

@class UIFont;
@class UIColor;
@class SentryFormElementOutlineStyle;

/// Settings for overriding theming components for the User Feedback Widget and Form.
SWIFT_CLASS("_TtC6Sentry36SentryUserFeedbackThemeConfiguration") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackThemeConfiguration : NSObject
/// The font family to use for form text elements.
/// note:
/// Defaults to the system default, if this property is <code>nil</code>.
@property (nonatomic, copy) NSString * _Nullable fontFamily;
/// Font for form input elements and the widget button label.
/// note:
/// Defaults to <code>UIFont.TextStyle.callout</code>.
@property (nonatomic, strong) UIFont * _Nonnull font;
/// Font for the main header title of the feedback form.
/// note:
/// Defaults to <code>UIFont.TextStyle.title1</code>.
@property (nonatomic, strong) UIFont * _Nonnull headerFont;
/// Font for titles of text fields and buttons in the form.
/// note:
/// Defaults to <code>UIFont.TextStyle.headline</code>.
@property (nonatomic, strong) UIFont * _Nonnull titleFont;
/// Return a scaled font for the given style, using the configured font family.
- (UIFont * _Nonnull)scaledFontWithStyle:(UIFontTextStyle _Nonnull)style SWIFT_WARN_UNUSED_RESULT;
/// Helps respond to dynamic font size changes when the app is in the background, and then comes back to the foreground.
- (void)updateDefaultFonts;
/// Foreground text color of the widget and form.
/// note:
/// Default light mode: <code>rgb(43, 34, 51)</code>; dark mode: <code>rgb(235, 230, 239)</code>
@property (nonatomic, strong) UIColor * _Nonnull foreground;
/// Background color of the widget and form.
/// note:
/// Default light mode: <code>rgb(255, 255, 255)</code>; dark mode: <code>rgb(41, 35, 47)</code>
@property (nonatomic, strong) UIColor * _Nonnull background;
/// Foreground color for the form submit button.
/// note:
/// Default: <code>rgb(255, 255, 255)</code> for both dark and light modes
@property (nonatomic, strong) UIColor * _Nonnull submitForeground;
/// Background color for the form submit button in light and dark modes.
/// note:
/// Default: <code>rgb(88, 74, 192)</code> for both light and dark modes
@property (nonatomic, strong) UIColor * _Nonnull submitBackground;
/// Foreground color for the cancel and screenshot buttons.
/// note:
/// Default: Same as <code>foreground</code> for both dark and light modes
@property (nonatomic, strong) UIColor * _Nonnull buttonForeground;
/// Background color for the form cancel and screenshot buttons in light and dark modes.
/// note:
/// Default: Transparent for both light and dark modes
@property (nonatomic, strong) UIColor * _Nonnull buttonBackground;
/// Color used for error-related components (such as text color when there’s an error submitting feedback).
/// note:
/// Default light mode: <code>rgb(223, 51, 56)</code>; dark mode: <code>rgb(245, 84, 89)</code>
@property (nonatomic, strong) UIColor * _Nonnull errorColor;
/// note:
/// We need to keep a reference to a default instance of this for comparison purposes later. We don’t use the default to give UITextFields a default style, instead, we use <code>UITextField.BorderStyle.roundedRect</code> if <code>SentryUserFeedbackThemeConfiguration.outlineStyle == defaultOutlineStyle</code>.
@property (nonatomic, readonly, strong) SentryFormElementOutlineStyle * _Nonnull defaultOutlineStyle;
/// Options for styling the outline of input elements and buttons in the feedback form.
@property (nonatomic, strong) SentryFormElementOutlineStyle * _Nonnull outlineStyle;
/// Background color to use for text inputs in the feedback form.
@property (nonatomic, strong) UIColor * _Nonnull inputBackground;
/// Background color to use for text inputs in the feedback form.
@property (nonatomic, strong) UIColor * _Nonnull inputForeground;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


SWIFT_CLASS("_TtCC6Sentry36SentryUserFeedbackThemeConfiguration29SentryFormElementOutlineStyle")
@interface SentryFormElementOutlineStyle : NSObject
- (nonnull instancetype)initWithColor:(UIColor * _Nonnull)color cornerRadius:(CGFloat)cornerRadius outlineWidth:(CGFloat)outlineWidth OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


SWIFT_CLASS("_TtC6Sentry47SentryUserFeedbackWidgetButtonMegaphoneIconView") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackWidgetButtonMegaphoneIconView : UIView
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE;
@end


SWIFT_CLASS("_TtC6Sentry34SentryUserFeedbackWidgetButtonView") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackWidgetButtonView : UIView
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
- (void)buttonPressed;
- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE;
@end


/// Settings for whether to show the widget and how it should appear.
SWIFT_CLASS("_TtC6Sentry37SentryUserFeedbackWidgetConfiguration") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface SentryUserFeedbackWidgetConfiguration : NSObject
/// Automatically inject the widget button into the application UI.
/// note:
/// Default: <code>true</code>
@property (nonatomic) BOOL autoInject;
@property (nonatomic, readonly, copy) NSString * _Nonnull defaultLabelText;
/// The label of the injected button that opens up the feedback form when clicked. If <code>nil</code>, no
/// text is displayed and only the icon image is shown.
/// note:
/// Default: <code>"Report a Bug"</code>
@property (nonatomic, copy) NSString * _Nullable labelText;
/// Whether or not to show our icon along with the text in the button.
/// note:
/// Default: <code>true</code>.
@property (nonatomic) BOOL showIcon;
/// The accessibility label of the injected button that opens up the feedback form when clicked.
/// note:
/// Default: <code>labelText</code> value
@property (nonatomic, copy) NSString * _Nullable widgetAccessibilityLabel;
/// The window level of the widget.
/// note:
/// Default: <code>UIWindow.Level.normal + 1</code>
@property (nonatomic) UIWindowLevel windowLevel;
/// The location for positioning the widget.
/// note:
/// Default: <code>[.bottom, .right]</code>
@property (nonatomic) NSDirectionalRectEdge location;
/// The distance to use from the widget button to the <code>safeAreaLayoutGuide</code> of the root view in the widget’s container window.
/// note:
/// Default: <code>UIOffset.zero</code>
@property (nonatomic) UIOffset layoutUIOffset;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


SWIFT_CLASS("_TtC6Sentry15SentryVideoInfo")
@interface SentryVideoInfo : NSObject
@property (nonatomic, readonly, copy) NSURL * _Nonnull path;
@property (nonatomic, readonly) NSInteger height;
@property (nonatomic, readonly) NSInteger width;
@property (nonatomic, readonly) NSTimeInterval duration;
@property (nonatomic, readonly) NSInteger frameCount;
@property (nonatomic, readonly) NSInteger frameRate;
@property (nonatomic, readonly, copy) NSDate * _Nonnull start;
@property (nonatomic, readonly, copy) NSDate * _Nonnull end;
@property (nonatomic, readonly) NSInteger fileSize;
@property (nonatomic, readonly, copy) NSArray<NSString *> * _Nonnull screens;
- (nonnull instancetype)initWithPath:(NSURL * _Nonnull)path height:(NSInteger)height width:(NSInteger)width duration:(NSTimeInterval)duration frameCount:(NSInteger)frameCount frameRate:(NSInteger)frameRate start:(NSDate * _Nonnull)start end:(NSDate * _Nonnull)end fileSize:(NSInteger)fileSize screens:(NSArray<NSString *> * _Nonnull)screens OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


SWIFT_PROTOCOL("_TtP6Sentry28SentryViewScreenshotProvider_")
@protocol SentryViewScreenshotProvider <NSObject>
- (void)imageWithView:(UIView * _Nonnull)view onComplete:(void (^ _Nonnull)(UIImage * _Nonnull))onComplete;
@end


SWIFT_CLASS("_TtC6Sentry22SentryViewPhotographer")
@interface SentryViewPhotographer : NSObject <SentryViewScreenshotProvider>
@property (nonatomic, strong) id <SentryViewRenderer> _Nonnull renderer;
/// Creates a view photographer used to convert a view hierarchy to an image.
/// note:
/// The option <code>enableMaskRendererV2</code> is an internal flag, which is not part of the public API.
/// Therefore, it is not part of the the <code>redactOptions</code> parameter, to not further expose it.
/// \param renderer Implementation of the view renderer.
///
/// \param redactOptions Options provided to redact sensitive information.
///
/// \param enableMaskRendererV2 Flag to enable experimental view renderer.
///
- (nonnull instancetype)initWithRenderer:(id <SentryViewRenderer> _Nonnull)renderer redactOptions:(id <SentryRedactOptions> _Nonnull)redactOptions enableMaskRendererV2:(BOOL)enableMaskRendererV2 OBJC_DESIGNATED_INITIALIZER;
- (void)imageWithView:(UIView * _Nonnull)view onComplete:(void (^ _Nonnull)(UIImage * _Nonnull))onComplete;
- (UIImage * _Nonnull)imageWithView:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
- (void)addIgnoreClasses:(NSArray<Class> * _Nonnull)classes;
- (void)addRedactClasses:(NSArray<Class> * _Nonnull)classes;
- (void)setIgnoreContainerClass:(Class _Nonnull)containerClass;
- (void)setRedactContainerClass:(Class _Nonnull)containerClass;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end



SWIFT_CLASS("_TtC6Sentry20SentryViewRendererV2")
@interface SentryViewRendererV2 : NSObject <SentryViewRenderer>
@property (nonatomic, readonly) BOOL enableFastViewRendering;
- (nonnull instancetype)initWithEnableFastViewRendering:(BOOL)enableFastViewRendering OBJC_DESIGNATED_INITIALIZER;
- (UIImage * _Nonnull)renderWithView:(UIView * _Nonnull)view SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end



SWIFT_CLASS("_TtC6Sentry15SwiftDescriptor")
@interface SwiftDescriptor : NSObject
+ (NSString * _Nonnull)getObjectClassName:(id _Nonnull)object SWIFT_WARN_UNUSED_RESULT;
+ (NSString * _Nonnull)getViewControllerClassName:(UIViewController * _Nonnull)object SWIFT_WARN_UNUSED_RESULT;
+ (NSString * _Nullable)getSwiftErrorDescription:(NSError * _Nonnull)error SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end






@class NSURLSessionTask;

SWIFT_CLASS("_TtC6Sentry20URLSessionTaskHelper")
@interface URLSessionTaskHelper : NSObject
+ (NSString * _Nullable)getGraphQLOperationNameFrom:(NSURLSessionTask * _Nullable)task SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@class NSURLQueryItem;

SWIFT_CLASS("_TtC6Sentry12UrlSanitized")
@interface UrlSanitized : NSObject
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull SENSITIVE_DATA_SUBSTITUTE;)
+ (NSString * _Nonnull)SENSITIVE_DATA_SUBSTITUTE SWIFT_WARN_UNUSED_RESULT;
@property (nonatomic, readonly, copy) NSString * _Nullable query;
@property (nonatomic, readonly, copy) NSArray<NSURLQueryItem *> * _Nullable queryItems;
@property (nonatomic, readonly, copy) NSString * _Nullable fragment;
- (nonnull instancetype)initWithURL:(NSURL * _Nonnull)url OBJC_DESIGNATED_INITIALIZER;
@property (nonatomic, readonly, copy) NSString * _Nullable sanitizedUrl;
- (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
