// Generated by Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28)
#ifndef MIPSDKMOBILE_SWIFT_H
#define MIPSDKMOBILE_SWIFT_H
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wgcc-compat"

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

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

#pragma clang diagnostic ignored "-Wauto-import"
#include <Foundation/Foundation.h>
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>

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

#if !defined(SWIFT_PASTE)
# define SWIFT_PASTE_HELPER(x, y) x##y
# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
#endif
#if !defined(SWIFT_METATYPE)
# define SWIFT_METATYPE(X) Class
#endif
#if !defined(SWIFT_CLASS_PROPERTY)
# if __has_feature(objc_class_property)
#  define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
# else
#  define SWIFT_CLASS_PROPERTY(...)
# endif
#endif

#if __has_attribute(objc_runtime_name)
# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
#else
# define SWIFT_RUNTIME_NAME(X)
#endif
#if __has_attribute(swift_name)
# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
#else
# define SWIFT_COMPILE_NAME(X)
#endif
#if __has_attribute(objc_method_family)
# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
#else
# define SWIFT_METHOD_FAMILY(X)
#endif
#if __has_attribute(noescape)
# define SWIFT_NOESCAPE __attribute__((noescape))
#else
# define SWIFT_NOESCAPE
#endif
#if __has_attribute(ns_consumed)
# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
#else
# define SWIFT_RELEASES_ARGUMENT
#endif
#if __has_attribute(warn_unused_result)
# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
#else
# define SWIFT_WARN_UNUSED_RESULT
#endif
#if __has_attribute(noreturn)
# define SWIFT_NORETURN __attribute__((noreturn))
#else
# define SWIFT_NORETURN
#endif
#if !defined(SWIFT_CLASS_EXTRA)
# define SWIFT_CLASS_EXTRA
#endif
#if !defined(SWIFT_PROTOCOL_EXTRA)
# define SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_ENUM_EXTRA)
# define SWIFT_ENUM_EXTRA
#endif
#if !defined(SWIFT_CLASS)
# if __has_attribute(objc_subclassing_restricted)
#  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
#  define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# else
#  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
#  define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# endif
#endif
#if !defined(SWIFT_RESILIENT_CLASS)
# if __has_attribute(objc_class_stub)
#  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
#  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
# else
#  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
#  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
# endif
#endif

#if !defined(SWIFT_PROTOCOL)
# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
#endif

#if !defined(SWIFT_EXTENSION)
# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
#endif

#if !defined(OBJC_DESIGNATED_INITIALIZER)
# if __has_attribute(objc_designated_initializer)
#  define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
# else
#  define OBJC_DESIGNATED_INITIALIZER
# endif
#endif
#if !defined(SWIFT_ENUM_ATTR)
# if defined(__has_attribute) && __has_attribute(enum_extensibility)
#  define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
# else
#  define SWIFT_ENUM_ATTR(_extensibility)
# endif
#endif
#if !defined(SWIFT_ENUM)
# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
# if __has_feature(generalized_swift_name)
#  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
# else
#  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
# endif
#endif
#if !defined(SWIFT_UNAVAILABLE)
# define SWIFT_UNAVAILABLE __attribute__((unavailable))
#endif
#if !defined(SWIFT_UNAVAILABLE_MSG)
# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
#endif
#if !defined(SWIFT_AVAILABILITY)
# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
#endif
#if !defined(SWIFT_WEAK_IMPORT)
# define SWIFT_WEAK_IMPORT __attribute__((weak_import))
#endif
#if !defined(SWIFT_DEPRECATED)
# define SWIFT_DEPRECATED __attribute__((deprecated))
#endif
#if !defined(SWIFT_DEPRECATED_MSG)
# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
#endif
#if __has_feature(attribute_diagnose_if_objc)
# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
#else
# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
#endif
#if !defined(IBSegueAction)
# define IBSegueAction
#endif
#if __has_feature(modules)
#if __has_warning("-Watimport-in-framework-header")
#pragma clang diagnostic ignored "-Watimport-in-framework-header"
#endif
@import CoreGraphics;
@import Foundation;
@import ObjectiveC;
#endif

#import <MIPSDKMobile/MIPSDKMobile.h>

#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
#pragma clang diagnostic ignored "-Wduplicate-method-arg"
#if __has_warning("-Wpragma-clang-attribute")
# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
#endif
#pragma clang diagnostic ignored "-Wunknown-pragmas"
#pragma clang diagnostic ignored "-Wnullability"

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

@class NSDictionary;
@class XPSDKResponse;
@class NSError;
@class XPSDKRequest;
@class XPSDKServerInfo;
@class NSDate;
@class XPSDKVideoConnection;
@class NSNumber;
@class NSArray;
enum XPSDKPTZMotion : NSInteger;
@class XPSDKCameraPTZPreset;
@protocol XPMobileSDKConnectionDelegate;

/// Class through which all the commands to server are called
SWIFT_CLASS("_TtC12MIPSDKMobile11XPMobileSDK")
@interface XPMobileSDK : NSObject
/// Server features of the main connection
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) NSDictionary * _Nullable serverFeatures;)
+ (NSDictionary * _Nullable)serverFeatures SWIFT_WARN_UNUSED_RESULT;
/// Execute a generic command that follows Mobile Server Protocol command structure. This command enables you to send commands to the Milestone Mobile Server that are not yet implemented in the MIP SDK Mobile.
/// More details about the Mobile Server commands could be found in the Mobile Server Protocol documentation.
/// \param name string value, representing the Mobile Server protocol command name
///
/// \param parameters dictionary containing the command input parameters
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)sendCommandWithName:(NSString * _Nonnull)name parameters:(NSDictionary<NSString *, NSString *> * _Nullable)parameters successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Executes a connect command to establish a new connection with a server.
/// More details about the Connect command could be found in the Mobile Server Protocol documentation.
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)connectWithSuccessHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Disconnects from server - logs out current user
/// More details about the Disconnect command could be found in the Mobile Server Protocol documentation.
+ (XPSDKRequest * _Nonnull)disconnect;
/// Disconnects from server - logs out current user
/// More details about the Disconnect command could be found in the Mobile Server Protocol documentation.
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)disconnectWithSuccessHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler SWIFT_WARN_UNUSED_RESULT;
/// Connects to server with url method
/// More details about the Connect command could be found in the Mobile Server Protocol documentation.
/// \param urlString The URL String to which will connect
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)connectWithURLString:(NSString * _Nonnull)urlString successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Connects to server with server info
/// More details about the Connect command could be found in the Mobile Server Protocol documentation.
/// \param serverInfo Server info that contains information about server host, port and secure connection flag
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)connectWithServerInfo:(XPSDKServerInfo * _Nonnull)serverInfo successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Login
/// More details about the Login command could be found in the Mobile Server Protocol documentation.
/// \param username The username
///
/// \param password The password
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)loginForUsername:(NSString * _Nonnull)username password:(NSString * _Nonnull)password shouldSave:(BOOL)shouldSave successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Login
/// More details about the Connect and Login commands could be found in the Mobile Server Protocol documentation.
/// \param urlString The URL String to which will connect
///
/// \param username The username
///
/// \param password The password
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)connectAndLoginForURLString:(NSString * _Nonnull)urlString username:(NSString * _Nonnull)username password:(NSString * _Nonnull)password shouldSave:(BOOL)shouldSave successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Connect and login - first connects to a server, and then logins the user
/// More details about the Connect and Login commands could be found in the Mobile Server Protocol documentation.
/// \param serverInfo A object of clas XPSDKServerInfo, containing server information
///
/// \param username The username
///
/// \param password The password
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)connectAndLoginForServerInfo:(XPSDKServerInfo * _Nonnull)serverInfo username:(NSString * _Nonnull)username password:(NSString * _Nonnull)password shouldSave:(BOOL)shouldSave successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Requests second step authentication pin
/// More details about the SecondStepAuthentication command could be found in the Mobile Server Protocol documentation.
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)requestSecondStepAuthenticationPinWithSuccessHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Verifies second step authentication pin
/// More details about the SecondStepAuthentication command could be found in the Mobile Server Protocol documentation.
/// \param pin The second step authentication pin
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)verifySecondStepAuthenticationPinWithPin:(NSString * _Nonnull)pin successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Request stream method
/// \param cameraID the ID of camera for which the video stream is requested
///
/// \param size The size of the video to be streamed
///
/// \param method Type of the method for retrieving video data (Push or Pull)
///
/// \param signal Type of the requested signal (live, playback or upload)
///
/// \param fps Frame rate of the requested video (frames per second)
///
/// \param userInitiatedDownsampling Flag to indicate whether user has initiated downsampling
///
/// \param keyFramesOnly * Parameter Flag to indicate whether to request only key frames 
///
/// \param resizeSupported * Parameter Flag to indicate whether resizing is supported 
///
/// \param closeConnectionOnError Close the video channel if an error occured
///
/// \param successHandler The success block which returns XPSDKResponse and the newly created video connection
///
/// \param failureHandler The failure block which returns NSError
/// More details about the RequestStream command could be found in the Mobile Server Protocol documentation.
///
+ (XPSDKRequest * _Nonnull)requestStreamForCameraID:(XPSDKViewID _Nullable)cameraID size:(CGSize)size method:(XPSDKVideoConnectionMethod)method signal:(XPSDKVideoConnectionSignal)signal fps:(NSInteger)fps compressionLevel:(NSInteger)compressionLevel userInitiatedDownsampling:(BOOL)userInitiatedDownsampling keyFramesOnly:(BOOL)keyFramesOnly resizeSupported:(BOOL)resizeSupported time:(NSDate * _Nullable)time upstreamImageQuality:(float)upstreamImageQuality closeConnectionOnError:(NSString * _Nullable)closeConnectionOnError successHandler:(void (^ _Nonnull)(XPSDKResponse * _Nonnull, XPSDKVideoConnection * _Nonnull))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Request  direct stream method
/// \param cameraID the ID of camera for which the video stream is requested
///
/// \param streamType (Optional) Type of stream (could be “FragmentedMP4” for direct streaming or “Transcoded” for transcoding. The default value is “Transcoded” )
///
/// \param size The size of the video to be streamed
///
/// \param method Type of the method for retrieving video data (Push or Pull)
///
/// \param signal Type of the requested signal (live, playback or upload)
///
/// \param fps Frame rate of the requested video (frames per second)
///
/// \param userInitiatedDownsampling Flag to indicate whether user has initiated downsampling
///
/// \param keyFramesOnly * Parameter Flag to indicate whether to request only key frames 
///
/// \param resizeSupported * Parameter Flag to indicate whether resizing is supported 
///
/// \param closeConnectionOnError Close the video channel if an error occured
///
/// \param successHandler The success block which returns XPSDKResponse and the newly created video connection
///
/// \param failureHandler The failure block which returns NSError
/// More details about the RequestStream command could be found in the Mobile Server Protocol documentation.
///
+ (XPSDKRequest * _Nonnull)requestStreamForCameraID:(XPSDKViewID _Nullable)cameraID streamType:(NSString * _Nullable)streamType size:(CGSize)size method:(XPSDKVideoConnectionMethod)method signal:(XPSDKVideoConnectionSignal)signal fps:(NSInteger)fps compressionLevel:(NSInteger)compressionLevel userInitiatedDownsampling:(BOOL)userInitiatedDownsampling keyFramesOnly:(BOOL)keyFramesOnly resizeSupported:(BOOL)resizeSupported time:(NSDate * _Nullable)time timeRangeBegin:(NSNumber * _Nullable)timeRangeBegin timeRangeEnd:(NSNumber * _Nullable)timeRangeEnd upstreamImageQuality:(float)upstreamImageQuality closeConnectionOnError:(NSString * _Nullable)closeConnectionOnError successHandler:(void (^ _Nonnull)(XPSDKResponse * _Nonnull, XPSDKVideoConnection * _Nonnull))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Send RequestInvestigationStream command for a camera and investigation with specified size, signal and method
/// More details about the RequestStream command could be found in the Mobile Server Protocol documentation.
/// \param cameraID The ID of the camera, as provided by the GetSubViews response
///
/// \param investigationID id of the associated investigation
///
/// \param seekType - Parameter seekType: Makes seek of specific type e.g. PrevSeq, NextSeq
///
/// \param size The dimensions of the image we want to receive. The server will stretch the image to this size, so make sure it matches the aspect ratio of the camera!
///
/// \param method Use this parameter to set to Push or Pull method
///
/// \param keyFramesOnly Use this parameter to request key frames only
///
/// \param resizeSupported Set to YES to enable support for no-scaled and no-cropped images sent from the mobile server
///
/// \param startTime seek time
///
/// \param userInitiatedDownsampling [Yes/No] When present and equal to “Yes”, indicates that the client requires all sent images to be downsized at least by two (half the requested width and height). SupportsResampling must be set explicitly to “Yes”.
///
/// \param compressionLevel Compression level of the received JPEG images (1 - 100)
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)requestInvestigationStreamWithCameraID:(NSString * _Nonnull)cameraID investigationID:(NSString * _Nullable)investigationID seekType:(NSString * _Nonnull)seekType size:(CGSize)size method:(XPSDKVideoConnectionMethod)method keyFramesOnly:(BOOL)keyFramesOnly resizeSupported:(BOOL)resizeSupported startTime:(NSNumber * _Nullable)startTime fps:(NSInteger)fps userInitiatedDownsampling:(BOOL)userInitiatedDownsampling compressionLevel:(NSInteger)compressionLevel successHandler:(void (^ _Nonnull)(XPSDKResponse * _Nonnull, XPSDKVideoConnection * _Nonnull))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Cancels request for stream
/// \param request The request that will be cancelled
///
+ (void)cancelRequestStreamWithRequest:(XPSDKRequest * _Nonnull)request;
/// Changes the parameter ‘fps’ of the existing video connection
/// More details about the ChangeStream command could be found in the Mobile Server Protocol documentation.
/// \param videoID ID of the video connection (GUID)
///
/// \param fps new value for frames per second
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)changeStreamForVideoID:(NSString * _Nonnull)videoID fps:(NSInteger)fps successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Changes the parameters ‘size’ and ‘source rectangle’ of the existing video connection
/// More details about the ChangeStream command could be found in the Mobile Server Protocol documentation.
/// \param videoID ID of the video connection (GUID)
///
/// \param size The new size of the video (Width and Height in pixels)
///
/// \param sourceRect The coordinates of the cropping rectangle (Top, Left, Right, Bottom)
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)changeStreamForVideoID:(NSString * _Nonnull)videoID size:(CGSize)size sourceRect:(CGRect)sourceRect successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Changes the parameter ‘playback speed’ of the existing video connection
/// More details about the ChangeStream command could be found in the Mobile Server Protocol documentation.
/// \param videoID ID of the video connection (GUID)
///
/// \param playSpeed Speed of the playback (floating point). Sign determines the direction.
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)changeStreamForVideoID:(NSString * _Nonnull)videoID playSpeed:(float)playSpeed successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Change stream with size
/// Parameter videoID: ID of the video connection (GUID)
/// Parameter size: The new size of the video (Width and Height in pixels)
/// Parameter successHandler: The success block which returns XPSDKResponse
/// Parameter failureHandler: The failure block which returns NSError
+ (void)changeStreamForVideoID:(NSString * _Nonnull)videoID size:(CGSize)size successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Change stream with source rectangle
/// Parameter videoID: ID of the video connection (GUID)
/// Parameter sourceRect: The coordinates of the cropping rectangle (Top, Left, Right, Bottom)
/// Parameter successHandler: The success block which returns XPSDKResponse
/// Parameter failureHandler: The failure block which returns NSError
+ (void)changeStreamForVideoID:(NSString * _Nonnull)videoID sourceRect:(CGRect)sourceRect successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Request to start live or payback audio session
/// \param micId Id of the microphone, which stream is requested (GUID)
///
/// \param playbackControllerId (optional; needed for playback) Id of the playback controller used for common playback control. Use an ID of a video stream with which the audio source is associated.
///
/// \param audioEncoding Shows the encoding of the output. Possible values: Pcm/Mp3.
///
/// \param signalType Type of the requested signal. Possible values: Live/Playback
///
/// \param methodType Type of the method for retrieving video data. Possible values: Push/Pull
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)requestAudioStreamForMicrophoneId:(NSString * _Nonnull)micId playbackControllerId:(NSString * _Nullable)playbackControllerId audioEncoding:(NSString * _Nonnull)audioEncoding signalType:(NSString * _Nonnull)signalType methodType:(NSString * _Nonnull)methodType successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler SWIFT_DEPRECATED_MSG("Use requestAudioStream(forMicrophoneId:playbackControllerId:investigationId:audioEncoding:signalType:methodType:successHandler:failureHandler:)");
/// Request to start live or payback audio session
/// \param micId Id of the microphone, which stream is requested (GUID)
///
/// \param playbackControllerId (optional; needed for playback) Id of the playback controller used for common playback control. Use an ID of a video stream with which the audio source is associated.
///
/// \param investigationId (optional; needed for investigations) Id of the investigation if the audio was requested for investigation
///
/// \param audioEncoding Shows the encoding of the output. Possible values: Pcm/Mp3.
///
/// \param signalType Type of the requested signal. Possible values: Live/Playback
///
/// \param methodType Type of the method for retrieving video data. Possible values: Push/Pull
///
/// \param closeConnectionOnError (Opitional) Close the audio channel if an error occured
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)requestAudioStreamForMicrophoneId:(NSString * _Nonnull)micId playbackControllerId:(NSString * _Nullable)playbackControllerId investigationId:(NSString * _Nullable)investigationId audioEncoding:(NSString * _Nonnull)audioEncoding signalType:(NSString * _Nonnull)signalType methodType:(NSString * _Nonnull)methodType closeConnectionOnError:(NSString * _Nullable)closeConnectionOnError successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Request more sources in payback audio session
/// \param itemId Ids of the devices, which stream is requested (GUID)
///
/// \param playbackControllerId (optional; needed for playback) Id of the playback controller used for common playback control. Use an ID of a video stream with which the audio source is associated.
///
/// \param investigationId (optional; needed for investigations) Id of the investigation if the audio was requested for investigation
///
/// \param audioEncoding Shows the encoding of the output. Possible values: Pcm/Mp3.
///
/// \param signalType Type of the requested signal. Possible values: Live/Playback
///
/// \param methodType Type of the method for retrieving video data. Possible values: Push/Pull
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)requestAudioStreamForItemIDs:(NSArray * _Nonnull)itemIds playbackControllerId:(NSString * _Nullable)playbackControllerId investigationId:(NSString * _Nullable)investigationId audioEncoding:(NSString * _Nonnull)audioEncoding signalType:(NSString * _Nonnull)signalType methodType:(NSString * _Nonnull)methodType successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
+ (void)closeAudioStreamForAudioId:(NSString * _Nonnull)audioId successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets previous sequence of playback video
/// More details about the ChangeStream command could be found in the Mobile Server Protocol documentation.
/// \param videoID ID of the video connection (GUID)
///
/// \param speed speed of the sequence
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)previousSequenceForVideoID:(NSString * _Nonnull)videoID speed:(NSString * _Nullable)speed successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets next sequence of playback video
/// More details about the ChangeStream command could be found in the Mobile Server Protocol documentation.
/// \param videoID ID of the video connection (GUID)
///
/// \param speed speed of the sequence
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)nextSequenceForVideoID:(NSString * _Nonnull)videoID speed:(NSString * _Nullable)speed successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets previous frame of playback video
/// More details about the ChangeStream command could be found in the Mobile Server Protocol documentation.
/// \param videoID ID of the video connection (GUID)
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)previousFrameForVideoID:(NSString * _Nonnull)videoID successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets next frame of playback video
/// More details about the ChangeStream command could be found in the Mobile Server Protocol documentation.
/// \param videoID ID of the video connection (GUID)
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)nextFrameForVideoID:(NSString * _Nonnull)videoID successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Seeks to timestamp in playback video
/// More details about the ChangeStream command could be found in the Mobile Server Protocol documentation.
/// \param videoID ID of the video connection (GUID)
///
/// \param timestamp Timestamp
///
/// \param seekType seek type
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)seekToTimestampForVideoID:(NSString * _Nonnull)videoID timestamp:(NSNumber * _Nonnull)timestamp seekType:(NSString * _Nonnull)seekType successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Seeks to time in playback video
/// More details about the ChangeStream command could be found in the Mobile Server Protocol documentation.
/// \param videoID ID of the video connection (GUID)
///
/// \param time time (NSDate)
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)seekToTimeForVideoID:(NSString * _Nonnull)videoID time:(NSDate * _Nonnull)time successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Moves camera with ptzMotion
/// More details about the ChangeStream command could be found in the Mobile Server Protocol documentation.
/// \param videoID ID of the video connection (GUID)
///
/// \param ptzMotion PTZ Motion (Up, Down, Left, Right, ZoomIn, ZoomOut, Home)
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)moveCameraForVideoID:(NSString * _Nonnull)videoID ptzMotion:(enum XPSDKPTZMotion)ptzMotion successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Moves camera  with ptz preset
/// More details about the ChangeStream command could be found in the Mobile Server Protocol documentation.
/// \param videoID ID of the video connection (GUID)
///
/// \param ptzPreset PTZ Preset
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)moveCameraForVideoID:(NSString * _Nonnull)videoID ptzPreset:(XPSDKCameraPTZPreset * _Nonnull)ptzPreset successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Get PTZ presets for the current established live video stream connection.
/// More details about the GetPtzPresets command could be found in the Mobile Server Protocol documentation.
/// \param videoID ID of the video connection (GUID)
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)requestPTZPresetsForVideoId:(NSString * _Nonnull)videoID successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Executes PTZ command against camera with the corresponding cameraId
/// More details about the ControlPTZ command could be found in the Mobile Server Protocol documentation.
/// \param cameraID The Id of camera that should be controlled
///
/// \param x The percent of x point swipe
///
/// \param y The percent of y point swipe
///
/// \param duration The duration of user’s swipe
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)controlPTZForCameraID:(NSString * _Nonnull)cameraID gestureXPercent:(NSInteger)x gestureYPercent:(NSInteger)y gestureDuration:(NSInteger)duration successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Executes PTZ command against camera with the corresponding cameraId
/// More details about the ControlPTZ command could be found in the Mobile Server Protocol documentation.
/// \param cameraID The Id of camera that should be controlled
///
/// \param x The percent of x point tapAndHold
///
/// \param y The percent of y point tapAndHold
///
/// \param timeout The timeout of user’s tapAndHold
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)controlPTZForCameraID:(NSString * _Nonnull)cameraID gestureXPercent:(NSInteger)x gestureYPercent:(NSInteger)y gestureTimeout:(NSInteger)timeout successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Executes PTZ command against camera with the corresponding cameraId
/// More details about the ControlPTZ command could be found in the Mobile Server Protocol documentation.
/// \param cameraID The Id of camera that should be controlled
///
/// \param ptzMotion PTZ Motion (Up, Down, Left, Right, ZoomIn, ZoomOut, Home)
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)controlPTZForCameraID:(NSString * _Nonnull)cameraID PTZMotion:(enum XPSDKPTZMotion)ptzMotion successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Closes an existing video connection
/// More details about the CloseStream command could be found in the Mobile Server Protocol documentation.
/// \param videoConnection The video connection that will be closed
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)closeVideoConnectionWithVideoConnection:(XPSDKVideoConnection * _Nonnull)videoConnection successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Request audio stream in
/// \param itemId Id of the item (speaker), which stream is requested  (GUID)
///
/// \param audioEncoding Shows the encoding of the output. Possible values: Pcm/Mp3.
///
/// \param samplingRate The audio sampling rate in Hz value
///
/// \param bitsPerSample Audio bits per sample. Possible values: 8/16.
///
/// \param numberOfChannels Number of audio channels (mono or stereo). Possible Values: 1/2.
///
/// \param closeConnectionOnError Close the audio channel if an error occured
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)requestAudioStreamInForItemId:(NSString * _Nonnull)itemId audioEncoding:(NSString * _Nonnull)audioEncoding samplingRate:(NSString * _Nonnull)samplingRate bitsPerSample:(NSString * _Nonnull)bitsPerSample numberOfChannels:(NSString * _Nonnull)numberOfChannels closeConnectionOnError:(NSString * _Nonnull)closeConnectionOnError successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler SWIFT_WARN_UNUSED_RESULT;
/// Request to start audio push in video push.
/// \param itemId Id of the item (speaker), which stream is requested  (GUID)
///
/// \param audioEncoding Shows the encoding of the output. Possible values: Pcm/Mp3.
///
/// \param samplingRate The audio sampling rate in Hz value
///
/// \param bitsPerSample Audio bits per sample. Possible values: 8/16.
///
/// \param numberOfChannels Number of audio channels (mono or stereo). Possible Values: 1/2.
///
/// \param closeConnectionOnError Close the audio channel if an error occured
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)requestAudioPushForItemId:(NSString * _Nonnull)itemId audioEncoding:(NSString * _Nonnull)audioEncoding samplingRate:(NSString * _Nonnull)samplingRate bitsPerSample:(NSString * _Nonnull)bitsPerSample numberOfChannels:(NSString * _Nonnull)numberOfChannels closeConnectionOnError:(NSString * _Nonnull)closeConnectionOnError successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler SWIFT_WARN_UNUSED_RESULT;
/// Gets all views and cameras
/// More details about the GetAllViewsAndCameras command could be found in the Mobile Server Protocol documentation.
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (void)getAllViewsAndCamerasWithSuccessHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets subviews of view
/// More details about the GetViews command could be found in the Mobile Server Protocol documentation.
/// \param viewId ID of view which subviews are requested
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getSubviewsOfViewWithId:(NSString * _Nonnull)viewId successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets outputs and events
/// More details about the GetOutputsAndEvents command could be found in the Mobile Server Protocol documentation.
/// \param cameraId The camera ID for which the outputs and events will be returned
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getOutputsAndEventsForCameraId:(NSString * _Nonnull)cameraId successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Activates output
/// More details about the RequestActivation command could be found in the Mobile Server Protocol documentation.
/// \param objectId The ID of Output/Event to be activated
///
/// \param triggerType The type of trigger (Output or Event)
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)requestActivateForObjectId:(NSString * _Nonnull)objectId triggerType:(NSString * _Nonnull)triggerType successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets alarms
/// More details about the GetAlarms command could be found in the Mobile Server Protocol documentation.
/// \param count number of the requested alarms
///
/// \param timestamp timestamp
///
/// \param op operator
///
/// \param myAlarms flag for requesting only my alarms
///
/// \param excludedStates states to be excluded
///
/// \param excludedPriorities priorites to be excluded
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getAlarmsWithCount:(NSInteger)count timestamp:(NSString * _Nonnull)timestamp op:(NSString * _Nonnull)op myAlarms:(BOOL)myAlarms excludedStates:(NSString * _Nonnull)excludedStates excludedPriorities:(NSString * _Nonnull)excludedPriorities successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets a single alarm by ID
/// More details about the GetAlarms command could be found in the Mobile Server Protocol documentation.
/// \param alarmId the ID of the alarm which is requested
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getAlarmWithId:(NSString * _Nonnull)alarmId successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets alarm data settings
/// More details about the GetAlarmDataSettings command could be found in the Mobile Server Protocol documentation.
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getAlarmDataSettingsWithSuccessHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Acknowledges alarm
/// More details about the AcknowledgeAlarm command could be found in the Mobile Server Protocol documentation.
/// \param alarmId The ID of the alarm to be acknowledged
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)acknowledgeAlarmWithId:(NSString * _Nonnull)alarmId successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Updates alarm
/// More details about the UpdateAlarm command could be found in the Mobile Server Protocol documentation.
/// \param alarmId Alarm Id which parameters will be updated
///
/// \param updatedParameters Dictionary of parameteres to be updated
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)updateAlarmWithId:(NSString * _Nonnull)alarmId updatedParameters:(NSDictionary<NSString *, NSString *> * _Nonnull)updatedParameters successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Creates new investigation
/// More details about the CreateInvestigation command could be found in the Mobile Server Protocol documentation.
/// \param name Name of the investigation
///
/// \param cameraID the ID of the camera part of the investigation
///
/// \param startTime start time of the investigation
///
/// \param endTime end time of the investigation
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)createInvestigationWithName:(NSString * _Nonnull)name cameraID:(NSString * _Nonnull)cameraID startTime:(NSDate * _Nonnull)startTime endTime:(NSDate * _Nonnull)endTime successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets single (list of) investigation(s)
/// More details about the GetInvestigation command could be found in the Mobile Server Protocol documentation.
/// \param investigationId the ID of the investigation which is requested
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getInvestigationWithId:(NSString * _Nonnull)investigationId successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Deletes investigation with ID
/// More details about the DeleteInvestigation command could be found in the Mobile Server Protocol documentation.
/// \param investigationId the ID of the investigation which is requested to be deleted
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)deleteInvestigationWithId:(NSString * _Nonnull)investigationId successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Deletes an investigation export on the server
/// More details about the DeleteInvestigation command could be found in the Mobile Server Protocol documentation.
/// \param investigationId Id of the investigation for which an export will be deleted
///
/// \param exportType Type of the export to be deleted. Possible values: Avi, Db, Mkv
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)deleteInvestigationExportWithId:(NSString * _Nonnull)investigationId exportType:(NSString * _Nonnull)exportType successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets recorded sequences for particular camera
/// More details about the GetSequences command could be found in the Mobile Server Protocol documentation.
/// \param cameraID ID of the cameramfor which are retrieved Sequences.
///
/// \param seqType Type of the sequences requests – enumeration (Motion, Recording, RecordingWithTrigger)
///
/// \param time Central time of sequence request (in milliseconds since Unix epoch).
///
/// \param beforeTime (optional) Time span in the past (concerning central time) to where sequences to be searched (in seconds). Must be non-negative.
///
/// \param beforeCount (optional) Maximal count of sequences to be searched in the time interval from “BeforeTime” to “Time”
///
/// \param afterTime (optional) Time span in the future (concerning central time) to where sequences to be searched (in seconds). Must be non-negative
///
/// \param afterCount (optional) Maximal count of sequences to be searched in the time interval from “Time” to “AfterTime”.
///
/// \param investigationId (optional) The id of the investigation (export) to be used for extracting the sequences.
///
/// \param forceSequencesFromExport (optional) [Yes/No] Force the sequences to be taken from the export stored by the mobile server. Requires InvestigationId to be passed as well.
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getSequencesWithCameraId:(NSString * _Nonnull)cameraID seqType:(NSString * _Nonnull)seqType time:(NSNumber * _Nonnull)time beforeTime:(NSNumber * _Nullable)beforeTime beforeCount:(NSNumber * _Nullable)beforeCount afterTime:(NSNumber * _Nullable)afterTime afterCount:(NSNumber * _Nullable)afterCount investigationId:(NSString * _Nullable)investigationId forceSequencesFromExport:(NSString * _Nullable)forceSequencesFromExport successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Get recorded sequences for particular camera
/// More details about the GetSequences command could be found in the Mobile Server Protocol documentation.
/// \param cameraID ID of the cameramfor which are retrieved Sequences.
///
/// \param seqType Type of the sequences requests – enumeration (Motion, Recording, RecordingWithTrigger)
///
/// \param itemKind (optional) Type of the item kind – enumeration (SpeakerID, MicrophoneID)
///
/// \param time Central time of sequence request (in milliseconds since Unix epoch).
///
/// \param beforeTime (optional) Time span in the past (concerning central time) to where sequences to be searched (in seconds). Must be non-negative.
///
/// \param beforeCount (optional) Maximal count of sequences to be searched in the time interval from “BeforeTime” to “Time”
///
/// \param afterTime (optional) Time span in the future (concerning central time) to where sequences to be searched (in seconds). Must be non-negative
///
/// \param afterCount (optional) Maximal count of sequences to be searched in the time interval from “Time” to “AfterTime”.
///
/// \param investigationId (optional) The id of the investigation (export) to be used for extracting the sequences.
///
/// \param forceSequencesFromExport (optional) [Yes/No] Force the sequences to be taken from the export stored by the mobile server. Requires InvestigationId to be passed as well.
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getDifferentSequencesWithCameraId:(NSString * _Nonnull)cameraID seqType:(NSString * _Nonnull)seqType itemKind:(NSString * _Nullable)itemKind time:(NSNumber * _Nonnull)time beforeTime:(NSNumber * _Nullable)beforeTime beforeCount:(NSNumber * _Nullable)beforeCount afterTime:(NSNumber * _Nullable)afterTime afterCount:(NSNumber * _Nullable)afterCount investigationId:(NSString * _Nullable)investigationId forceSequencesFromExport:(NSString * _Nullable)forceSequencesFromExport successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets access control event for particular id
/// More details about the GetAccessControlEvents command could be found in the Mobile Server Protocol documentation.
/// \param eventId ID of the access control event.
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getAccessControlEventWithId:(NSString * _Nonnull)eventId successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets all access control doors
/// More details about the GetAccessControlDoors command could be found in the Mobile Server Protocol documentation.
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getAllAccessControlDoorsWithSuccessHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets access control door for particular id
/// More details about the GetAccessControlDoors command could be found in the Mobile Server Protocol documentation.
/// \param doorId ID of the access control door.
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getAccessControlDoorWithId:(NSString * _Nonnull)doorId successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets a list of the states of the access control door
/// More details about the GetAccessControlDoorStates command could be found in the Mobile Server Protocol documentation.
/// \param accessControlSystemId ID of the access control system.
///
/// \param doorId ID of the access control door.
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getAccessControlDoorStatesWithDoorId:(NSString * _Nonnull)doorId accessControlSystemId:(NSString * _Nonnull)accessControlSystemId successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets a list of access request events
/// More details about the GetAccessRequestEvents command could be found in the Mobile Server Protocol documentation.
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getAllAccessControlRequestsWithSuccessHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets a list of access request event categories
/// More details about the GetAccessControlEventCategories command could be found in the Mobile Server Protocol documentation.
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getAccessControlEventCategoriesWithSuccessHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets a list of access control events with pagination
/// More details about the GetAccessControlEvents command could be found in the Mobile Server Protocol documentation.
/// \param pageNumber maximum count of access control events to return
///
/// \param eventsPerPage the number of the page to return
///
/// \param excludedStates excluded access control event category GUIDs in a comma separated string
///
/// \param endTime end time of the access control events
///
/// \param includeEventsCount indicates whether to include the total events count in the output parameters of the command
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getAccessControlEventsWithPageNumber:(NSUInteger)pageNumber eventsPerPage:(NSUInteger)eventsPerPage excludedStates:(NSString * _Nonnull)excludedStates endTime:(NSDate * _Nonnull)endTime includeEventsCount:(BOOL)includeEventsCount successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Executes an access control rule command
/// More details about the ExecuteAccessControlCommand command could be found in the Mobile Server Protocol documentation.
/// \param systemId id of the access control system
///
/// \param instanceId id of the access control operational instance (i.e. door)
///
/// \param commandTypeId id of the access control command type
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)executeAccessControlRuleCommandWithSystemId:(NSString * _Nonnull)systemId instanceId:(NSString * _Nonnull)instanceId commandTypeId:(NSString * _Nonnull)commandTypeId successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Executes an access control system command
/// More details about the ExecuteAccessControlCommand command could be found in the Mobile Server Protocol documentation.
/// \param eventId id of the access control system
///
/// \param sourceObjectId id of the access control operational instance (i.e. door)
///
/// \param sourceKindId id of the access control command type
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)executeAccessControlSystemCommandWithEventId:(NSString * _Nonnull)eventId sourceObjectId:(NSString * _Nonnull)sourceObjectId sourceKindId:(NSString * _Nonnull)sourceKindId successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets capabilities for particular camera id
/// More details about the GetCapabilities command could be found in the Mobile Server Protocol documentation.
/// \param cameraId Id of the camera, which capabilities are requested
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getCameraCapabilitiesWithId:(NSString * _Nonnull)cameraId successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Creates bookmark for a video push with a description
/// More details about the GetCapabilities command could be found in the Mobile Server Protocol documentation.
/// \param videoId Id of the upstream
///
/// \param text Text to store in the database
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)createBookmarkWithId:(NSString * _Nonnull)videoId text:(NSString * _Nonnull)text successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Creates bookmark for a video
/// More details about the CreatesBookmark command could be found in the Mobile Server Protocol documentation.
/// \param videoId Id of the stream
///
/// \param cameraId Id of the camera to bookmark
///
/// \param name Bookmark name
///
/// \param description (optional) Bookmark description. "Mobile bookmark" will be used if input param is empty
///
/// \param time Exact time of the bookmark (milliseconds since Unix epoch)
///
/// \param startTime (optional) Start time of the bookmark (milliseconds since Unix epoch)
///
/// \param endTime (optional) End time of the bookmark (milliseconds since Unix epoch)
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)createBookmarkForVideoWithId:(NSString * _Nonnull)videoId cameraId:(NSString * _Nonnull)cameraId name:(NSString * _Nonnull)name description:(NSString * _Nullable)description time:(NSNumber * _Nonnull)time startTime:(NSNumber * _Nullable)startTime endTime:(NSNumber * _Nullable)endTime successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Updates the content of an existing bookmark
/// More details about the UpdateBookmark command could be found in the Mobile Server Protocol documentation.
/// \param bookmarkId Id of the bookmark
///
/// \param name Bookmark name
///
/// \param description (optional) Bookmark description. "Mobile bookmark" will be used if input param is empty
///
/// \param time (optional) Exact time of the bookmark (milliseconds since Unix epoch)
///
/// \param startTime (optional) Start time of the bookmark (milliseconds since Unix epoch)
///
/// \param endTime (optional) End time of the bookmark (milliseconds since Unix epoch)
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)updateBookmarkWithId:(NSString * _Nonnull)bookmarkId name:(NSString * _Nonnull)name description:(NSString * _Nullable)description time:(NSNumber * _Nullable)time startTime:(NSNumber * _Nullable)startTime endTime:(NSNumber * _Nullable)endTime successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Deletes an existing bookmark
/// More details about the DeleteBookmark command could be found in the Mobile Server Protocol documentation.
/// \param bookmarkId Id of an existing bookmark which is to be deleted
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)deleteBookmarkWithId:(NSString * _Nonnull)bookmarkId successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets information about bookmark like pre/post time and reserve reference for its creation which can be used after that.
/// More details about the RequestBookmarkCreation command could be found in the Mobile Server Protocol documentation.
/// \param camerakId Id of the camera to bookmark
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)requestDataForNewBookmarkWithCameraId:(NSString * _Nonnull)cameraID successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Gets a thumbnail for a particular camera
/// More details about the GetThumbnailByTime command could be found in the Mobile Server Protocol documentation.
/// \param cameraId Id of the requested camera thumbnail
///
/// \param investigationId Id of the requested investigation thumbnail (optional)
///
/// \param seekType Type of DB seek operation
///
/// \param size Size of the thumbnail
///
/// \param time the time for which we need a thumbnail
///
/// \param timespan The allowed range in seconds
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
+ (XPSDKRequest * _Nonnull)getThumbnailForCameraId:(NSString * _Nonnull)cameraId investigationId:(NSString * _Nullable)investigationId seekType:(NSString * _Nonnull)seekType size:(CGSize)size time:(NSNumber * _Nonnull)time timespan:(NSNumber * _Nonnull)timespan successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// Adds Delegate
/// \param delegate Add delegate to set of delegates
///
+ (void)addDelegate:(id <XPMobileSDKConnectionDelegate> _Nonnull)delegate;
/// Removes Delegate
/// \param delegate Remove delegate from set of delegates
///
+ (void)removeDelegate:(id <XPMobileSDKConnectionDelegate> _Nonnull)delegate;
/// Stops All Sessions
+ (void)stopAllSessions;
/// Stops Request with given command name
+ (BOOL)stopRequestWithName:(NSString * _Nonnull)name SWIFT_WARN_UNUSED_RESULT;
/// Sends Keepalive Message to make sure that connection to server is still active
+ (void)sendLiveMessage;
/// Stops sending Keepalive Message
+ (void)stopLiveMessage;
/// Sends Keepalive Message to make sure that connection to server is still active
+ (void)startLiveMessage;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

/// Types of connection errors
typedef SWIFT_ENUM(NSInteger, XPMobileSDKConnectError, open) {
/// Server Id Mismatch
  XPMobileSDKConnectErrorServerIdMissmatch = -1,
/// Missing public key
  XPMobileSDKConnectErrorNoPublicKey = -2,
/// OEM Access denied
  XPMobileSDKConnectErrorOemAccessDenied = -3,
/// No valid connections
  XPMobileSDKConnectErrorNoValidConnectios = -7,
/// Insufficient user rights
  XPMobileSDKConnectErrorInsufficientUserRights = 25,
/// Eula parameter no
  XPMobileSDKConnectErrorEulaParameterNo = -999,
/// incompatible server product code
  XPMobileSDKConnectErrorIncompatibleServerProductCode = -5,
};

@class XPSDKConnection;

/// XPMobileSDKConnectionDelegate - Connection delegate protocol which needs to be implemented in order a connection to server to be achieved, and then to be added as delegate to XPMobileSDK class.
SWIFT_PROTOCOL("_TtP12MIPSDKMobile29XPMobileSDKConnectionDelegate_")
@protocol XPMobileSDKConnectionDelegate
@optional
/// Sent to observers when connection has logged in.
- (void)connectionDidLogIn:(XPSDKConnection * _Nonnull)connection;
/// Sent to observers when connection has failed to log in. Check the error to determine if it was due to incorrect credentials! Note that error may be a null object if we have failed to even parse the response from the server.
- (void)connectiondidFailLoginWithError:(NSError * _Nonnull)error;
/// Sent to observers when connecting has failed.
- (void)connectionDidFailConnectWithError:(NSError * _Nonnull)error;
/// Sent to observers when connection to the server will be closed
- (void)connectionWillDisconnect:(XPSDKConnection * _Nonnull)connection;
/// Sent to observers when connection to server was closed
- (void)connectionDidDisconnect:(XPSDKConnection * _Nonnull)connection;
/// Sent to observers when connection has connected to the server
- (void)connectionDidConnect:(XPSDKConnection * _Nonnull)connection;
/// Sent to observers when connection to the server was lost.
- (void)connectionLostConnectivity:(XPSDKConnection * _Nonnull)connection;
/// Sent to observers when connection to the server was restored.
- (void)connectionRestoredConnectivity:(XPSDKConnection * _Nonnull)connection;
/// Sent to observers when connection pop to root
- (void)connectionPopToRoot:(XPSDKConnection * _Nonnull)connection;
/// Sent to observers when connection is in the process of logging in, a code has been sent to the server for verification, but this code is wrong.
- (void)connectionCodeError:(XPSDKConnection * _Nonnull)connection;
/// Sent to observers when connection is in the process of logging in, but requires additional verification code.
- (void)connectionCodeRequired:(XPSDKConnection * _Nonnull)connection;
/// Sent to observers when connecting with external connection ID has failed.
- (void)wrongConnectionIdWithError:(NSError * _Nonnull)error;
/// Sent to observers when connecting has failed.
- (void)connectionWentDownWithError:(NSError * _Nonnull)error;
/// Sent to observers when connection reachability has changed
- (void)connectionReachabilityChanged:(NSNotification * _Nonnull)notification;
/// Sent to observers when a notification is received
- (void)didReceiveNotification:(NSDictionary * _Nonnull)notification;
@end

@class NSMutableSet;
enum XPSDKConnectionState : NSInteger;
@class DHEncryption;
@class Reachability;

/// Main Connection. This class encapsulates:
/// <ul>
///   <li>
///     connection state management
///   </li>
///   <li>
///     commands sending to the server
///   </li>
///   <li>
///     keep alive messages (LiveMessage commands).
///   </li>
/// </ul>
/// <ul>
///   <li>
///   </li>
/// </ul>
/// The class uses XPSDKRequest to send commands to server. Most commands methods (if not all), such as getViews and requestStream return a connectionRequest object to the callee. This object can be used to cancel the request if needed via the cancelRequest method.
SWIFT_CLASS("_TtC12MIPSDKMobile15XPSDKConnection")
@interface XPSDKConnection : NSObject
/// The main connection
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, strong) XPSDKConnection * _Nonnull sharedConnection;)
+ (XPSDKConnection * _Nonnull)sharedConnection SWIFT_WARN_UNUSED_RESULT;
+ (void)setSharedConnection:(XPSDKConnection * _Nonnull)value;
/// The connection’s list of delegates
@property (nonatomic, readonly, strong) NSMutableSet * _Nonnull delegates;
/// List of key/value server features designating support for various server functionalities such as recording lists or video push active at the point of login
@property (nonatomic, readonly, strong) NSDictionary * _Nullable features;
/// Connection url
@property (nonatomic, copy) NSURL * _Nullable url;
/// Connection url endpoint
@property (nonatomic, copy) NSString * _Nonnull urlEndPoint;
/// Flag that is set to YES when the connection is race connection
@property (nonatomic) BOOL isRaceConnection;
/// Connection state
@property (nonatomic) enum XPSDKConnectionState state;
/// DHEncryption
@property (nonatomic, strong) DHEncryption * _Nullable dhe;
/// Connection id
@property (nonatomic, copy) NSString * _Nullable id;
/// Reachability
@property (nonatomic, strong) Reachability * _Nullable reachability;
/// Server info
@property (nonatomic, strong) XPSDKServerInfo * _Nullable serverInfo;
@property (nonatomic, strong) id _Nullable server;
/// changePasswordRelativePath
@property (nonatomic, copy) NSString * _Nullable changePasswordRelativePath;
/// Setups url string for connection to server
/// \param urlString the url (in string format) for connection to server
///
/// \param uuid the id (in string format) of the server
///
- (void)setupWithURLString:(NSString * _Nonnull)urlString uuid:(NSString * _Nullable)uuid serviceAlias:(NSString * _Nullable)serviceAlias;
/// Setups connection with server info (containing data for server host, port, flag to indicate secure connection)
/// \param serInfo object of type XPSDKServerInfo, containing data for server host, port, flag to indicate secure connection
///
- (void)setupWithServerInfo:(XPSDKServerInfo * _Nonnull)serInfo;
- (BOOL)isUserAnalyticsFeatureEnabledOnServer SWIFT_WARN_UNUSED_RESULT;
/// Setups credentials for server connection and flag to indicate whether credentials should be saved
/// \param username the username
///
/// \param password the password
///
/// \param shouldSave flag to indicate whether credentials should be saved
///
- (void)setupWithUsername:(NSString * _Nonnull)username password:(NSString * _Nonnull)password shouldSave:(BOOL)shouldSave;
/// Change the heartbeat timeout
- (void)setHeartbeatTimeoutWithNewValue:(NSInteger)newValue;
/// Adds race connection
/// \param raceConnection the race connection to be added
///
- (void)addRaceConnection:(XPSDKConnection * _Nullable)raceConnection;
/// Adds connection delegate
/// \param delegate the delegate to be added
///
- (void)addDelegate:(id <XPMobileSDKConnectionDelegate> _Nullable)delegate;
/// Removes connection delegate
/// \param delegate the delegate to be added
///
- (void)removeDelegate:(id <XPMobileSDKConnectionDelegate> _Nullable)delegate;
- (void)explicitSetOfConnectionState:(NSNumber * _Nonnull)state;
/// Updates application’s network activity indicator, depending on whether there is an request in execution, or an open video connection
- (void)updateNetworkIndicator;
+ (void)resetSharedConnection;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


@interface XPSDKConnection (SWIFT_EXTENSION(MIPSDKMobile))
/// connect: Connect to server
/// <ul>
///   <li>
///     returns request: the request for connection to server
///   </li>
/// </ul>
/// More details about the Connect command could be found in the Mobile Server Protocol documentation.
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
- (XPSDKRequest * _Nonnull)connectWithLastConnectedServerUUID:(NSString * _Nullable)lastConnectedServerUUID successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
/// disconnect: Disconnects from server
- (XPSDKRequest * _Nonnull)disconnect;
/// disconnect: Disconnects from server
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
- (XPSDKRequest * _Nonnull)disconnectWithSuccessHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
@end




@interface XPSDKConnection (SWIFT_EXTENSION(MIPSDKMobile))
/// login: Login method
/// <ul>
///   <li>
///     returns request: The executed request
///   </li>
/// </ul>
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
- (XPSDKRequest * _Nullable)loginWithSuccessHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
@end


@interface XPSDKConnection (SWIFT_EXTENSION(MIPSDKMobile))
/// purgeVideoConnections: close and remove all video connections
- (void)purgeVideoConnections;
/// Change stream with fps method
/// More details about the ChangeStream command could be found in the Mobile Server Protocol documentation.
/// \param videoID ID of the video connection (GUID)
///
/// \param fps new value for frames per second
///
/// \param successHandler The success block which returns XPSDKResponse
///
/// \param failureHandler The failure block which returns NSError
///
- (void)changeStreamForVideoID:(NSString * _Nonnull)videoID fps:(NSInteger)fps successHandler:(void (^ _Nullable)(XPSDKResponse * _Nullable))successHandler failureHandler:(void (^ _Nullable)(NSError * _Nullable))failureHandler;
@end

/// XPSDKConnectionState - types of connection states
typedef SWIFT_ENUM(NSInteger, XPSDKConnectionState, open) {
/// Set only before connecting
  XPSDKConnectionStateIdle = 0,
/// Set when we call connect and wait for response from server
  XPSDKConnectionStateConnecting = 1,
/// Set when we have connected and are about to send credentials
  XPSDKConnectionStateConnected = 2,
/// Set when we exchanged keys and set login credentials
  XPSDKConnectionStateLoggingIn = 3,
/// Set when we are logged in and successfully exchanging commands
  XPSDKConnectionStateWorking = 4,
/// Set when we are disconnecting by the user
  XPSDKConnectionStateDisconnecting = 5,
/// Set when we have been disconnected (by the user or external factors) or failed connect/login
  XPSDKConnectionStateDisconnected = 6,
/// Set when we have experienced some sort of timeout or other connectivity error
  XPSDKConnectionStateLostConnection = 7,
};


SWIFT_CLASS("_TtC12MIPSDKMobile14XPSDKConstants")
@interface XPSDKConstants : NSObject
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKPublicYes;)
+ (NSString * _Nonnull)XPSDKPublicYes SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKPublicNo;)
+ (NSString * _Nonnull)XPSDKPublicNo SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKPublicKey;)
+ (NSString * _Nonnull)XPSDKPublicKey SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKDeviceId;)
+ (NSString * _Nonnull)XPSDKDeviceId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKKeyLength;)
+ (NSString * _Nonnull)XPSDKKeyLength SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionId;)
+ (NSString * _Nonnull)XPSDKConnectionId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKChangePasswordRelativePath;)
+ (NSString * _Nonnull)XPSDKChangePasswordRelativePath SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKServerId;)
+ (NSString * _Nonnull)XPSDKServerId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKTimeout;)
+ (NSString * _Nonnull)XPSDKTimeout SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnect;)
+ (NSString * _Nonnull)XPSDKConnect SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKUsername;)
+ (NSString * _Nonnull)XPSDKUsername SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKPassword;)
+ (NSString * _Nonnull)XPSDKPassword SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKCollectUsageData;)
+ (NSString * _Nonnull)XPSDKCollectUsageData SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKSecondStepAuthenticationPin;)
+ (NSString * _Nonnull)XPSDKSecondStepAuthenticationPin SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKSupportsResampling;)
+ (NSString * _Nonnull)XPSDKSupportsResampling SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKSupportsExtendedResamplingFactor;)
+ (NSString * _Nonnull)XPSDKSupportsExtendedResamplingFactor SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKClientType;)
+ (NSString * _Nonnull)XPSDKClientType SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKSupportsAudioIn;)
+ (NSString * _Nonnull)XPSDKSupportsAudioIn SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKSupportsAudioOut;)
+ (NSString * _Nonnull)XPSDKSupportsAudioOut SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKSupportsAdaptiveStreaming;)
+ (NSString * _Nonnull)XPSDKSupportsAdaptiveStreaming SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKMobileClient;)
+ (NSString * _Nonnull)XPSDKMobileClient SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKLogin;)
+ (NSString * _Nonnull)XPSDKLogin SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKLiveMessage;)
+ (NSString * _Nonnull)XPSDKLiveMessage SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKMilestoneXProtectServiceAlias;)
+ (NSString * _Nonnull)XPSDKMilestoneXProtectServiceAlias SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKMilestoneXProtectEndPoint;)
+ (NSString * _Nonnull)XPSDKMilestoneXProtectEndPoint SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKRequestSecondStepAuthenticationPin;)
+ (NSString * _Nonnull)XPSDKRequestSecondStepAuthenticationPin SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKDisconnect;)
+ (NSString * _Nonnull)XPSDKDisconnect SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKVerifySecondStepAuthenticationPin;)
+ (NSString * _Nonnull)XPSDKVerifySecondStepAuthenticationPin SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetAllViewsAndCameras;)
+ (NSString * _Nonnull)XPSDKGetAllViewsAndCameras SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetViews;)
+ (NSString * _Nonnull)XPSDKGetViews SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetViewsParamViewId;)
+ (NSString * _Nonnull)XPSDKGetViewsParamViewId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetPermittedUsers;)
+ (NSString * _Nonnull)XPSDKGetPermittedUsers SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKResponseErrorDomain;)
+ (NSString * _Nonnull)XPSDKResponseErrorDomain SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKCommunication;)
+ (NSString * _Nonnull)XPSDKCommunication SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKCommand;)
+ (NSString * _Nonnull)XPSDKCommand SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKEncryptedCommand;)
+ (NSString * _Nonnull)XPSDKEncryptedCommand SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKvalue;)
+ (NSString * _Nonnull)XPSDKvalue SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKValue;)
+ (NSString * _Nonnull)XPSDKValue SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKName;)
+ (NSString * _Nonnull)XPSDKName SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKType;)
+ (NSString * _Nonnull)XPSDKType SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKResponseKey;)
+ (NSString * _Nonnull)XPSDKResponseKey SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKProcessing;)
+ (NSString * _Nonnull)XPSDKProcessing SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKOutputParams;)
+ (NSString * _Nonnull)XPSDKOutputParams SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKParam;)
+ (NSString * _Nonnull)XPSDKParam SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKSubItems;)
+ (NSString * _Nonnull)XPSDKSubItems SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKSequences;)
+ (NSString * _Nonnull)XPSDKSequences SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKOEHeaderGroup;)
+ (NSString * _Nonnull)XPSDKOEHeaderGroup SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKExports;)
+ (NSString * _Nonnull)XPSDKExports SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKItems;)
+ (NSString * _Nonnull)XPSDKItems SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKItem;)
+ (NSString * _Nonnull)XPSDKItem SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKAlarm;)
+ (NSString * _Nonnull)XPSDKAlarm SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKAlarmDataSetting;)
+ (NSString * _Nonnull)XPSDKAlarmDataSetting SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKNotification;)
+ (NSString * _Nonnull)XPSDKNotification SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKResult;)
+ (NSString * _Nonnull)XPSDKResult SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKOK;)
+ (NSString * _Nonnull)XPSDKOK SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKErrorString;)
+ (NSString * _Nonnull)XPSDKErrorString SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKErrorCode;)
+ (NSString * _Nonnull)XPSDKErrorCode SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKId;)
+ (NSString * _Nonnull)XPSDKId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKRequestDefaultError;)
+ (NSString * _Nonnull)XPSDKRequestDefaultError SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKRequestXMLParse;)
+ (NSString * _Nonnull)XPSDKRequestXMLParse SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull kNetworkReachabilityChangedNotification;)
+ (NSString * _Nonnull)kNetworkReachabilityChangedNotification SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetOutputsAndEvents;)
+ (NSString * _Nonnull)XPSDKGetOutputsAndEvents SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetOutputsParamCameraId;)
+ (NSString * _Nonnull)XPSDKGetOutputsParamCameraId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKRequestActivation;)
+ (NSString * _Nonnull)XPSDKRequestActivation SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKRequestActivationParamObjectId;)
+ (NSString * _Nonnull)XPSDKRequestActivationParamObjectId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKRequestActivationParamTriggerType;)
+ (NSString * _Nonnull)XPSDKRequestActivationParamTriggerType SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetAlarms;)
+ (NSString * _Nonnull)XPSDKGetAlarms SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetAlarmsParamValueYes;)
+ (NSString * _Nonnull)XPSDKGetAlarmsParamValueYes SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetAlarmsParamValueNo;)
+ (NSString * _Nonnull)XPSDKGetAlarmsParamValueNo SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetAlarmsParamMyAlarms;)
+ (NSString * _Nonnull)XPSDKGetAlarmsParamMyAlarms SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetAlarmsParamOperator;)
+ (NSString * _Nonnull)XPSDKGetAlarmsParamOperator SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetAlarmsParamTimestamp;)
+ (NSString * _Nonnull)XPSDKGetAlarmsParamTimestamp SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetAlarmsParamState;)
+ (NSString * _Nonnull)XPSDKGetAlarmsParamState SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetAlarmsParamPriority;)
+ (NSString * _Nonnull)XPSDKGetAlarmsParamPriority SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetAlarmsParamCount;)
+ (NSString * _Nonnull)XPSDKGetAlarmsParamCount SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetAlarmDataSettings;)
+ (NSString * _Nonnull)XPSDKGetAlarmDataSettings SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetAlarmsParamId;)
+ (NSString * _Nonnull)XPSDKGetAlarmsParamId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKUpdateAlarm;)
+ (NSString * _Nonnull)XPSDKUpdateAlarm SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKUpdateAlarmParamAlarmId;)
+ (NSString * _Nonnull)XPSDKUpdateAlarmParamAlarmId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKAcknowledgeAlarm;)
+ (NSString * _Nonnull)XPSDKAcknowledgeAlarm SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKAcknowledgeAlarmParamId;)
+ (NSString * _Nonnull)XPSDKAcknowledgeAlarmParamId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKCreateInvestigation;)
+ (NSString * _Nonnull)XPSDKCreateInvestigation SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKCreateInvestigationParamName;)
+ (NSString * _Nonnull)XPSDKCreateInvestigationParamName SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKCreateInvestigationParamCameraID;)
+ (NSString * _Nonnull)XPSDKCreateInvestigationParamCameraID SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKCreateInvestigationParamStartTime;)
+ (NSString * _Nonnull)XPSDKCreateInvestigationParamStartTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKCreateInvestigationParamEndTime;)
+ (NSString * _Nonnull)XPSDKCreateInvestigationParamEndTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetInvestigation;)
+ (NSString * _Nonnull)XPSDKGetInvestigation SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKGetInvestigationParamId;)
+ (NSString * _Nonnull)XPSDKGetInvestigationParamId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKDeleteInvestigation;)
+ (NSString * _Nonnull)XPSDKDeleteInvestigation SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKDeleteInvestigationExport;)
+ (NSString * _Nonnull)XPSDKDeleteInvestigationExport SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKDeleteInvestigationExportParamId;)
+ (NSString * _Nonnull)XPSDKDeleteInvestigationExportParamId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKDeleteInvestigationExportParamExportType;)
+ (NSString * _Nonnull)XPSDKDeleteInvestigationExportParamExportType SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameRequestStream;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameRequestStream SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamCameraID;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamCameraID SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamInvestigationID;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamInvestigationID SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamDestWidth;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamDestWidth SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamDestHeight;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamDestHeight SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamFPS;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamFPS SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamCompressionLevel;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamCompressionLevel SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamKeyFramesOnly;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamKeyFramesOnly SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSignalType;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSignalType SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamMethodType;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamMethodType SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamVideoID;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamVideoID SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSrcWidth;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSrcWidth SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSrcHeight;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSrcHeight SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamAddress;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamAddress SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamPort;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamPort SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamBookmark;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamBookmark SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamTime;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamTimeRangeBegin;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamTimeRangeBegin SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamTimeRangeEnd;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamTimeRangeEnd SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamStreamType;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamStreamType SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamStreamTypeFragmentedMP4;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamStreamTypeFragmentedMP4 SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamUserDownsampling;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamUserDownsampling SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamResizeAvailable;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamResizeAvailable SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamOriginalSize;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamOriginalSize SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamCloseConnection;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamCloseConnection SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSupportsLive;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSupportsLive SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSupportsPlayback;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSupportsPlayback SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSupportsPTZ;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSupportsPTZ SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSupportsPTZPresets;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSupportsPTZPresets SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSupportsValueYes;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSupportsValueYes SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSupportsValueNo;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSupportsValueNo SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSupportsSequences;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSupportsSequences SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSupportsAviExports;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSupportsAviExports SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSupportsJpegExports;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSupportsJpegExports SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamForcePlaybackFromExport;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamForcePlaybackFromExport SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSeekType;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSeekType SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamMethodPull;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamMethodPull SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamMethodPush;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamMethodPush SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameCloseStream;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameCloseStream SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionCloseStreamParamVideoID;)
+ (NSString * _Nonnull)XPSDKConnectionCloseStreamParamVideoID SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameChangeStream;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameChangeStream SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSrcLeft;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSrcLeft SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSrcRight;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSrcRight SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSrcTop;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSrcTop SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamSrcBottom;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamSrcBottom SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionChangeStreamParamVideoID;)
+ (NSString * _Nonnull)XPSDKConnectionChangeStreamParamVideoID SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionChangeStreamParamSpeed;)
+ (NSString * _Nonnull)XPSDKConnectionChangeStreamParamSpeed SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionChangeStreamParamSeekTypePrevSeq;)
+ (NSString * _Nonnull)XPSDKConnectionChangeStreamParamSeekTypePrevSeq SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionChangeStreamParamSeekTypeNextSeq;)
+ (NSString * _Nonnull)XPSDKConnectionChangeStreamParamSeekTypeNextSeq SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionChangeStreamParamSeekTypePrevFrame;)
+ (NSString * _Nonnull)XPSDKConnectionChangeStreamParamSeekTypePrevFrame SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionChangeStreamParamSeekTypeNextFrame;)
+ (NSString * _Nonnull)XPSDKConnectionChangeStreamParamSeekTypeNextFrame SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionChangeStreamParamSeekType;)
+ (NSString * _Nonnull)XPSDKConnectionChangeStreamParamSeekType SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionChangeStreamParamTime;)
+ (NSString * _Nonnull)XPSDKConnectionChangeStreamParamTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionChangeStreamParamPtzMove;)
+ (NSString * _Nonnull)XPSDKConnectionChangeStreamParamPtzMove SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionChangeStreamParamPtzPreset;)
+ (NSString * _Nonnull)XPSDKConnectionChangeStreamParamPtzPreset SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameGetPTZPresets;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameGetPTZPresets SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionGetPTZPresetsParamVideoID;)
+ (NSString * _Nonnull)XPSDKConnectionGetPTZPresetsParamVideoID SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameGetSequences;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameGetSequences SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionGetSequencesParamCameraId;)
+ (NSString * _Nonnull)XPSDKConnectionGetSequencesParamCameraId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionGetSequencesParamTime;)
+ (NSString * _Nonnull)XPSDKConnectionGetSequencesParamTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionGetSequencesParamSeqType;)
+ (NSString * _Nonnull)XPSDKConnectionGetSequencesParamSeqType SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionGetSequencesParamBeforeTime;)
+ (NSString * _Nonnull)XPSDKConnectionGetSequencesParamBeforeTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionGetSequencesParamBeforeCount;)
+ (NSString * _Nonnull)XPSDKConnectionGetSequencesParamBeforeCount SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionGetSequencesParamAfterTime;)
+ (NSString * _Nonnull)XPSDKConnectionGetSequencesParamAfterTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionGetSequencesParamAfterCount;)
+ (NSString * _Nonnull)XPSDKConnectionGetSequencesParamAfterCount SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionGetSequencesParamInvestigationId;)
+ (NSString * _Nonnull)XPSDKConnectionGetSequencesParamInvestigationId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionGetSequencesParamItemKind;)
+ (NSString * _Nonnull)XPSDKConnectionGetSequencesParamItemKind SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionGetSequencesParamForceSequencesFromExport;)
+ (NSString * _Nonnull)XPSDKConnectionGetSequencesParamForceSequencesFromExport SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionGetSequencesSequenceItem;)
+ (NSString * _Nonnull)XPSDKConnectionGetSequencesSequenceItem SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionGetSequencesSequenceStartTime;)
+ (NSString * _Nonnull)XPSDKConnectionGetSequencesSequenceStartTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionGetSequencesSequenceTimeStamp;)
+ (NSString * _Nonnull)XPSDKConnectionGetSequencesSequenceTimeStamp SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionGetSequencesSequenceEndTime;)
+ (NSString * _Nonnull)XPSDKConnectionGetSequencesSequenceEndTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKVideoPushLocation;)
+ (NSString * _Nonnull)XPSDKVideoPushLocation SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamItemID;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamItemID SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestParamItemIds;)
+ (NSString * _Nonnull)XPSDKConnectionRequestParamItemIds SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameRequestAudioStream;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameRequestAudioStream SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameRequestAudioStreamIn;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameRequestAudioStreamIn SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamAudioEncoding;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamAudioEncoding SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamAudioBitsPerSample;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamAudioBitsPerSample SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamAudioSamplingRate;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamAudioSamplingRate SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamAudioChannelsNumber;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamAudioChannelsNumber SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamStreamHeaders;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamStreamHeaders SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestStreamParamAudioCloseConnection;)
+ (NSString * _Nonnull)XPSDKConnectionRequestStreamParamAudioCloseConnection SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestAuidoStreamParamPlaybackControllerId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestAuidoStreamParamPlaybackControllerId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestAuidoStreamParamInvestigationId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestAuidoStreamParamInvestigationId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameControlPTZ;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameControlPTZ SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestControlPTZParamType;)
+ (NSString * _Nonnull)XPSDKConnectionRequestControlPTZParamType SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestControlPTZParamTypeSwipe;)
+ (NSString * _Nonnull)XPSDKConnectionRequestControlPTZParamTypeSwipe SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestControlPTZParamTypeTapAndHold;)
+ (NSString * _Nonnull)XPSDKConnectionRequestControlPTZParamTypeTapAndHold SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestControlPTZParamTypeStep;)
+ (NSString * _Nonnull)XPSDKConnectionRequestControlPTZParamTypeStep SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestControlPTZParamCameraID;)
+ (NSString * _Nonnull)XPSDKConnectionRequestControlPTZParamCameraID SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestControlPTZParamGestureXPercent;)
+ (NSString * _Nonnull)XPSDKConnectionRequestControlPTZParamGestureXPercent SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestControlPTZParamGestureYPercent;)
+ (NSString * _Nonnull)XPSDKConnectionRequestControlPTZParamGestureYPercent SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestControlPTZParamGestureDuration;)
+ (NSString * _Nonnull)XPSDKConnectionRequestControlPTZParamGestureDuration SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestControlPTZParamGestureTimeout;)
+ (NSString * _Nonnull)XPSDKConnectionRequestControlPTZParamGestureTimeout SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestControlParamPtzMove;)
+ (NSString * _Nonnull)XPSDKConnectionRequestControlParamPtzMove SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionnRequestGetAccessControlEvents;)
+ (NSString * _Nonnull)XPSDKConnectionnRequestGetAccessControlEvents SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetAccessControlEventsParamId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetAccessControlEventsParamId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetAccessControlEventsParamPageSize;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetAccessControlEventsParamPageSize SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetAccessControlEventsParamPage;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetAccessControlEventsParamPage SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetAccessControlEventsParamEndTimestamp;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetAccessControlEventsParamEndTimestamp SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetAccessControlEventsParamExcludedStates;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetAccessControlEventsParamExcludedStates SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetAccessControlEventsParamIncludeEventsCount;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetAccessControlEventsParamIncludeEventsCount SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameGetDoors;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameGetDoors SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetDoorsParamId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetDoorsParamId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameGetAccessControlDoorStates;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameGetAccessControlDoorStates SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetAccessControlDoorStatesParamSystemId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetAccessControlDoorStatesParamSystemId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetAccessControlDoorStatesParamDoorId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetAccessControlDoorStatesParamDoorId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameGetAccessRequests;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameGetAccessRequests SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameGetEventCategories;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameGetEventCategories SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameExecuteAccessControlCommand;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameExecuteAccessControlCommand SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestExecuteCommandParamSystemId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestExecuteCommandParamSystemId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestExecuteCommandParamInstanceId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestExecuteCommandParamInstanceId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestExecuteCommandParamCommandTypeId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestExecuteCommandParamCommandTypeId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestExecuteCommandParamCommandEventId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestExecuteCommandParamCommandEventId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestExecuteCommandParamCommandSourceObjectId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestExecuteCommandParamCommandSourceObjectId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestExecuteCommandParamCommandSourceKindId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestExecuteCommandParamCommandSourceKindId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameGetCapabilities;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameGetCapabilities SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetCapabilitiesParamCameraId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetCapabilitiesParamCameraId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameGetBookmarks;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameGetBookmarks SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetBookmarksParamBookmarkId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetBookmarksParamBookmarkId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetBookmarksParamCount;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetBookmarksParamCount SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetBookmarksParamStartTime;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetBookmarksParamStartTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetBookmarksParamEndTime;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetBookmarksParamEndTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetBookmarksParamMyBookmarks;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetBookmarksParamMyBookmarks SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetBookmarksParamKeyword;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetBookmarksParamKeyword SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetBookmarksParamSearchCameraIds;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetBookmarksParamSearchCameraIds SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameRequestBookmarkCreation;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameRequestBookmarkCreation SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestBookmarkCreationParamBeforeTime;)
+ (NSString * _Nonnull)XPSDKConnectionRequestBookmarkCreationParamBeforeTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestBookmarkCreationParamAfterTime;)
+ (NSString * _Nonnull)XPSDKConnectionRequestBookmarkCreationParamAfterTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameDeleteBookmark;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameDeleteBookmark SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestDeleteBookmarkParamBookmarkId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestDeleteBookmarkParamBookmarkId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameUpdateBookmark;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameUpdateBookmark SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestUpdateBookmarkParamBookmarkId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestUpdateBookmarkParamBookmarkId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestUpdateBookmarkParamStartTime;)
+ (NSString * _Nonnull)XPSDKConnectionRequestUpdateBookmarkParamStartTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestUpdateBookmarkParamEndTime;)
+ (NSString * _Nonnull)XPSDKConnectionRequestUpdateBookmarkParamEndTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestUpdateBookmarkParamTime;)
+ (NSString * _Nonnull)XPSDKConnectionRequestUpdateBookmarkParamTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestUpdateBookmarkParamName;)
+ (NSString * _Nonnull)XPSDKConnectionRequestUpdateBookmarkParamName SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestUpdateBookmarkParamDescription;)
+ (NSString * _Nonnull)XPSDKConnectionRequestUpdateBookmarkParamDescription SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameCreateBookmark;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameCreateBookmark SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestCreateBookmarkParamVideoId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestCreateBookmarkParamVideoId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestCreateBookmarkParamDescription;)
+ (NSString * _Nonnull)XPSDKConnectionRequestCreateBookmarkParamDescription SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestCreateBookmarkParamCameraId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestCreateBookmarkParamCameraId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestCreateBookmarkParamName;)
+ (NSString * _Nonnull)XPSDKConnectionRequestCreateBookmarkParamName SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestCreateBookmarkParamTime;)
+ (NSString * _Nonnull)XPSDKConnectionRequestCreateBookmarkParamTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestCreateBookmarkParamStartTime;)
+ (NSString * _Nonnull)XPSDKConnectionRequestCreateBookmarkParamStartTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestCreateBookmarkParamEndTime;)
+ (NSString * _Nonnull)XPSDKConnectionRequestCreateBookmarkParamEndTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameGetThumbnail;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameGetThumbnail SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetThumbnailParamCameraId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetThumbnailParamCameraId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetThumbnailParamSeekType;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetThumbnailParamSeekType SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetThumbnailParamWidth;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetThumbnailParamWidth SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetThumbnailParamHeight;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetThumbnailParamHeight SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetThumbnailParamTime;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetThumbnailParamTime SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetThumbnailParamTimespan;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetThumbnailParamTimespan SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestGetThumbnailParamInvesrigationId;)
+ (NSString * _Nonnull)XPSDKConnectionRequestGetThumbnailParamInvesrigationId SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestNameRequestAudioPush;)
+ (NSString * _Nonnull)XPSDKConnectionRequestNameRequestAudioPush SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull ConnectionErrorXPDomain;)
+ (NSString * _Nonnull)ConnectionErrorXPDomain SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestProductCodeResponseParam;)
+ (NSString * _Nonnull)XPSDKConnectionRequestProductCodeResponseParam SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestProductCodeVersion1;)
+ (NSString * _Nonnull)XPSDKConnectionRequestProductCodeVersion1 SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestProductCodeVersion2;)
+ (NSString * _Nonnull)XPSDKConnectionRequestProductCodeVersion2 SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestServerHeaderParam;)
+ (NSString * _Nonnull)XPSDKConnectionRequestServerHeaderParam SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestServerTypeArcus;)
+ (NSString * _Nonnull)XPSDKConnectionRequestServerTypeArcus SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKConnectionRequestServerTypeHusky;)
+ (NSString * _Nonnull)XPSDKConnectionRequestServerTypeHusky SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@class XPSDKVideoFactory;
@protocol XPSDKVideoConnectionDelegate;

/// High level video object for quick set-up and start a live video.
SWIFT_CLASS("_TtC12MIPSDKMobile14XPSDKLiveVideo")
@interface XPSDKLiveVideo : NSObject
/// Id of the camera from which will present live video.
@property (nonatomic, strong) XPSDKViewID _Nullable cameraId;
/// The properties of the video stream as width or height of the video and etc.
@property (nonatomic, copy) NSDictionary<NSString *, id> * _Nullable videoProperties;
/// The connection to the mobile server.
@property (nonatomic, strong) XPSDKConnection * _Nullable connection;
/// Instance of the object sends the request for a video and that creates the XPSDKVideoConnection object.
@property (nonatomic, strong) XPSDKVideoFactory * _Nullable videoFactory;
/// The streaming method.
/// XPSDKVideoConnectionMethodPull - Mobile server pushes only one frame on client request.
/// XPSDKVideoConnectionMethodPush -  Mobile server pushes unlimited stream of frames to the client on its request.
@property (nonatomic) XPSDKVideoConnectionMethod method;
/// The video connection delegate handling the receiving of frames.
@property (nonatomic, strong) id <XPSDKVideoConnectionDelegate> _Nullable videoConnectionDelegate;
/// Constructs a new LiveVideo object instance.
/// @param connection the connection to the Mobile server.
/// @param receiver the object that implements VideoReceiver interface and will receive the Frames from the Mobile server.
/// @param requestParams the parameters that will be included when the request is created.
- (nonnull instancetype)initWithConnection:(XPSDKConnection * _Nonnull)connection videoConnectionDelegate:(id <XPSDKVideoConnectionDelegate> _Nonnull)videoConnectionDelegate videoProperties:(NSDictionary<NSString *, id> * _Nonnull)videoProperties;
/// Requests a video from the Mobile server and if the request is successfully executed then it sets the value for the videoId variable.
/// @return NSError object with the information of the fail request or nol if there is working video connection or successfully created.
- (NSError * _Nullable)requestVideo SWIFT_WARN_UNUSED_RESULT;
/// Sends Rescale request.
/// @param width the width of the Frame that will be requested.
/// @param height the height of the Frame that will be requested.
/// @return Bool {@code true} if the request is sent successfully
/// {@code false} if it is not sent successfully .
- (BOOL)rescaleVideoWithWidth:(NSInteger)width height:(NSInteger)height SWIFT_WARN_UNUSED_RESULT;
/// Sends Crop request.
/// @param left Left coordinate (X) of the cropping rectangle.
/// @param top  Top coordinate (Y) of the cropping rectangle.
/// @param right Right coordinate (X) of the cropping rectangle.
/// @param bottom Bottom coordinate (Y) of the cropping rectangle.
/// @return Bool {@code true} if the request is sent successfully
/// {@code false} if it is not sent successfully .
- (BOOL)cropVideoWithLeft:(NSInteger)left top:(NSInteger)top right:(NSInteger)right bottom:(NSInteger)bottom SWIFT_WARN_UNUSED_RESULT;
- (void)stopVideo;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

/// XPSDKPTZMotion - Types of PTZ motions
typedef SWIFT_ENUM(NSInteger, XPSDKPTZMotion, open) {
/// Move camera Up
  XPSDKPTZMotionUp = 0,
/// Move camera Down
  XPSDKPTZMotionDown = 1,
/// Move camera Left
  XPSDKPTZMotionLeft = 2,
/// Move camera Right
  XPSDKPTZMotionRight = 3,
/// Zoom camera In
  XPSDKPTZMotionZoomIn = 4,
/// Zoom camera Out
  XPSDKPTZMotionZoomOut = 5,
/// Reset camera. Not used in the app at the moment
  XPSDKPTZMotionHome = 6,
};


SWIFT_CLASS("_TtC12MIPSDKMobile31XPSDKReconnectionErrorConstants")
@interface XPSDKReconnectionErrorConstants : NSObject
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull XPSDKReconnectionErrorDomain;)
+ (NSString * _Nonnull)XPSDKReconnectionErrorDomain SWIFT_WARN_UNUSED_RESULT;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) NSInteger XPSDKReconnectionErrorCode;)
+ (NSInteger)XPSDKReconnectionErrorCode SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@class NSURLSession;
@class NSURLSessionTask;
@class NSHTTPURLResponse;

/// XPSDKRequest class represents the request object that is being sent to the Mobile Server
SWIFT_CLASS("_TtC12MIPSDKMobile12XPSDKRequest")
@interface XPSDKRequest : NSObject <NSURLSessionTaskDelegate>
/// Cancel session method
- (void)cancelSession;
- (void)URLSession:(NSURLSession * _Nonnull)session task:(NSURLSessionTask * _Nonnull)task willPerformHTTPRedirection:(NSHTTPURLResponse * _Nonnull)response newRequest:(NSURLRequest * _Nonnull)request completionHandler:(void (^ _Nonnull)(NSURLRequest * _Nullable))completionHandler;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

@protocol NSCopying;
@class NSCoder;

/// Class that represents the response from server when a request is executed
/// The connection response class is internal and instances should only be created from the ConnectionRequest class. The goal of the class is to parse response from the server and serve it as simpler JavaScript object.
SWIFT_CLASS("_TtC12MIPSDKMobile13XPSDKResponse")
@interface XPSDKResponse : NSDictionary
/// The unparsed response from server as dictionary
@property (nonatomic, readonly, weak) NSDictionary * _Nullable response;
/// :nodoc:
@property (nonatomic, readonly, strong) NSDictionary * _Nullable parameters;
/// :nodoc:
@property (nonatomic, readonly, strong) NSArray * _Nullable subItems;
/// Items
@property (nonatomic, readonly, strong) NSArray * _Nullable outputsAndEvents;
@property (nonatomic, readonly, strong) NSArray * _Nullable responseItems;
/// endpoints: Get response items of type endpoint
/// <ul>
///   <li>
///     returns array of endpoint items
///   </li>
/// </ul>
- (NSArray * _Nullable)endpoints SWIFT_WARN_UNUSED_RESULT;
/// alarms: Get response items of type alarms
/// <ul>
///   <li>
///     returns array of alarm items
///   </li>
/// </ul>
- (NSArray * _Nullable)alarms SWIFT_WARN_UNUSED_RESULT;
/// alarmDataSettings: Get response items of type alarm data settings
/// <ul>
///   <li>
///     returns array of alarm data settings items
///   </li>
/// </ul>
- (NSArray * _Nullable)alarmDataSettings SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithObjects:(id _Nonnull const * _Nullable)objects forKeys:(id <NSCopying> _Nonnull const * _Nullable)keys count:(NSUInteger)cnt OBJC_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
@end


/// Class that represents a server info, setup by the user, with its settings
SWIFT_CLASS("_TtC12MIPSDKMobile15XPSDKServerInfo")
@interface XPSDKServerInfo : NSObject
/// Server name or IP Address
@property (nonatomic, copy) NSString * _Nullable serverHost;
/// Server port
@property (nonatomic, strong) NSNumber * _Nonnull serverPort;
/// Flag set to YES when the connection is secure
@property (nonatomic) BOOL isSecureConnection;
/// Service alias
@property (nonatomic, copy) NSString * _Nullable serviceAlias;
/// Communication Path
@property (nonatomic, copy) NSString * _Nullable communicationPath;
/// Server UUID
@property (nonatomic, copy) NSString * _Nullable serverUUID;
/// init: Init server info with host and port
/// \param host the server host
///
/// \param port the server port
///
- (nonnull instancetype)initWithHost:(NSString * _Nonnull)host port:(NSNumber * _Nonnull)port;
/// init: Init server info with urlString
/// \param urlString the url
///
- (nonnull instancetype)initWithUrlString:(NSString * _Nonnull)urlString uuid:(NSString * _Nullable)uuid serviceAlias:(NSString * _Nullable)serviceAlias;
/// communicationURL: Returns the communication url for server connection
/// <ul>
///   <li>
///     returns url: the server connection url
///   </li>
/// </ul>
- (NSURL * _Nullable)communicationURL SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


/// XPSDKVideoFactory class is used to create the VideoChannelThread and sending request for a video..
SWIFT_CLASS("_TtC12MIPSDKMobile17XPSDKVideoFactory")
@interface XPSDKVideoFactory : NSObject
/// The connection to the mobile server.
@property (nonatomic, strong) XPSDKConnection * _Nullable connection;
/// The connection to the mobile server.
@property (nonatomic, strong) XPSDKVideoConnection * _Nullable videoConnection;
/// Video quality for the video streaming
@property (nonatomic) NSInteger compressionLevel;
/// Frame per second value for the video streaming.
@property (nonatomic) NSInteger fps;
/// The video connection delegate handling the receiving of frames.
@property (nonatomic, strong) id <XPSDKVideoConnectionDelegate> _Nullable videoConnectionDelegate;
/// Flag that indicate if the video connection is already started.
@property (nonatomic) BOOL isVideoConnectionStarted;
/// Variable that indicate if the response for Crop or Rescale command is successful or not.
@property (nonatomic) BOOL successfullyChangedStream;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end

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