#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: SDSAnalytics

#include "Basic.hpp"

#include "DeveloperSettings_classes.hpp"
#include "Engine_classes.hpp"


namespace SDK
{

// Class SDSAnalytics.SDSAnalyticsSettings
// 0x0010 (0x0048 - 0x0038)
class USDSAnalyticsSettings final : public UDeveloperSettings
{
public:
	bool                                          bEnableFPSRecorder;                                // 0x0038(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_39[0x3];                                       // 0x0039(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	float                                         FPSRecorderIntervalSeconds;                        // 0x003C(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bLightsUnbuiltInteractionsInFPSAnalytics;          // 0x0040(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bAutoStartFPSRecorder;                             // 0x0041(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_42[0x6];                                       // 0x0042(0x0006)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"SDSAnalyticsSettings">();
	}
	static class USDSAnalyticsSettings* GetDefaultObj()
	{
		return GetDefaultObjImpl<USDSAnalyticsSettings>();
	}
};
static_assert(alignof(USDSAnalyticsSettings) == 0x000008, "Wrong alignment on USDSAnalyticsSettings");
static_assert(sizeof(USDSAnalyticsSettings) == 0x000048, "Wrong size on USDSAnalyticsSettings");
static_assert(offsetof(USDSAnalyticsSettings, bEnableFPSRecorder) == 0x000038, "Member 'USDSAnalyticsSettings::bEnableFPSRecorder' has a wrong offset!");
static_assert(offsetof(USDSAnalyticsSettings, FPSRecorderIntervalSeconds) == 0x00003C, "Member 'USDSAnalyticsSettings::FPSRecorderIntervalSeconds' has a wrong offset!");
static_assert(offsetof(USDSAnalyticsSettings, bLightsUnbuiltInteractionsInFPSAnalytics) == 0x000040, "Member 'USDSAnalyticsSettings::bLightsUnbuiltInteractionsInFPSAnalytics' has a wrong offset!");
static_assert(offsetof(USDSAnalyticsSettings, bAutoStartFPSRecorder) == 0x000041, "Member 'USDSAnalyticsSettings::bAutoStartFPSRecorder' has a wrong offset!");

// Class SDSAnalytics.SDSSendUserHeartbeat
// 0x0018 (0x0048 - 0x0030)
class USDSSendUserHeartbeat final : public UBlueprintAsyncActionBase
{
public:
	TMulticastInlineDelegate<void(bool bResult)>  OnCompleted;                                       // 0x0030(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	uint8                                         Pad_40[0x8];                                       // 0x0040(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class USDSSendUserHeartbeat* SendUserHeartbeatTelemetry(const class UObject* WorldContextObject);

	void OnTelemetrySubmitted(bool bResult, const class FString& EventName);

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"SDSSendUserHeartbeat">();
	}
	static class USDSSendUserHeartbeat* GetDefaultObj()
	{
		return GetDefaultObjImpl<USDSSendUserHeartbeat>();
	}
};
static_assert(alignof(USDSSendUserHeartbeat) == 0x000008, "Wrong alignment on USDSSendUserHeartbeat");
static_assert(sizeof(USDSSendUserHeartbeat) == 0x000048, "Wrong size on USDSSendUserHeartbeat");
static_assert(offsetof(USDSSendUserHeartbeat, OnCompleted) == 0x000030, "Member 'USDSSendUserHeartbeat::OnCompleted' has a wrong offset!");

// Class SDSAnalytics.SDSSendUserLogin
// 0x0018 (0x0048 - 0x0030)
class USDSSendUserLogin final : public UBlueprintAsyncActionBase
{
public:
	TMulticastInlineDelegate<void(bool bResult)>  OnCompleted;                                       // 0x0030(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	uint8                                         Pad_40[0x8];                                       // 0x0040(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class USDSSendUserLogin* SendUserLoginTelemetry(class USDSOnlineAccount* OnlineAccount);

	void OnFetchEntitlements(const TMap<class FString, class USDSEntitlement*>& Entitlements);
	void OnTelemetrySubmitted(bool bResult, const class FString& EventName);

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"SDSSendUserLogin">();
	}
	static class USDSSendUserLogin* GetDefaultObj()
	{
		return GetDefaultObjImpl<USDSSendUserLogin>();
	}
};
static_assert(alignof(USDSSendUserLogin) == 0x000008, "Wrong alignment on USDSSendUserLogin");
static_assert(sizeof(USDSSendUserLogin) == 0x000048, "Wrong size on USDSSendUserLogin");
static_assert(offsetof(USDSSendUserLogin, OnCompleted) == 0x000030, "Member 'USDSSendUserLogin::OnCompleted' has a wrong offset!");

// Class SDSAnalytics.SDSSendUserLogout
// 0x0018 (0x0048 - 0x0030)
class USDSSendUserLogout final : public UBlueprintAsyncActionBase
{
public:
	TMulticastInlineDelegate<void(bool bResult)>  OnCompleted;                                       // 0x0030(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	uint8                                         Pad_40[0x8];                                       // 0x0040(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class USDSSendUserLogout* SendUserLogoutTelemetry(class USDSOnlineAccount* OnlineAccount);

	void OnTelemetrySubmitted(bool bResult, const class FString& EventName);

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"SDSSendUserLogout">();
	}
	static class USDSSendUserLogout* GetDefaultObj()
	{
		return GetDefaultObjImpl<USDSSendUserLogout>();
	}
};
static_assert(alignof(USDSSendUserLogout) == 0x000008, "Wrong alignment on USDSSendUserLogout");
static_assert(sizeof(USDSSendUserLogout) == 0x000048, "Wrong size on USDSSendUserLogout");
static_assert(offsetof(USDSSendUserLogout, OnCompleted) == 0x000030, "Member 'USDSSendUserLogout::OnCompleted' has a wrong offset!");

// Class SDSAnalytics.SDSTelemetryUtils
// 0x0000 (0x0028 - 0x0028)
class USDSTelemetryUtils final : public UBlueprintFunctionLibrary
{
public:
	static struct FIntPoint GetDynamicResolution();
	static class FString GetProjectVersion();
	static class FString GetSessionId();
	static void SendTelemetry(const class FString& EventName, const struct FSDSTelemetryBase& Telemetry);

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"SDSTelemetryUtils">();
	}
	static class USDSTelemetryUtils* GetDefaultObj()
	{
		return GetDefaultObjImpl<USDSTelemetryUtils>();
	}
};
static_assert(alignof(USDSTelemetryUtils) == 0x000008, "Wrong alignment on USDSTelemetryUtils");
static_assert(sizeof(USDSTelemetryUtils) == 0x000028, "Wrong size on USDSTelemetryUtils");

}

