# ----------------------------------
# API surface for DatadogCore:
# ----------------------------------

public let DatadogNTPServers = ["0.datadog.pool.ntp.org","1.datadog.pool.ntp.org","2.datadog.pool.ntp.org","3.datadog.pool.ntp.org"]
public protocol ServerDateProvider
    func synchronize(update: @escaping (TimeInterval) -> Void)
public protocol DataEncryption
    func encrypt(data: Data) throws -> Data
    func decrypt(data: Data) throws -> Data
[?] extension InternalExtension where ExtendedType == Datadog
    public static var telemetry: _TelemetryProxy
    public static func set(customVersion: String)
public struct _TelemetryProxy
    public func debug(id: String, message: String)
    public func error(id: String, message: String, kind: String?, stack: String?)
[?] extension InternalExtension where ExtendedType == Datadog.Configuration
    public var additionalConfiguration: [String: Any]
public enum Datadog
    public struct Configuration
        public enum BatchSize
            case small
            case medium
            case large
        public enum UploadFrequency
            case frequent
            case average
            case rare
        public enum BatchProcessingLevel
            case low
            case medium
            case high
        public var clientToken: String
        public var env: String
        public var site: DatadogSite
        public var service: String?
        public var batchSize: BatchSize
        public var uploadFrequency: UploadFrequency
        public var proxyConfiguration: [AnyHashable: Any]?
        public var encryption: DataEncryption?
        public var serverDateProvider: ServerDateProvider
        public var bundle: Bundle
        public var batchProcessingLevel: BatchProcessingLevel
        public var backgroundTasksEnabled: Bool
        public init(clientToken: String,env: String,site: DatadogSite = .us1,service: String? = nil,bundle: Bundle = .main,batchSize: BatchSize = .medium,uploadFrequency: UploadFrequency = .average,proxyConfiguration: [AnyHashable: Any]? = nil,encryption: DataEncryption? = nil,serverDateProvider: ServerDateProvider? = nil,batchProcessingLevel: BatchProcessingLevel = .medium,backgroundTasksEnabled: Bool = false)
    public static var verbosityLevel: CoreLoggerLevel?
    public static func isInitialized(instanceName name: String = CoreRegistry.defaultInstanceName) -> Bool
    public static func sdkInstance(named name: String) -> DatadogCoreProtocol
    public static func setUserInfo(id: String? = nil,name: String? = nil,email: String? = nil,extraInfo: [AttributeKey: AttributeValue] = [:],in core: DatadogCoreProtocol = CoreRegistry.default)
    public static func addUserExtraInfo(_ extraInfo: [AttributeKey: AttributeValue?],in core: DatadogCoreProtocol = CoreRegistry.default)
    public static func set(trackingConsent: TrackingConsent, in core: DatadogCoreProtocol = CoreRegistry.default)
    public static func clearAllData(in core: DatadogCoreProtocol = CoreRegistry.default)
    public static func stopInstance(named instanceName: String = CoreRegistry.defaultInstanceName)
    public static func initialize(with configuration: Configuration,trackingConsent: TrackingConsent,instanceName: String = CoreRegistry.defaultInstanceName) -> DatadogCoreProtocol


# ----------------------------------
# API surface for DatadogLogs:
# ----------------------------------

public struct LogEvent: Encodable
    public enum Status: String, Encodable, CaseIterable, Equatable
        case debug
        case info
        case notice
        case warn
        case error
        case critical
        case emergency
    public struct Attributes
        public var userAttributes: [String: Encodable]
    public struct UserInfo
        public let id: String?
        public let name: String?
        public let email: String?
        public var extraInfo: [String: Encodable]
    public struct Error
        public struct BinaryImage: Codable
            public let arch: String?
            public let isSystem: Bool
            public let loadAddress: String?
            public let maxAddress: String?
            public let name: String
            public let uuid: String
        public var kind: String?
        public var message: String?
        public var stack: String?
        public var sourceType: String = "ios"
        public var fingerprint: String?
        public var binaryImages: [BinaryImage]?
    public struct DeviceInfo: Codable
        public let brand: String
        public let name: String
        public let model: String
        public let architecture: String
    public struct OperatingSystem: Codable
        public let name: String
        public let version: String
        public let build: String?
    public struct Dd: Codable
        public let device: DeviceInfo
    public let date: Date
    public let status: Status
    public var message: String
    public var error: Error?
    public let serviceName: String
    public let environment: String
    public let loggerName: String
    public let loggerVersion: String
    public let threadName: String?
    public let applicationVersion: String
    public let applicationBuildNumber: String
    public let buildId: String?
    public let variant: String?
    public let dd: Dd
    public let os: OperatingSystem
    public var userInfo: UserInfo
    public let networkConnectionInfo: NetworkConnectionInfo?
    public let mobileCarrierInfo: CarrierInfo?
    public var attributes: LogEvent.Attributes
    public var tags: [String]?
    public func encode(to encoder: Encoder) throws
public struct Logger
    public struct Configuration
        public enum ConsoleLogFormat
            case short
            case shortWith(prefix: String)
        public var service: String?
        public var name: String?
        public var networkInfoEnabled: Bool
        public var bundleWithRumEnabled: Bool
        public var bundleWithTraceEnabled: Bool
        public var remoteSampleRate: Float
        public var remoteLogThreshold: LogLevel
        public var consoleLogFormat: ConsoleLogFormat?
        public init(service: String? = nil,name: String? = nil,networkInfoEnabled: Bool = false,bundleWithRumEnabled: Bool = true,bundleWithTraceEnabled: Bool = true,remoteSampleRate: Float = 100,remoteLogThreshold: LogLevel = .debug,consoleLogFormat: ConsoleLogFormat? = nil)
    public static func create(with configuration: Configuration = .init(),in core: DatadogCoreProtocol = CoreRegistry.default) -> LoggerProtocol
public protocol InternalLoggerProtocol
    func log(level: LogLevel,message: String,errorKind: String?,errorMessage: String?,stackTrace: String?,attributes: [String: Encodable]?)
[?] extension LoggerProtocol
    public var _internal: InternalLoggerProtocol
public enum LogLevel: Int, Codable
    case debug
    case info
    case notice
    case warn
    case error
    case critical
[?] extension CoreLoggerLevel
    public init(logLevel: LogLevel)
public protocol LoggerProtocol
    func log(level: LogLevel, message: String, error: Error?, attributes: [String: Encodable]?)
    func addAttribute(forKey key: AttributeKey, value: AttributeValue)
    func removeAttribute(forKey key: AttributeKey)
    func addTag(withKey key: String, value: String)
    func removeTag(withKey key: String)
    func add(tag: String)
    func remove(tag: String)
public extension LoggerProtocol
    func debug(_ message: String, error: Error? = nil, attributes: [AttributeKey: AttributeValue]? = nil)
    func info(_ message: String, error: Error? = nil, attributes: [AttributeKey: AttributeValue]? = nil)
    func notice(_ message: String, error: Error? = nil, attributes: [AttributeKey: AttributeValue]? = nil)
    func warn(_ message: String, error: Error? = nil, attributes: [AttributeKey: AttributeValue]? = nil)
    func error(_ message: String, error: Error? = nil, attributes: [AttributeKey: AttributeValue]? = nil)
    func critical(_ message: String, error: Error? = nil, attributes: [AttributeKey: AttributeValue]? = nil)
[?] extension InternalExtension where ExtendedType == Logs
    public static func isEnabled(in core: DatadogCoreProtocol = CoreRegistry.default) -> Bool
public enum Logs
    public struct Configuration
        public typealias EventMapper = (LogEvent) -> LogEvent?
        public var eventMapper: EventMapper?
        public var customEndpoint: URL?
        public init(eventMapper: EventMapper? = nil,customEndpoint: URL? = nil)
    public static func enable(with configuration: Configuration = .init(),in core: DatadogCoreProtocol = CoreRegistry.default)
    public static func addAttribute(forKey key: AttributeKey, value: AttributeValue, in core: DatadogCoreProtocol = CoreRegistry.default)
    public static func removeAttribute(forKey key: AttributeKey, in core: DatadogCoreProtocol = CoreRegistry.default)
[?] extension Logs
    public struct Attributes
        public static let errorFingerprint = "_dd.error.fingerprint"
[?] extension InternalExtension where ExtendedType == Logs.Configuration
    public mutating func setLogEventMapper(_ mapper: LogEventMapper)
public protocol LogEventMapper
    func map(event: LogEvent, callback: @escaping (LogEvent) -> Void)


# ----------------------------------
# API surface for DatadogTrace:
# ----------------------------------

[?] extension TracePropagationHeadersWriter where Self: OTFormatWriter
    public func inject(spanContext: OTSpanContext)
[?] extension TracePropagationHeadersReader where Self: OTFormatReader
    public func extract() -> OTSpanContext?
    public enum LogLevel: Int, Codable
        case debug
        case info
        case notice
        case warn
        case error
        case critical
[?] extension OpenTelemetryApi.TraceState
    public func w3c() -> String
public class OTelTracerProvider: OpenTelemetryApi.TracerProvider
    public init(in core: DatadogCoreProtocol = CoreRegistry.default)
    public func get(instrumentationName: String, instrumentationVersion: String?) -> OpenTelemetryApi.Tracer
public struct OTTags
    public static let component = "component"
    public static let dbInstance = "db.instance"
    public static let dbStatement = "db.statement"
    public static let dbType = "db.type"
    public static let dbUser = "db.user"
    public static let error = "error"
    public static let httpMethod = "http.method"
    public static let httpStatusCode = "http.status_code"
    public static let httpUrl = "http.url"
    public static let messageBusDestination = "message_bus.destination"
    public static let peerAddress = "peer.address"
    public static let peerHostname = "peer.hostname"
    public static let peerIPv4 = "peer.ipv4"
    public static let peerIPv6 = "peer.ipv6"
    public static let peerPort = "peer.port"
    public static let peerService = "peer.service"
    public static let samplingPriority = "sampling.priority"
    public static let spanKind = "span.kind"
public struct OTLogFields
    public static let errorKind = "error.kind"
    public static let event = "event"
    public static let message = "message"
    public static let stack = "stack"
public protocol OTFormatReader: OTCustomFormatReader
public protocol OTFormatWriter: OTCustomFormatWriter
public protocol OTTextMapReader: OTFormatReader
public protocol OTTextMapWriter: OTFormatWriter
public protocol OTHTTPHeadersReader: OTTextMapReader
public protocol OTHTTPHeadersWriter: OTTextMapWriter
public protocol OTCustomFormatReader
    func extract() -> OTSpanContext?
public protocol OTCustomFormatWriter
    func inject(spanContext: OTSpanContext)
public struct OTReference
    public let type: OTReferenceType
    public let context: OTSpanContext
    public static func child(of parent: OTSpanContext) -> OTReference
    public static func follows(from precedingContext: OTSpanContext) -> OTReference
public enum OTReferenceType: String
    case childOf = "CHILD_OF"
    case followsFrom = "FOLLOWS_FROM"
public protocol OTSpan
    var context: OTSpanContext
    func tracer() -> OTTracer
    func setOperationName(_ operationName: String)
    func setTag(key: String, value: Encodable)
    func log(fields: [String: Encodable], timestamp: Date)
    func setBaggageItem(key: String, value: String)
    func baggageItem(withKey key: String) -> String?
    func finish(at time: Date)
    func setActive() -> OTSpan
public extension OTSpan
    func log(fields: [String: Encodable])
    func finish()
public extension OTSpan
    func setError(_ error: Error,file: StaticString = #fileID,line: UInt = #line)
    func setError(kind: String,message: String,stack: String = "",file: StaticString = #fileID,line: UInt = #line)
public protocol OTSpanContext
    func forEachBaggageItem(callback: (_ key: String, _ value: String) -> Bool)
public protocol OTTracer
    func startSpan(operationName: String,references: [OTReference]?,tags: [String: Encodable]?,startTime: Date?) -> OTSpan
    func startRootSpan(operationName: String,tags: [String: Encodable]?,startTime: Date?) -> OTSpan
    func inject(spanContext: OTSpanContext, writer: OTFormatWriter)
    func extract(reader: OTFormatReader) -> OTSpanContext?
    var activeSpan: OTSpan?
public extension OTTracer
    func startSpan(operationName: String,childOf parent: OTSpanContext? = nil,tags: [String: Encodable]? = nil,startTime: Date? = nil) -> OTSpan
    func startRootSpan(operationName: String,tags: [String: Encodable]? = nil,startTime: Date? = nil) -> OTSpan
public typealias SpanEventMapper = (SpanEvent) -> SpanEvent
public struct SpanEvent: Encodable
    public var operationName: String
    public let serviceName: String
    public var resource: String
    public let startTime: Date
    public let duration: TimeInterval
    public let isError: Bool
    public let tracerVersion: String
    public let applicationVersion: String
    public let networkConnectionInfo: NetworkConnectionInfo?
    public let mobileCarrierInfo: CarrierInfo?
    public struct UserInfo
        public let id: String?
        public let name: String?
        public let email: String?
        public var extraInfo: [String: String]
    public var userInfo: UserInfo
    public var tags: [String: String]
    public func encode(to encoder: Encoder) throws
public enum Trace
    public static func enable(with configuration: Trace.Configuration = .init(), in core: DatadogCoreProtocol = CoreRegistry.default)
[?] extension Trace
    public struct Configuration
        public typealias EventMapper = (SpanEvent) -> SpanEvent
        public var sampleRate: Float
        public var service: String?
        public var tags: [String: Encodable]?
        public var urlSessionTracking: URLSessionTracking?
        public var bundleWithRumEnabled: Bool
        public var networkInfoEnabled: Bool
        public var eventMapper: EventMapper?
        public var customEndpoint: URL?
        public struct URLSessionTracking
            public var firstPartyHostsTracing: FirstPartyHostsTracing
            public enum FirstPartyHostsTracing
                case trace(hosts: Set<String>,sampleRate: Float = 20,traceControlInjection: TraceContextInjection = .all)
                case traceWithHeaders(hostsWithHeaders: [String: Set<TracingHeaderType>],sampleRate: Float = 20,traceControlInjection: TraceContextInjection = .all)
            public init(firstPartyHostsTracing: FirstPartyHostsTracing)
        public init(sampleRate: Float = 100,service: String? = nil,tags: [String: Encodable]? = nil,urlSessionTracking: URLSessionTracking? = nil,bundleWithRumEnabled: Bool = true,networkInfoEnabled: Bool = false,eventMapper: EventMapper? = nil,customEndpoint: URL? = nil)
public enum SpanTags
    public static let resource = "resource.name"
    public static let operation = "operation.name"
    public static let service = "service.name"
public class Tracer
    public static func shared(in core: DatadogCoreProtocol = CoreRegistry.default) -> OTTracer


# ----------------------------------
# API surface for DatadogRUM:
# ----------------------------------

public struct RUMActionEvent: RUMDataModel
    public let dd: DD
    public var action: Action
    public let application: Application
    public let buildId: String?
    public let buildVersion: String?
    public let ciTest: RUMCITest?
    public let connectivity: RUMConnectivity?
    public let container: Container?
    public internal(set) var context: RUMEventAttributes?
    public let date: Int64
    public let device: RUMDevice?
    public let display: Display?
    public let os: RUMOperatingSystem?
    public let service: String?
    public let session: Session
    public let source: Source?
    public let synthetics: RUMSyntheticsTest?
    public let type: String = "action"
    public internal(set) var usr: RUMUser?
    public let version: String?
    public var view: View
    public struct DD: Codable
        public let action: Action?
        public let browserSdkVersion: String?
        public let configuration: Configuration?
        public let formatVersion: Int64 = 2
        public let session: Session?
        public struct Action: Codable
            public let position: Position?
            public let target: Target?
            public struct Position: Codable
                public let x: Int64
                public let y: Int64
            public struct Target: Codable
                public let height: Int64?
                public let selector: String?
                public let width: Int64?
        public struct Configuration: Codable
            public let sessionReplaySampleRate: Double?
            public let sessionSampleRate: Double
        public struct Session: Codable
            public let plan: Plan?
            public let sessionPrecondition: RUMSessionPrecondition?
            public enum Plan: Int, Codable
                case plan1 = 1
                case plan2 = 2
    public struct Action: Codable
        public let crash: Crash?
        public let error: Error?
        public let frustration: Frustration?
        public let id: String?
        public let loadingTime: Int64?
        public let longTask: LongTask?
        public let resource: Resource?
        public var target: Target?
        public let type: ActionType
        public struct Crash: Codable
            public let count: Int64
        public struct Error: Codable
            public let count: Int64
        public struct Frustration: Codable
            public let type: [FrustrationType]
            public enum FrustrationType: String, Codable
                case rageClick = "rage_click"
                case deadClick = "dead_click"
                case errorClick = "error_click"
                case rageTap = "rage_tap"
                case errorTap = "error_tap"
        public struct LongTask: Codable
            public let count: Int64
        public struct Resource: Codable
            public let count: Int64
        public struct Target: Codable
            public var name: String
        public enum ActionType: String, Codable
            case custom = "custom"
            case click = "click"
            case tap = "tap"
            case scroll = "scroll"
            case swipe = "swipe"
            case applicationStart = "application_start"
            case back = "back"
    public struct Application: Codable
        public let id: String
    public struct Container: Codable
        public let source: Source
        public let view: View
        public enum Source: String, Codable
            case android = "android"
            case ios = "ios"
            case browser = "browser"
            case flutter = "flutter"
            case reactNative = "react-native"
            case roku = "roku"
            case unity = "unity"
            case kotlinMultiplatform = "kotlin-multiplatform"
        public struct View: Codable
            public let id: String
    public struct Display: Codable
        public let viewport: Viewport?
        public struct Viewport: Codable
            public let height: Double
            public let width: Double
    public struct Session: Codable
        public let hasReplay: Bool?
        public let id: String
        public let type: RUMSessionType
    public enum Source: String, Codable
        case android = "android"
        case ios = "ios"
        case browser = "browser"
        case flutter = "flutter"
        case reactNative = "react-native"
        case roku = "roku"
        case unity = "unity"
        case kotlinMultiplatform = "kotlin-multiplatform"
    public struct View: Codable
        public let id: String
        public let inForeground: Bool?
        public var name: String?
        public var referrer: String?
        public var url: String
public struct RUMErrorEvent: RUMDataModel
    public let dd: DD
    public let action: Action?
    public let application: Application
    public let buildId: String?
    public let buildVersion: String?
    public let ciTest: RUMCITest?
    public let connectivity: RUMConnectivity?
    public let container: Container?
    public internal(set) var context: RUMEventAttributes?
    public let date: Int64
    public let device: RUMDevice?
    public let display: Display?
    public var error: Error
    public internal(set) var featureFlags: FeatureFlags?
    public let freeze: Freeze?
    public let os: RUMOperatingSystem?
    public let service: String?
    public let session: Session
    public let source: Source?
    public let synthetics: RUMSyntheticsTest?
    public let type: String = "error"
    public internal(set) var usr: RUMUser?
    public let version: String?
    public var view: View
    public struct DD: Codable
        public let browserSdkVersion: String?
        public let configuration: Configuration?
        public let formatVersion: Int64 = 2
        public let session: Session?
        public struct Configuration: Codable
            public let sessionReplaySampleRate: Double?
            public let sessionSampleRate: Double
        public struct Session: Codable
            public let plan: Plan?
            public let sessionPrecondition: RUMSessionPrecondition?
            public enum Plan: Int, Codable
                case plan1 = 1
                case plan2 = 2
    public struct Action: Codable
        public let id: RUMActionID
    public struct Application: Codable
        public let id: String
    public struct Container: Codable
        public let source: Source
        public let view: View
        public enum Source: String, Codable
            case android = "android"
            case ios = "ios"
            case browser = "browser"
            case flutter = "flutter"
            case reactNative = "react-native"
            case roku = "roku"
            case unity = "unity"
            case kotlinMultiplatform = "kotlin-multiplatform"
        public struct View: Codable
            public let id: String
    public struct Display: Codable
        public let viewport: Viewport?
        public struct Viewport: Codable
            public let height: Double
            public let width: Double
    public struct Error: Codable
        public let binaryImages: [BinaryImages]?
        public let category: Category?
        public var causes: [Causes]?
        public let csp: CSP?
        public var fingerprint: String?
        public let handling: Handling?
        public let handlingStack: String?
        public let id: String?
        public let isCrash: Bool?
        public var message: String
        public let meta: Meta?
        public var resource: Resource?
        public let source: Source
        public let sourceType: SourceType?
        public var stack: String?
        public let threads: [Threads]?
        public let timeSinceAppStart: Int64?
        public let type: String?
        public let wasTruncated: Bool?
        public struct BinaryImages: Codable
            public let arch: String?
            public let isSystem: Bool
            public let loadAddress: String?
            public let maxAddress: String?
            public let name: String
            public let uuid: String
        public enum Category: String, Codable
            case aNR = "ANR"
            case appHang = "App Hang"
            case exception = "Exception"
            case watchdogTermination = "Watchdog Termination"
            case memoryWarning = "Memory Warning"
        public struct Causes: Codable
            public var message: String
            public let source: Source
            public var stack: String?
            public let type: String?
            public enum Source: String, Codable
                case network = "network"
                case source = "source"
                case console = "console"
                case logger = "logger"
                case agent = "agent"
                case webview = "webview"
                case custom = "custom"
                case report = "report"
        public struct CSP: Codable
            public let disposition: Disposition?
            public enum Disposition: String, Codable
                case enforce = "enforce"
                case report = "report"
        public enum Handling: String, Codable
            case handled = "handled"
            case unhandled = "unhandled"
        public struct Meta: Codable
            public let codeType: String?
            public let exceptionCodes: String?
            public let exceptionType: String?
            public let incidentIdentifier: String?
            public let parentProcess: String?
            public let path: String?
            public let process: String?
        public struct Resource: Codable
            public let method: RUMMethod
            public let provider: Provider?
            public let statusCode: Int64
            public var url: String
            public struct Provider: Codable
                public let domain: String?
                public let name: String?
                public let type: ProviderType?
                public enum ProviderType: String, Codable
                    case ad = "ad"
                    case advertising = "advertising"
                    case analytics = "analytics"
                    case cdn = "cdn"
                    case content = "content"
                    case customerSuccess = "customer-success"
                    case firstParty = "first party"
                    case hosting = "hosting"
                    case marketing = "marketing"
                    case other = "other"
                    case social = "social"
                    case tagManager = "tag-manager"
                    case utility = "utility"
                    case video = "video"
        public enum Source: String, Codable
            case network = "network"
            case source = "source"
            case console = "console"
            case logger = "logger"
            case agent = "agent"
            case webview = "webview"
            case custom = "custom"
            case report = "report"
        public enum SourceType: String, Codable
            case android = "android"
            case browser = "browser"
            case ios = "ios"
            case reactNative = "react-native"
            case flutter = "flutter"
            case roku = "roku"
            case ndk = "ndk"
            case iosIl2cpp = "ios+il2cpp"
            case ndkIl2cpp = "ndk+il2cpp"
        public struct Threads: Codable
            public let crashed: Bool
            public let name: String
            public let stack: String
            public let state: String?
    public struct FeatureFlags: Codable
        public internal(set) var featureFlagsInfo: [String: Encodable]
    public struct Freeze: Codable
        public let duration: Int64
    public struct Session: Codable
        public let hasReplay: Bool?
        public let id: String
        public let type: RUMSessionType
    public enum Source: String, Codable
        case android = "android"
        case ios = "ios"
        case browser = "browser"
        case flutter = "flutter"
        case reactNative = "react-native"
        case roku = "roku"
        case unity = "unity"
        case kotlinMultiplatform = "kotlin-multiplatform"
    public struct View: Codable
        public let id: String
        public let inForeground: Bool?
        public var name: String?
        public var referrer: String?
        public var url: String
[?] extension RUMErrorEvent.FeatureFlags
    public func encode(to encoder: Encoder) throws
    public init(from decoder: Decoder) throws
public struct RUMLongTaskEvent: RUMDataModel
    public let dd: DD
    public let action: Action?
    public let application: Application
    public let buildId: String?
    public let buildVersion: String?
    public let ciTest: RUMCITest?
    public let connectivity: RUMConnectivity?
    public let container: Container?
    public internal(set) var context: RUMEventAttributes?
    public let date: Int64
    public let device: RUMDevice?
    public let display: Display?
    public let longTask: LongTask
    public let os: RUMOperatingSystem?
    public let service: String?
    public let session: Session
    public let source: Source?
    public let synthetics: RUMSyntheticsTest?
    public let type: String = "long_task"
    public internal(set) var usr: RUMUser?
    public let version: String?
    public var view: View
    public struct DD: Codable
        public let browserSdkVersion: String?
        public let configuration: Configuration?
        public let discarded: Bool?
        public let formatVersion: Int64 = 2
        public let session: Session?
        public struct Configuration: Codable
            public let sessionReplaySampleRate: Double?
            public let sessionSampleRate: Double
        public struct Session: Codable
            public let plan: Plan?
            public let sessionPrecondition: RUMSessionPrecondition?
            public enum Plan: Int, Codable
                case plan1 = 1
                case plan2 = 2
    public struct Action: Codable
        public let id: RUMActionID
    public struct Application: Codable
        public let id: String
    public struct Container: Codable
        public let source: Source
        public let view: View
        public enum Source: String, Codable
            case android = "android"
            case ios = "ios"
            case browser = "browser"
            case flutter = "flutter"
            case reactNative = "react-native"
            case roku = "roku"
            case unity = "unity"
            case kotlinMultiplatform = "kotlin-multiplatform"
        public struct View: Codable
            public let id: String
    public struct Display: Codable
        public let viewport: Viewport?
        public struct Viewport: Codable
            public let height: Double
            public let width: Double
    public struct LongTask: Codable
        public let duration: Int64
        public let id: String?
        public let isFrozenFrame: Bool?
    public struct Session: Codable
        public let hasReplay: Bool?
        public let id: String
        public let type: RUMSessionType
    public enum Source: String, Codable
        case android = "android"
        case ios = "ios"
        case browser = "browser"
        case flutter = "flutter"
        case reactNative = "react-native"
        case roku = "roku"
        case unity = "unity"
        case kotlinMultiplatform = "kotlin-multiplatform"
    public struct View: Codable
        public let id: String
        public var name: String?
        public var referrer: String?
        public var url: String
public struct RUMResourceEvent: RUMDataModel
    public let dd: DD
    public let action: Action?
    public let application: Application
    public let buildId: String?
    public let buildVersion: String?
    public let ciTest: RUMCITest?
    public let connectivity: RUMConnectivity?
    public let container: Container?
    public internal(set) var context: RUMEventAttributes?
    public let date: Int64
    public let device: RUMDevice?
    public let display: Display?
    public let os: RUMOperatingSystem?
    public var resource: Resource
    public let service: String?
    public let session: Session
    public let source: Source?
    public let synthetics: RUMSyntheticsTest?
    public let type: String = "resource"
    public internal(set) var usr: RUMUser?
    public let version: String?
    public var view: View
    public struct DD: Codable
        public let browserSdkVersion: String?
        public let configuration: Configuration?
        public let discarded: Bool?
        public let formatVersion: Int64 = 2
        public let rulePsr: Double?
        public let session: Session?
        public let spanId: String?
        public let traceId: String?
        public struct Configuration: Codable
            public let sessionReplaySampleRate: Double?
            public let sessionSampleRate: Double
        public struct Session: Codable
            public let plan: Plan?
            public let sessionPrecondition: RUMSessionPrecondition?
            public enum Plan: Int, Codable
                case plan1 = 1
                case plan2 = 2
    public struct Action: Codable
        public let id: RUMActionID
    public struct Application: Codable
        public let id: String
    public struct Container: Codable
        public let source: Source
        public let view: View
        public enum Source: String, Codable
            case android = "android"
            case ios = "ios"
            case browser = "browser"
            case flutter = "flutter"
            case reactNative = "react-native"
            case roku = "roku"
            case unity = "unity"
            case kotlinMultiplatform = "kotlin-multiplatform"
        public struct View: Codable
            public let id: String
    public struct Display: Codable
        public let viewport: Viewport?
        public struct Viewport: Codable
            public let height: Double
            public let width: Double
    public struct Resource: Codable
        public let connect: Connect?
        public let decodedBodySize: Int64?
        public let dns: DNS?
        public let download: Download?
        public let duration: Int64?
        public let encodedBodySize: Int64?
        public let firstByte: FirstByte?
        public var graphql: Graphql?
        public let id: String?
        public let method: RUMMethod?
        public let provider: Provider?
        public let redirect: Redirect?
        public let renderBlockingStatus: RenderBlockingStatus?
        public let size: Int64?
        public let ssl: SSL?
        public let statusCode: Int64?
        public let transferSize: Int64?
        public let type: ResourceType
        public var url: String
        public struct Connect: Codable
            public let duration: Int64
            public let start: Int64
        public struct DNS: Codable
            public let duration: Int64
            public let start: Int64
        public struct Download: Codable
            public let duration: Int64
            public let start: Int64
        public struct FirstByte: Codable
            public let duration: Int64
            public let start: Int64
        public struct Graphql: Codable
            public let operationName: String?
            public let operationType: OperationType
            public var payload: String?
            public var variables: String?
            public enum OperationType: String, Codable
                case query = "query"
                case mutation = "mutation"
                case subscription = "subscription"
        public struct Provider: Codable
            public let domain: String?
            public let name: String?
            public let type: ProviderType?
            public enum ProviderType: String, Codable
                case ad = "ad"
                case advertising = "advertising"
                case analytics = "analytics"
                case cdn = "cdn"
                case content = "content"
                case customerSuccess = "customer-success"
                case firstParty = "first party"
                case hosting = "hosting"
                case marketing = "marketing"
                case other = "other"
                case social = "social"
                case tagManager = "tag-manager"
                case utility = "utility"
                case video = "video"
        public struct Redirect: Codable
            public let duration: Int64
            public let start: Int64
        public enum RenderBlockingStatus: String, Codable
            case blocking = "blocking"
            case nonBlocking = "non-blocking"
        public struct SSL: Codable
            public let duration: Int64
            public let start: Int64
        public enum ResourceType: String, Codable
            case document = "document"
            case xhr = "xhr"
            case beacon = "beacon"
            case fetch = "fetch"
            case css = "css"
            case js = "js"
            case image = "image"
            case font = "font"
            case media = "media"
            case other = "other"
            case native = "native"
    public struct Session: Codable
        public let hasReplay: Bool?
        public let id: String
        public let type: RUMSessionType
    public enum Source: String, Codable
        case android = "android"
        case ios = "ios"
        case browser = "browser"
        case flutter = "flutter"
        case reactNative = "react-native"
        case roku = "roku"
        case unity = "unity"
        case kotlinMultiplatform = "kotlin-multiplatform"
    public struct View: Codable
        public let id: String
        public var name: String?
        public var referrer: String?
        public var url: String
public struct RUMViewEvent: RUMDataModel
    public let dd: DD
    public let application: Application
    public let buildId: String?
    public let buildVersion: String?
    public let ciTest: RUMCITest?
    public let connectivity: RUMConnectivity?
    public let container: Container?
    public internal(set) var context: RUMEventAttributes?
    public let date: Int64
    public let device: RUMDevice?
    public let display: Display?
    public internal(set) var featureFlags: FeatureFlags?
    public let os: RUMOperatingSystem?
    public let privacy: Privacy?
    public let service: String?
    public let session: Session
    public let source: Source?
    public let synthetics: RUMSyntheticsTest?
    public let type: String = "view"
    public internal(set) var usr: RUMUser?
    public let version: String?
    public var view: View
    public struct DD: Codable
        public let browserSdkVersion: String?
        public let configuration: Configuration?
        public let documentVersion: Int64
        public let formatVersion: Int64 = 2
        public let pageStates: [PageStates]?
        public let replayStats: ReplayStats?
        public let session: Session?
        public struct Configuration: Codable
            public let sessionReplaySampleRate: Double?
            public let sessionSampleRate: Double
            public let startSessionReplayRecordingManually: Bool?
        public struct PageStates: Codable
            public let start: Int64
            public let state: State
            public enum State: String, Codable
                case active = "active"
                case passive = "passive"
                case hidden = "hidden"
                case frozen = "frozen"
                case terminated = "terminated"
        public struct ReplayStats: Codable
            public let recordsCount: Int64?
            public let segmentsCount: Int64?
            public let segmentsTotalRawSize: Int64?
        public struct Session: Codable
            public let plan: Plan?
            public let sessionPrecondition: RUMSessionPrecondition?
            public enum Plan: Int, Codable
                case plan1 = 1
                case plan2 = 2
    public struct Application: Codable
        public let id: String
    public struct Container: Codable
        public let source: Source
        public let view: View
        public enum Source: String, Codable
            case android = "android"
            case ios = "ios"
            case browser = "browser"
            case flutter = "flutter"
            case reactNative = "react-native"
            case roku = "roku"
            case unity = "unity"
            case kotlinMultiplatform = "kotlin-multiplatform"
        public struct View: Codable
            public let id: String
    public struct Display: Codable
        public let scroll: Scroll?
        public let viewport: Viewport?
        public struct Scroll: Codable
            public let maxDepth: Double
            public let maxDepthScrollTop: Double
            public let maxScrollHeight: Double
            public let maxScrollHeightTime: Double
        public struct Viewport: Codable
            public let height: Double
            public let width: Double
    public struct FeatureFlags: Codable
        public internal(set) var featureFlagsInfo: [String: Encodable]
    public struct Privacy: Codable
        public let replayLevel: ReplayLevel
        public enum ReplayLevel: String, Codable
            case allow = "allow"
            case mask = "mask"
            case maskUserInput = "mask-user-input"
    public struct Session: Codable
        public let hasReplay: Bool?
        public let id: String
        public let isActive: Bool?
        public let sampledForReplay: Bool?
        public let type: RUMSessionType
    public enum Source: String, Codable
        case android = "android"
        case ios = "ios"
        case browser = "browser"
        case flutter = "flutter"
        case reactNative = "react-native"
        case roku = "roku"
        case unity = "unity"
        case kotlinMultiplatform = "kotlin-multiplatform"
    public struct View: Codable
        public let action: Action
        public let cpuTicksCount: Double?
        public let cpuTicksPerSecond: Double?
        public let crash: Crash?
        public let cumulativeLayoutShift: Double?
        public let cumulativeLayoutShiftTargetSelector: String?
        public let cumulativeLayoutShiftTime: Int64?
        public let customTimings: [String: Int64]?
        public let domComplete: Int64?
        public let domContentLoaded: Int64?
        public let domInteractive: Int64?
        public let error: Error
        public let firstByte: Int64?
        public let firstContentfulPaint: Int64?
        public let firstInputDelay: Int64?
        public let firstInputTargetSelector: String?
        public let firstInputTime: Int64?
        public let flutterBuildTime: FlutterBuildTime?
        public let flutterRasterTime: FlutterRasterTime?
        public let frozenFrame: FrozenFrame?
        public let frustration: Frustration?
        public let id: String
        public let inForegroundPeriods: [InForegroundPeriods]?
        public let interactionToNextPaint: Int64?
        public let interactionToNextPaintTargetSelector: String?
        public let interactionToNextPaintTime: Int64?
        public let isActive: Bool?
        public let isSlowRendered: Bool?
        public let jsRefreshRate: JsRefreshRate?
        public let largestContentfulPaint: Int64?
        public let largestContentfulPaintTargetSelector: String?
        public let loadEvent: Int64?
        public let loadingTime: Int64?
        public let loadingType: LoadingType?
        public let longTask: LongTask?
        public let memoryAverage: Double?
        public let memoryMax: Double?
        public var name: String?
        public var referrer: String?
        public let refreshRateAverage: Double?
        public let refreshRateMin: Double?
        public let resource: Resource
        public let timeSpent: Int64
        public var url: String
        public struct Action: Codable
            public let count: Int64
        public struct Crash: Codable
            public let count: Int64
        public struct Error: Codable
            public let count: Int64
        public struct FlutterBuildTime: Codable
            public let average: Double
            public let max: Double
            public let metricMax: Double?
            public let min: Double
        public struct FlutterRasterTime: Codable
            public let average: Double
            public let max: Double
            public let metricMax: Double?
            public let min: Double
        public struct FrozenFrame: Codable
            public let count: Int64
        public struct Frustration: Codable
            public let count: Int64
        public struct InForegroundPeriods: Codable
            public let duration: Int64
            public let start: Int64
        public struct JsRefreshRate: Codable
            public let average: Double
            public let max: Double
            public let metricMax: Double?
            public let min: Double
        public enum LoadingType: String, Codable
            case initialLoad = "initial_load"
            case routeChange = "route_change"
            case activityDisplay = "activity_display"
            case activityRedisplay = "activity_redisplay"
            case fragmentDisplay = "fragment_display"
            case fragmentRedisplay = "fragment_redisplay"
            case viewControllerDisplay = "view_controller_display"
            case viewControllerRedisplay = "view_controller_redisplay"
        public struct LongTask: Codable
            public let count: Int64
        public struct Resource: Codable
            public let count: Int64
[?] extension RUMViewEvent.FeatureFlags
    public func encode(to encoder: Encoder) throws
    public init(from decoder: Decoder) throws
public struct RUMVitalEvent: RUMDataModel
    public let dd: DD
    public let application: Application
    public let buildId: String?
    public let buildVersion: String?
    public let ciTest: RUMCITest?
    public let connectivity: RUMConnectivity?
    public let container: Container?
    public internal(set) var context: RUMEventAttributes?
    public let date: Int64
    public let device: RUMDevice?
    public let display: Display?
    public let os: RUMOperatingSystem?
    public let service: String?
    public let session: Session
    public let source: Source?
    public let synthetics: RUMSyntheticsTest?
    public let type: String = "vital"
    public internal(set) var usr: RUMUser?
    public let version: String?
    public var view: View
    public let vital: Vital
    public struct DD: Codable
        public let browserSdkVersion: String?
        public let configuration: Configuration?
        public let formatVersion: Int64 = 2
        public let session: Session?
        public let vital: Vital?
        public struct Configuration: Codable
            public let sessionReplaySampleRate: Double?
            public let sessionSampleRate: Double
        public struct Session: Codable
            public let plan: Plan?
            public let sessionPrecondition: RUMSessionPrecondition?
            public enum Plan: Int, Codable
                case plan1 = 1
                case plan2 = 2
        public struct Vital: Codable
            public let computedValue: Bool?
    public struct Application: Codable
        public let id: String
    public struct Container: Codable
        public let source: Source
        public let view: View
        public enum Source: String, Codable
            case android = "android"
            case ios = "ios"
            case browser = "browser"
            case flutter = "flutter"
            case reactNative = "react-native"
            case roku = "roku"
            case unity = "unity"
            case kotlinMultiplatform = "kotlin-multiplatform"
        public struct View: Codable
            public let id: String
    public struct Display: Codable
        public let viewport: Viewport?
        public struct Viewport: Codable
            public let height: Double
            public let width: Double
    public struct Session: Codable
        public let hasReplay: Bool?
        public let id: String
        public let type: RUMSessionType
    public enum Source: String, Codable
        case android = "android"
        case ios = "ios"
        case browser = "browser"
        case flutter = "flutter"
        case reactNative = "react-native"
        case roku = "roku"
        case unity = "unity"
        case kotlinMultiplatform = "kotlin-multiplatform"
    public struct View: Codable
        public let id: String
        public var name: String?
        public var referrer: String?
        public var url: String
    public struct Vital: Codable
        public let custom: [String: Double]?
        public let details: String?
        public let duration: Double?
        public let id: String
        public let name: String?
        public let type: VitalType
        public enum VitalType: String, Codable
            case duration = "duration"
public struct TelemetryErrorEvent: RUMDataModel
    public let dd: DD
    public let action: Action?
    public let application: Application?
    public let date: Int64
    public let experimentalFeatures: [String]?
    public let service: String
    public let session: Session?
    public let source: Source
    public internal(set) var telemetry: Telemetry
    public let type: String = "telemetry"
    public let version: String
    public let view: View?
    public struct DD: Codable
        public let formatVersion: Int64 = 2
    public struct Action: Codable
        public let id: String
    public struct Application: Codable
        public let id: String
    public struct Session: Codable
        public let id: String
    public enum Source: String, Codable
        case android = "android"
        case ios = "ios"
        case browser = "browser"
        case flutter = "flutter"
        case reactNative = "react-native"
        case unity = "unity"
        case kotlinMultiplatform = "kotlin-multiplatform"
    public struct Telemetry: Codable
        public let device: RUMTelemetryDevice?
        public let error: Error?
        public let message: String
        public let os: RUMTelemetryOperatingSystem?
        public let status: String = "error"
        public let type: String? = "log"
        public internal(set) var telemetryInfo: [String: Encodable]
        public struct Error: Codable
            public let kind: String?
            public let stack: String?
    public struct View: Codable
        public let id: String
[?] extension TelemetryErrorEvent.Telemetry
    public func encode(to encoder: Encoder) throws
    public init(from decoder: Decoder) throws
public struct TelemetryDebugEvent: RUMDataModel
    public let dd: DD
    public let action: Action?
    public let application: Application?
    public let date: Int64
    public let experimentalFeatures: [String]?
    public let service: String
    public let session: Session?
    public let source: Source
    public internal(set) var telemetry: Telemetry
    public let type: String = "telemetry"
    public let version: String
    public let view: View?
    public struct DD: Codable
        public let formatVersion: Int64 = 2
    public struct Action: Codable
        public let id: String
    public struct Application: Codable
        public let id: String
    public struct Session: Codable
        public let id: String
    public enum Source: String, Codable
        case android = "android"
        case ios = "ios"
        case browser = "browser"
        case flutter = "flutter"
        case reactNative = "react-native"
        case unity = "unity"
        case kotlinMultiplatform = "kotlin-multiplatform"
    public struct Telemetry: Codable
        public let device: RUMTelemetryDevice?
        public let message: String
        public let os: RUMTelemetryOperatingSystem?
        public let status: String = "debug"
        public let type: String? = "log"
        public internal(set) var telemetryInfo: [String: Encodable]
    public struct View: Codable
        public let id: String
[?] extension TelemetryDebugEvent.Telemetry
    public func encode(to encoder: Encoder) throws
    public init(from decoder: Decoder) throws
public struct TelemetryConfigurationEvent: RUMDataModel
    public let dd: DD
    public let action: Action?
    public let application: Application?
    public let date: Int64
    public let experimentalFeatures: [String]?
    public let service: String
    public let session: Session?
    public let source: Source
    public var telemetry: Telemetry
    public let type: String = "telemetry"
    public let version: String
    public let view: View?
    public struct DD: Codable
        public let formatVersion: Int64 = 2
    public struct Action: Codable
        public let id: String
    public struct Application: Codable
        public let id: String
    public struct Session: Codable
        public let id: String
    public enum Source: String, Codable
        case android = "android"
        case ios = "ios"
        case browser = "browser"
        case flutter = "flutter"
        case reactNative = "react-native"
        case unity = "unity"
        case kotlinMultiplatform = "kotlin-multiplatform"
    public struct Telemetry: Codable
        public var configuration: Configuration
        public let device: RUMTelemetryDevice?
        public let os: RUMTelemetryOperatingSystem?
        public let type: String = "configuration"
        public internal(set) var telemetryInfo: [String: Encodable]
        public struct Configuration: Codable
            public let actionNameAttribute: String?
            public let allowFallbackToLocalStorage: Bool?
            public let allowUntrustedEvents: Bool?
            public let appHangThreshold: Int64?
            public let backgroundTasksEnabled: Bool?
            public let batchProcessingLevel: Int64?
            public let batchSize: Int64?
            public let batchUploadFrequency: Int64?
            public let compressIntakeRequests: Bool?
            public var dartVersion: String?
            public var defaultPrivacyLevel: String?
            public var enablePrivacyForActionName: Bool?
            public let forwardConsoleLogs: ForwardConsoleLogs?
            public let forwardErrorsToLogs: Bool?
            public let forwardReports: ForwardReports?
            public var initializationType: String?
            public var mobileVitalsUpdatePeriod: Int64?
            public internal(set) var plugins: [Plugins]?
            public let premiumSampleRate: Int64?
            public var reactNativeVersion: String?
            public var reactVersion: String?
            public let replaySampleRate: Int64?
            public let selectedTracingPropagators: [SelectedTracingPropagators]?
            public var sendLogsAfterSessionExpiration: Bool?
            public var sessionReplaySampleRate: Int64?
            public let sessionSampleRate: Int64?
            public let silentMultipleInit: Bool?
            public var startRecordingImmediately: Bool?
            public var startSessionReplayRecordingManually: Bool?
            public let storeContextsAcrossPages: Bool?
            public let telemetryConfigurationSampleRate: Int64?
            public let telemetrySampleRate: Int64?
            public let telemetryUsageSampleRate: Int64?
            public var traceContextInjection: TraceContextInjection?
            public let traceSampleRate: Int64?
            public var tracerApi: String?
            public var tracerApiVersion: String?
            public var trackBackgroundEvents: Bool?
            public var trackCrossPlatformLongTasks: Bool?
            public var trackErrors: Bool?
            public var trackFlutterPerformance: Bool?
            public var trackFrustrations: Bool?
            public var trackInteractions: Bool?
            public var trackLongTask: Bool?
            public var trackNativeErrors: Bool?
            public var trackNativeLongTasks: Bool?
            public var trackNativeViews: Bool?
            public var trackNetworkRequests: Bool?
            public var trackResources: Bool?
            public let trackSessionAcrossSubdomains: Bool?
            public var trackUserInteractions: Bool?
            public var trackViewsManually: Bool?
            public let trackingConsent: TrackingConsent?
            public var unityVersion: String?
            public let useAllowedTracingOrigins: Bool?
            public let useAllowedTracingUrls: Bool?
            public let useBeforeSend: Bool?
            public let useCrossSiteSessionCookie: Bool?
            public let useExcludedActivityUrls: Bool?
            public var useFirstPartyHosts: Bool?
            public let useLocalEncryption: Bool?
            public let usePartitionedCrossSiteSessionCookie: Bool?
            public var usePciIntake: Bool?
            public var useProxy: Bool?
            public let useSecureSessionCookie: Bool?
            public let useTracing: Bool?
            public let useWorkerUrl: Bool?
            public let viewTrackingStrategy: ViewTrackingStrategy?
            public enum ForwardConsoleLogs: Codable
                case stringsArray(value: [String])
                case string(value: String)
                public func encode(to encoder: Encoder) throws
                public init(from decoder: Decoder) throws
            public enum ForwardReports: Codable
                case stringsArray(value: [String])
                case string(value: String)
                public func encode(to encoder: Encoder) throws
                public init(from decoder: Decoder) throws
            public struct Plugins: Codable
                public let name: String
                public internal(set) var pluginsInfo: [String: Encodable]
            public enum SelectedTracingPropagators: String, Codable
                case datadog = "datadog"
                case b3 = "b3"
                case b3multi = "b3multi"
                case tracecontext = "tracecontext"
            public enum TraceContextInjection: String, Codable
                case all = "all"
                case sampled = "sampled"
            public enum TrackingConsent: String, Codable
                case granted = "granted"
                case notGranted = "not-granted"
                case pending = "pending"
            public enum ViewTrackingStrategy: String, Codable
                case activityViewTrackingStrategy = "ActivityViewTrackingStrategy"
                case fragmentViewTrackingStrategy = "FragmentViewTrackingStrategy"
                case mixedViewTrackingStrategy = "MixedViewTrackingStrategy"
                case navigationViewTrackingStrategy = "NavigationViewTrackingStrategy"
    public struct View: Codable
        public let id: String
[?] extension TelemetryConfigurationEvent.Telemetry
    public func encode(to encoder: Encoder) throws
    public init(from decoder: Decoder) throws
[?] extension TelemetryConfigurationEvent.Telemetry.Configuration.Plugins
    public func encode(to encoder: Encoder) throws
    public init(from decoder: Decoder) throws
public enum RUMSessionPrecondition: String, Codable
    case userAppLaunch = "user_app_launch"
    case inactivityTimeout = "inactivity_timeout"
    case maxDuration = "max_duration"
    case backgroundLaunch = "background_launch"
    case prewarm = "prewarm"
    case fromNonInteractiveSession = "from_non_interactive_session"
    case explicitStop = "explicit_stop"
public struct RUMCITest: Codable
    public let testExecutionId: String
public struct RUMConnectivity: Codable
    public let cellular: Cellular?
    public let effectiveType: EffectiveType?
    public let interfaces: [Interfaces]?
    public let status: Status
    public struct Cellular: Codable
        public let carrierName: String?
        public let technology: String?
    public enum EffectiveType: String, Codable
        case slow2g = "slow_2g"
        case effectiveType2g = "2g"
        case effectiveType3g = "3g"
        case effectiveType4g = "4g"
    public enum Interfaces: String, Codable
        case bluetooth = "bluetooth"
        case cellular = "cellular"
        case ethernet = "ethernet"
        case wifi = "wifi"
        case wimax = "wimax"
        case mixed = "mixed"
        case other = "other"
        case unknown = "unknown"
        case interfacesNone = "none"
    public enum Status: String, Codable
        case connected = "connected"
        case notConnected = "not_connected"
        case maybe = "maybe"
public struct RUMEventAttributes: Codable
    public internal(set) var contextInfo: [String: Encodable]
[?] extension RUMEventAttributes
    public func encode(to encoder: Encoder) throws
    public init(from decoder: Decoder) throws
public struct RUMDevice: Codable
    public let architecture: String?
    public let brand: String?
    public let model: String?
    public let name: String?
    public let type: RUMDeviceType
    public enum RUMDeviceType: String, Codable
        case mobile = "mobile"
        case desktop = "desktop"
        case tablet = "tablet"
        case tv = "tv"
        case gamingConsole = "gaming_console"
        case bot = "bot"
        case other = "other"
public struct RUMOperatingSystem: Codable
    public let build: String?
    public let name: String
    public let version: String
    public let versionMajor: String
public enum RUMSessionType: String, Codable
    case user = "user"
    case synthetics = "synthetics"
    case ciTest = "ci_test"
public struct RUMSyntheticsTest: Codable
    public let injected: Bool?
    public let resultId: String
    public let testId: String
public struct RUMUser: Codable
    public let email: String?
    public let id: String?
    public let name: String?
    public internal(set) var usrInfo: [String: Encodable]
[?] extension RUMUser
    public func encode(to encoder: Encoder) throws
    public init(from decoder: Decoder) throws
public enum RUMActionID: Codable
    case string(value: String)
    case stringsArray(value: [String])
    public func encode(to encoder: Encoder) throws
    public init(from decoder: Decoder) throws
public enum RUMMethod: String, Codable
    case post = "POST"
    case get = "GET"
    case head = "HEAD"
    case put = "PUT"
    case delete = "DELETE"
    case patch = "PATCH"
    case trace = "TRACE"
    case options = "OPTIONS"
    case connect = "CONNECT"
public struct RUMTelemetryDevice: Codable
    public let architecture: String?
    public let brand: String?
    public let model: String?
public struct RUMTelemetryOperatingSystem: Codable
    public let build: String?
    public let name: String?
    public let version: String?
public extension SwiftUI.View
    func trackRUMTapAction(name: String,attributes: [String: Encodable] = [:],count: Int = 1,in core: DatadogCoreProtocol = CoreRegistry.default) -> some View
public struct RUMAction
    public var name: String
    public var attributes: [AttributeKey: AttributeValue]
    public init(name: String, attributes: [AttributeKey: AttributeValue] = [:])
public typealias UIKitRUMActionsPredicate = UITouchRUMActionsPredicate
public protocol UITouchRUMActionsPredicate
    func rumAction(targetView: UIView) -> RUMAction?
public protocol UIPressRUMActionsPredicate
    func rumAction(press type: UIPress.PressType, targetView: UIView) -> RUMAction?
public struct DefaultUIKitRUMActionsPredicate
    public init ()
[?] extension DefaultUIKitRUMActionsPredicate: UITouchRUMActionsPredicate
    public func rumAction(targetView: UIView) -> RUMAction?
[?] extension DefaultUIKitRUMActionsPredicate: UIPressRUMActionsPredicate
    public func rumAction(press type: UIPress.PressType, targetView: UIView) -> RUMAction?
public extension SwiftUI.View
    func trackRUMView(name: String,attributes: [AttributeKey: AttributeValue] = [:],in core: DatadogCoreProtocol = CoreRegistry.default) -> some View
public struct RUMView
    public var name: String
    public var path: String?
    public var attributes: [AttributeKey: AttributeValue]
    public var isUntrackedModal: Bool
    public init(path: String, attributes: [AttributeKey: AttributeValue] = [:])
    public init(name: String, attributes: [AttributeKey: AttributeValue] = [:], isUntrackedModal: Bool = false)
public protocol UIKitRUMViewsPredicate
    func rumView(for viewController: UIViewController) -> RUMView?
public struct DefaultUIKitRUMViewsPredicate: UIKitRUMViewsPredicate
    public init ()
    public func rumView(for viewController: UIViewController) -> RUMView?
[?] extension InternalExtension where ExtendedType == RUM
    public static func isEnabled(in core: DatadogCoreProtocol = CoreRegistry.default) -> Bool
    public static func enableURLSessionTracking(with configuration: RUM.Configuration.URLSessionTracking,in core: DatadogCoreProtocol = CoreRegistry.default) throws
public enum RUM
    public static func enable(with configuration: RUM.Configuration, in core: DatadogCoreProtocol = CoreRegistry.default)
[?] extension RUM
    public struct Attributes
        public static let errorFingerprint = "_dd.error.fingerprint"
[?] extension RUM
    public typealias ViewEventMapper = (RUMViewEvent) -> RUMViewEvent
    public typealias ResourceEventMapper = (RUMResourceEvent) -> RUMResourceEvent?
    public typealias ErrorEventMapper = (RUMErrorEvent) -> RUMErrorEvent?
    public typealias ActionEventMapper = (RUMActionEvent) -> RUMActionEvent?
    public typealias LongTaskEventMapper = (RUMLongTaskEvent) -> RUMLongTaskEvent?
    public typealias SessionListener = (String, Bool) -> Void
    public typealias ResourceAttributesProvider = (URLRequest, URLResponse?, Data?, Error?) -> [AttributeKey: AttributeValue]?
    public struct Configuration
        public let applicationID: String
        public var sessionSampleRate: Float
        public var uiKitViewsPredicate: UIKitRUMViewsPredicate?
        public var uiKitActionsPredicate: UIKitRUMActionsPredicate?
        public var urlSessionTracking: URLSessionTracking?
        public var trackFrustrations: Bool
        public var trackBackgroundEvents: Bool
        public var trackWatchdogTerminations: Bool
        public var longTaskThreshold: TimeInterval?
        public var appHangThreshold: TimeInterval?
        public var vitalsUpdateFrequency: VitalsFrequency?
        public var viewEventMapper: RUM.ViewEventMapper?
        public var resourceEventMapper: RUM.ResourceEventMapper?
        public var actionEventMapper: RUM.ActionEventMapper?
        public var errorEventMapper: RUM.ErrorEventMapper?
        public var longTaskEventMapper: RUM.LongTaskEventMapper?
        public var onSessionStart: RUM.SessionListener?
        public var customEndpoint: URL?
        public var telemetrySampleRate: Float
        public struct URLSessionTracking
            public var firstPartyHostsTracing: FirstPartyHostsTracing?
            public var resourceAttributesProvider: RUM.ResourceAttributesProvider?
        public enum VitalsFrequency: String
            case frequent
            case average
            case rare
[?] extension RUM.Configuration.URLSessionTracking
    public enum FirstPartyHostsTracing
        case trace(hosts: Set<String>,sampleRate: Float = 20,traceControlInjection: TraceContextInjection = .all)
        case traceWithHeaders(hostsWithHeaders: [String: Set<TracingHeaderType>],sampleRate: Float = 20,traceControlInjection: TraceContextInjection = .all)
    public init(firstPartyHostsTracing: RUM.Configuration.URLSessionTracking.FirstPartyHostsTracing? = nil,resourceAttributesProvider: RUM.ResourceAttributesProvider? = nil)
[?] extension RUM.Configuration
    public init(applicationID: String,sessionSampleRate: Float = 100,uiKitViewsPredicate: UIKitRUMViewsPredicate? = nil,uiKitActionsPredicate: UIKitRUMActionsPredicate? = nil,urlSessionTracking: URLSessionTracking? = nil,trackFrustrations: Bool = true,trackBackgroundEvents: Bool = false,longTaskThreshold: TimeInterval? = 0.1,appHangThreshold: TimeInterval? = nil,trackWatchdogTerminations: Bool = false,vitalsUpdateFrequency: VitalsFrequency? = .average,viewEventMapper: RUM.ViewEventMapper? = nil,resourceEventMapper: RUM.ResourceEventMapper? = nil,actionEventMapper: RUM.ActionEventMapper? = nil,errorEventMapper: RUM.ErrorEventMapper? = nil,longTaskEventMapper: RUM.LongTaskEventMapper? = nil,onSessionStart: RUM.SessionListener? = nil,customEndpoint: URL? = nil,telemetrySampleRate: Float = 20)
[?] extension InternalExtension where ExtendedType == RUM.Configuration
    public var configurationTelemetrySampleRate: Float
public class RUMMonitor
    public static func shared(in core: DatadogCoreProtocol = CoreRegistry.default) -> RUMMonitorProtocol
public extension RUMMonitorProtocol
    func startView(viewController: UIViewController,name: String? = nil,attributes: [AttributeKey: AttributeValue] = [:])
    func stopView(viewController: UIViewController,attributes: [AttributeKey: AttributeValue] = [:])
    func startView(key: String,name: String? = nil,attributes: [AttributeKey: AttributeValue] = [:])
    func stopView(key: String,attributes: [AttributeKey: AttributeValue] = [:])
    func addError(message: String,type: String? = nil,stack: String? = nil,source: RUMErrorSource = .custom,attributes: [AttributeKey: AttributeValue] = [:],file: StaticString? = #fileID,line: UInt? = #line)
    func addError(error: Error,source: RUMErrorSource = .custom,attributes: [AttributeKey: AttributeValue] = [:])
    func startResource(resourceKey: String,request: URLRequest,attributes: [AttributeKey: AttributeValue] = [:])
    func startResource(resourceKey: String,url: URL,attributes: [AttributeKey: AttributeValue] = [:])
    func startResource(resourceKey: String,httpMethod: RUMMethod,urlString: String,attributes: [AttributeKey: AttributeValue] = [:])
    func addResourceMetrics(resourceKey: String,metrics: URLSessionTaskMetrics,attributes: [AttributeKey: AttributeValue] = [:])
    func stopResource(resourceKey: String,response: URLResponse,size: Int64? = nil,attributes: [AttributeKey: AttributeValue] = [:])
    func stopResource(resourceKey: String,statusCode: Int? = nil,kind: RUMResourceType,size: Int64? = nil,attributes: [AttributeKey: AttributeValue] = [:])
    func stopResourceWithError(resourceKey: String,error: Error,response: URLResponse? = nil,attributes: [AttributeKey: AttributeValue] = [:])
    func stopResourceWithError(resourceKey: String,message: String,type: String? = nil,response: URLResponse? = nil,attributes: [AttributeKey: AttributeValue] = [:])
    func addAction(type: RUMActionType,name: String,attributes: [AttributeKey: AttributeValue] = [:])
    func startAction(type: RUMActionType,name: String,attributes: [AttributeKey: AttributeValue] = [:])
    func stopAction(type: RUMActionType,name: String? = nil,attributes: [AttributeKey: AttributeValue] = [:])
public extension RUMMonitorProtocol
    var _internal: DatadogInternalInterface?
public struct DatadogInternalInterface
    public func addLongTask(at time: Date,duration: TimeInterval,attributes: [AttributeKey: AttributeValue] = [:])
    public func updatePerformanceMetric(at time: Date,metric: PerformanceMetric,value: Double,attributes: [AttributeKey: AttributeValue] = [:])
    public func addResourceMetrics(at time: Date,resourceKey: String,fetch: (start: Date, end: Date),redirection: (start: Date, end: Date)?,dns: (start: Date, end: Date)?,connect: (start: Date, end: Date)?,ssl: (start: Date, end: Date)?,firstByte: (start: Date, end: Date)?,download: (start: Date, end: Date)?,responseSize: Int64?,attributes: [AttributeKey: AttributeValue] = [:])
public typealias RUMResourceType = RUMResourceEvent.Resource.ResourceType
public enum RUMActionType
    case tap
    case click
    case scroll
    case swipe
    case custom
public enum RUMErrorSource
    case source
    case network
    case webview
    case console
    case custom
public protocol RUMMonitorProtocol: AnyObject
    func addAttribute(forKey key: AttributeKey, value: AttributeValue)
    func removeAttribute(forKey key: AttributeKey)
    func currentSessionID(completion: @escaping (String?) -> Void)
    func stopSession()
    func startView(viewController: UIViewController,name: String?,attributes: [AttributeKey: AttributeValue])
    func stopView(viewController: UIViewController,attributes: [AttributeKey: AttributeValue])
    func startView(key: String,name: String?,attributes: [AttributeKey: AttributeValue])
    func stopView(key: String,attributes: [AttributeKey: AttributeValue])
    func addTiming(name: String)
    func addError(message: String,type: String?,stack: String?,source: RUMErrorSource,attributes: [AttributeKey: AttributeValue],file: StaticString?,line: UInt?)
    func addError(error: Error,source: RUMErrorSource,attributes: [AttributeKey: AttributeValue])
    func startResource(resourceKey: String,request: URLRequest,attributes: [AttributeKey: AttributeValue])
    func startResource(resourceKey: String,url: URL,attributes: [AttributeKey: AttributeValue])
    func startResource(resourceKey: String,httpMethod: RUMMethod,urlString: String,attributes: [AttributeKey: AttributeValue])
    func addResourceMetrics(resourceKey: String,metrics: URLSessionTaskMetrics,attributes: [AttributeKey: AttributeValue])
    func stopResource(resourceKey: String,response: URLResponse,size: Int64?,attributes: [AttributeKey: AttributeValue])
    func stopResource(resourceKey: String,statusCode: Int?,kind: RUMResourceType,size: Int64?,attributes: [AttributeKey: AttributeValue])
    func stopResourceWithError(resourceKey: String,error: Error,response: URLResponse?,attributes: [AttributeKey: AttributeValue])
    func stopResourceWithError(resourceKey: String,message: String,type: String?,response: URLResponse?,attributes: [AttributeKey: AttributeValue])
    func addAction(type: RUMActionType,name: String,attributes: [AttributeKey: AttributeValue])
    func startAction(type: RUMActionType,name: String,attributes: [AttributeKey: AttributeValue])
    func stopAction(type: RUMActionType,name: String?,attributes: [AttributeKey: AttributeValue])
    func addFeatureFlagEvaluation(name: String,value: Encodable)
    var debug: Bool
public enum PerformanceMetric
    case flutterBuildTime
    case flutterRasterTime
    case jsFrameTimeSeconds


# ----------------------------------
# API surface for DatadogCrashReporting:
# ----------------------------------

public final class CrashReporting
    public static func enable(in core: DatadogCoreProtocol = CoreRegistry.default)
public static func enable()


# ----------------------------------
# API surface for DatadogWebViewTracking:
# ----------------------------------

public final class objc_WebViewTracking: NSObject
    public static func enable(webView: WKWebView,hosts: Set<String> = [],logsSampleRate: Float = 100)
    public static func disable(webView: WKWebView)
public enum WebViewTracking
    public static func enable(webView: WKWebView,hosts: Set<String> = [],logsSampleRate: Float = 100,in core: DatadogCoreProtocol = CoreRegistry.default)
    public static func disable(webView: WKWebView)
[?] extension InternalExtension where ExtendedType == WebViewTracking
    public class AbstractMessageEmitter
        public func send(body: Any, slotId: String? = nil)
    public static func messageEmitter(in core: DatadogCoreProtocol,logsSampleRate: Float = 100) -> AbstractMessageEmitter


# ----------------------------------
# API surface for DatadogSessionReplay:
# ----------------------------------

[?] extension SRTextPosition.Alignment
    public init(systemTextAlignment: NSTextAlignment,vertical: SRTextPosition.Alignment.Vertical = .center)
public struct SRSegment: SRDataModel
    public let application: Application
    public let end: Int64
    public let hasFullSnapshot: Bool?
    public let indexInView: Int64?
    public let records: [SRRecord]
    public let recordsCount: Int64
    public let session: Session
    public let source: Source
    public let start: Int64
    public let view: View
    public struct Application: Codable
        public let id: String
    public struct Session: Codable
        public let id: String
    public enum Source: String, Codable
        case android = "android"
        case ios = "ios"
        case flutter = "flutter"
        case reactNative = "react-native"
    public struct View: Codable
        public let id: String
public struct SRShapeBorder: Codable, Hashable
    public let color: String
    public let width: Int64
public struct SRContentClip: Codable, Hashable
    public let bottom: Int64?
    public let left: Int64?
    public let right: Int64?
    public let top: Int64?
public struct SRShapeStyle: Codable, Hashable
    public let backgroundColor: String?
    public let cornerRadius: Double?
    public let opacity: Double?
public struct SRShapeWireframe: Codable, Hashable
    public let border: SRShapeBorder?
    public let clip: SRContentClip?
    public let height: Int64
    public let id: Int64
    public let shapeStyle: SRShapeStyle?
    public let type: String = "shape"
    public let width: Int64
    public let x: Int64
    public let y: Int64
public struct SRTextPosition: Codable, Hashable
    public let alignment: Alignment?
    public let padding: Padding?
    public struct Alignment: Codable, Hashable
        public let horizontal: Horizontal?
        public let vertical: Vertical?
        public enum Horizontal: String, Codable
            case left = "left"
            case right = "right"
            case center = "center"
        public enum Vertical: String, Codable
            case top = "top"
            case bottom = "bottom"
            case center = "center"
    public struct Padding: Codable, Hashable
        public let bottom: Int64?
        public let left: Int64?
        public let right: Int64?
        public let top: Int64?
public struct SRTextStyle: Codable, Hashable
    public let color: String
    public let family: String
    public let size: Int64
public struct SRTextWireframe: Codable, Hashable
    public let border: SRShapeBorder?
    public let clip: SRContentClip?
    public let height: Int64
    public let id: Int64
    public let shapeStyle: SRShapeStyle?
    public var text: String
    public let textPosition: SRTextPosition?
    public let textStyle: SRTextStyle
    public let type: String = "text"
    public let width: Int64
    public let x: Int64
    public let y: Int64
public struct SRImageWireframe: Codable, Hashable
    public var base64: String?
    public let border: SRShapeBorder?
    public let clip: SRContentClip?
    public let height: Int64
    public let id: Int64
    public var isEmpty: Bool?
    public var mimeType: String?
    public var resourceId: String?
    public let shapeStyle: SRShapeStyle?
    public let type: String = "image"
    public let width: Int64
    public let x: Int64
    public let y: Int64
public struct SRPlaceholderWireframe: Codable, Hashable
    public let clip: SRContentClip?
    public let height: Int64
    public let id: Int64
    public var label: String?
    public let type: String = "placeholder"
    public let width: Int64
    public let x: Int64
    public let y: Int64
public struct SRWebviewWireframe: Codable, Hashable
    public let border: SRShapeBorder?
    public let clip: SRContentClip?
    public let height: Int64
    public let id: Int64
    public let isVisible: Bool?
    public let shapeStyle: SRShapeStyle?
    public let slotId: String
    public let type: String = "webview"
    public let width: Int64
    public let x: Int64
    public let y: Int64
public enum SRWireframe: Codable
    case shapeWireframe(value: SRShapeWireframe)
    case textWireframe(value: SRTextWireframe)
    case imageWireframe(value: SRImageWireframe)
    case placeholderWireframe(value: SRPlaceholderWireframe)
    case webviewWireframe(value: SRWebviewWireframe)
    public func encode(to encoder: Encoder) throws
    public init(from decoder: Decoder) throws
public struct SRFullSnapshotRecord: Codable
    public let data: Data
    public let timestamp: Int64
    public let type: Int64 = 10
    public struct Data: Codable
        public let wireframes: [SRWireframe]
public struct SRIncrementalSnapshotRecord: Codable
    public let data: Data
    public let timestamp: Int64
    public let type: Int64 = 11
    public enum Data: Codable
        case mutationData(value: MutationData)
        case touchData(value: TouchData)
        case viewportResizeData(value: ViewportResizeData)
        case pointerInteractionData(value: PointerInteractionData)
        public func encode(to encoder: Encoder) throws
        public init(from decoder: Decoder) throws
        public struct MutationData: Codable
            public let adds: [Adds]
            public let removes: [Removes]
            public let source: Int64 = 0
            public let updates: [Updates]
            public struct Adds: Codable
                public let previousId: Int64?
                public let wireframe: SRWireframe
            public struct Removes: Codable
                public let id: Int64
            public enum Updates: Codable
                case textWireframeUpdate(value: TextWireframeUpdate)
                case shapeWireframeUpdate(value: ShapeWireframeUpdate)
                case imageWireframeUpdate(value: ImageWireframeUpdate)
                case placeholderWireframeUpdate(value: PlaceholderWireframeUpdate)
                case webviewWireframeUpdate(value: WebviewWireframeUpdate)
                public func encode(to encoder: Encoder) throws
                public init(from decoder: Decoder) throws
                public struct TextWireframeUpdate: Codable
                    public let border: SRShapeBorder?
                    public let clip: SRContentClip?
                    public let height: Int64?
                    public let id: Int64
                    public let shapeStyle: SRShapeStyle?
                    public var text: String?
                    public let textPosition: SRTextPosition?
                    public let textStyle: SRTextStyle?
                    public let type: String = "text"
                    public let width: Int64?
                    public let x: Int64?
                    public let y: Int64?
                public struct ShapeWireframeUpdate: Codable
                    public let border: SRShapeBorder?
                    public let clip: SRContentClip?
                    public let height: Int64?
                    public let id: Int64
                    public let shapeStyle: SRShapeStyle?
                    public let type: String = "shape"
                    public let width: Int64?
                    public let x: Int64?
                    public let y: Int64?
                public struct ImageWireframeUpdate: Codable
                    public var base64: String?
                    public let border: SRShapeBorder?
                    public let clip: SRContentClip?
                    public let height: Int64?
                    public let id: Int64
                    public var isEmpty: Bool?
                    public var mimeType: String?
                    public var resourceId: String?
                    public let shapeStyle: SRShapeStyle?
                    public let type: String = "image"
                    public let width: Int64?
                    public let x: Int64?
                    public let y: Int64?
                public struct PlaceholderWireframeUpdate: Codable
                    public let clip: SRContentClip?
                    public let height: Int64?
                    public let id: Int64
                    public var label: String?
                    public let type: String = "placeholder"
                    public let width: Int64?
                    public let x: Int64?
                    public let y: Int64?
                public struct WebviewWireframeUpdate: Codable
                    public let border: SRShapeBorder?
                    public let clip: SRContentClip?
                    public let height: Int64?
                    public let id: Int64
                    public let isVisible: Bool?
                    public let shapeStyle: SRShapeStyle?
                    public let slotId: String
                    public let type: String = "webview"
                    public let width: Int64?
                    public let x: Int64?
                    public let y: Int64?
        public struct TouchData: Codable
            public let positions: [Positions]?
            public let source: Int64 = 2
            public struct Positions: Codable
                public let id: Int64
                public let timestamp: Int64
                public let x: Int64
                public let y: Int64
        public struct ViewportResizeData: Codable
            public let height: Int64
            public let source: Int64 = 4
            public let width: Int64
        public struct PointerInteractionData: Codable
            public let pointerEventType: PointerEventType
            public let pointerId: Int64
            public let pointerType: PointerType
            public let source: Int64 = 9
            public let x: Double
            public let y: Double
            public enum PointerEventType: String, Codable
                case down = "down"
                case up = "up"
                case move = "move"
            public enum PointerType: String, Codable
                case mouse = "mouse"
                case touch = "touch"
                case pen = "pen"
public struct SRMetaRecord: Codable
    public let data: Data
    public let slotId: String?
    public let timestamp: Int64
    public let type: Int64 = 4
    public struct Data: Codable
        public let height: Int64
        public let href: String?
        public let width: Int64
public struct SRFocusRecord: Codable
    public let data: Data
    public let slotId: String?
    public let timestamp: Int64
    public let type: Int64 = 6
    public struct Data: Codable
        public let hasFocus: Bool
public struct SRViewEndRecord: Codable
    public let slotId: String?
    public let timestamp: Int64
    public let type: Int64 = 7
public struct SRVisualViewportRecord: Codable
    public let data: Data
    public let slotId: String?
    public let timestamp: Int64
    public let type: Int64 = 8
    public struct Data: Codable
        public let height: Double
        public let offsetLeft: Double
        public let offsetTop: Double
        public let pageLeft: Double
        public let pageTop: Double
        public let scale: Double
        public let width: Double
public enum SRRecord: Codable
    case fullSnapshotRecord(value: SRFullSnapshotRecord)
    case incrementalSnapshotRecord(value: SRIncrementalSnapshotRecord)
    case metaRecord(value: SRMetaRecord)
    case focusRecord(value: SRFocusRecord)
    case viewEndRecord(value: SRViewEndRecord)
    case visualViewportRecord(value: SRVisualViewportRecord)
    public func encode(to encoder: Encoder) throws
    public init(from decoder: Decoder) throws
public typealias WireframeID = NodeID
public class SessionReplayWireframesBuilder
    public struct FontOverride
        public init(size: CGFloat?)
    public func createShapeWireframe(id: WireframeID,frame: CGRect,clip: SRContentClip? = nil,borderColor: CGColor? = nil,borderWidth: CGFloat? = nil,backgroundColor: CGColor? = nil,cornerRadius: CGFloat? = nil,opacity: CGFloat? = nil) -> SRWireframe
    public func createImageWireframe(id: WireframeID,resource: SessionReplayResource,frame: CGRect,mimeType: String = "png",clip: SRContentClip? = nil,borderColor: CGColor? = nil,borderWidth: CGFloat? = nil,backgroundColor: CGColor? = nil,cornerRadius: CGFloat? = nil,opacity: CGFloat? = nil) -> SRWireframe
    public func createTextWireframe(id: WireframeID,frame: CGRect,text: String,textFrame: CGRect? = nil,textAlignment: SRTextPosition.Alignment? = nil,clip: SRContentClip? = nil,textColor: CGColor? = nil,font: UIFont? = nil,fontOverride: FontOverride? = nil,fontScalingEnabled: Bool = false,borderColor: CGColor? = nil,borderWidth: CGFloat? = nil,backgroundColor: CGColor? = nil,cornerRadius: CGFloat? = nil,opacity: CGFloat? = nil) -> SRWireframe
    public func createPlaceholderWireframe(id: Int64,frame: CGRect,label: String,clip: SRContentClip? = nil) -> SRWireframe
    public func visibleWebViewWireframe(id: Int,frame: CGRect,clip: SRContentClip? = nil,borderColor: CGColor? = nil,borderWidth: CGFloat? = nil,backgroundColor: CGColor? = nil,cornerRadius: CGFloat? = nil,opacity: CGFloat? = nil) -> SRWireframe
    public func hiddenWebViewWireframes() -> [SRWireframe]
[?] extension SRContentClip
    public static func create(bottom: Int64?,left: Int64?,right: Int64?,top: Int64?) -> SRContentClip
[?] extension SRImageWireframe
    public static func == (lhs: SRImageWireframe, rhs: SRImageWireframe) -> Bool
    public func hash(into hasher: inout Hasher)
public protocol SessionReplayTextObfuscating
    func mask(text: String) -> String
public extension PrivacyLevel
    var sensitiveTextObfuscator: SessionReplayTextObfuscating
    var inputAndOptionTextObfuscator: SessionReplayTextObfuscating
    var staticTextObfuscator: SessionReplayTextObfuscating
    var hintTextObfuscator: SessionReplayTextObfuscating
public class Recorder: Recording
    public struct Context: Equatable
        public let privacy: SessionReplayPrivacyLevel
    deinit
public typealias NodeID = Int64
public final class NodeIDGenerator
    public func nodeID(view: UIView, nodeRecorder: SessionReplayNodeRecorder) -> NodeID
public protocol SessionReplayNodeRecorder
    func semantics(of view: UIView, with attributes: SessionReplayViewAttributes, in context: SessionReplayViewTreeRecordingContext) -> SessionReplayNodeSemantics?
    var identifier: UUID
public protocol SessionReplayNodeWireframesBuilder
    var wireframeRect: CGRect
    func buildWireframes(with builder: SessionReplayWireframesBuilder) -> [SRWireframe]
public struct SessionReplayViewTreeRecordingContext
    public let recorder: Recorder.Context
    public let ids: NodeIDGenerator
public struct SessionReplayNode
    public let viewAttributes: SessionReplayViewAttributes
    public let wireframesBuilder: SessionReplayNodeWireframesBuilder
    public init(viewAttributes: SessionReplayViewAttributes, wireframesBuilder: SessionReplayNodeWireframesBuilder)
public protocol SessionReplayResource
    func calculateIdentifier() -> String
    func calculateData() -> Data
public struct SessionReplayViewAttributes: Equatable
    public let frame: CGRect
    public let backgroundColor: CGColor?
    public let layerBorderColor: CGColor?
    public let layerBorderWidth: CGFloat
    public let layerCornerRadius: CGFloat
    public let alpha: CGFloat
public protocol SessionReplayNodeSemantics
    static var importance: Int
    var subtreeStrategy: SessionReplayNodeSubtreeStrategy
    var nodes: [SessionReplayNode]
public enum SessionReplayNodeSubtreeStrategy
    case record
    case ignore
public struct SessionReplayInvisibleElement: SessionReplayNodeSemantics
    public static let importance: Int = 0
    public let subtreeStrategy: SessionReplayNodeSubtreeStrategy
    public let nodes: [SessionReplayNode] = []
    public static let constant = SessionReplayInvisibleElement()
public struct SessionReplaySpecificElement: SessionReplayNodeSemantics
    public static let importance: Int = .max
    public let subtreeStrategy: SessionReplayNodeSubtreeStrategy
    public let nodes: [SessionReplayNode]
    public init(subtreeStrategy: SessionReplayNodeSubtreeStrategy,nodes: [SessionReplayNode])
public final class DDSessionReplay: NSObject
    public static func enable(with configuration: DDSessionReplayConfiguration)
public final class DDSessionReplayConfiguration: NSObject
    @objc public var replaySampleRate: Float
    @objc public var defaultPrivacyLevel: DDSessionReplayConfigurationPrivacyLevel
    @objc public var customEndpoint: URL?
    public required init(replaySampleRate: Float)
public enum DDSessionReplayConfigurationPrivacyLevel: Int
    case allow
    case mask
    case maskUserInput
public enum SessionReplay
    public static func enable(with configuration: SessionReplay.Configuration,in core: DatadogCoreProtocol = CoreRegistry.default)
    public static func startRecording(in core: DatadogCoreProtocol = CoreRegistry.default)
    public static func stopRecording(in core: DatadogCoreProtocol = CoreRegistry.default)
[?] extension SessionReplay
    public struct Configuration
        public var replaySampleRate: Float
        public var defaultPrivacyLevel: SessionReplayPrivacyLevel
        public var startRecordingImmediately: Bool
        public var customEndpoint: URL?
        public init(replaySampleRate: Float,defaultPrivacyLevel: SessionReplayPrivacyLevel = .mask,startRecordingImmediately: Bool = true,customEndpoint: URL? = nil)
        public mutating func setAdditionalNodeRecorders(_ additionalNodeRecorders: [SessionReplayNodeRecorder])
