lpw
2024-06-12 09e73ac42fe2feb7925d954fed88a2eaa57697f7
commit | author | age
09e73a 1 #if 0
L 2 #elif defined(__arm64__) && __arm64__
3 // Generated by Apple Swift version 5.8.1 (swiftlang-5.8.0.124.5 clang-1403.0.22.11.100)
4 #ifndef DIDOMI_SWIFT_H
5 #define DIDOMI_SWIFT_H
6 #pragma clang diagnostic push
7 #pragma clang diagnostic ignored "-Wgcc-compat"
8
9 #if !defined(__has_include)
10 # define __has_include(x) 0
11 #endif
12 #if !defined(__has_attribute)
13 # define __has_attribute(x) 0
14 #endif
15 #if !defined(__has_feature)
16 # define __has_feature(x) 0
17 #endif
18 #if !defined(__has_warning)
19 # define __has_warning(x) 0
20 #endif
21
22 #if __has_include(<swift/objc-prologue.h>)
23 # include <swift/objc-prologue.h>
24 #endif
25
26 #pragma clang diagnostic ignored "-Wauto-import"
27 #if defined(__OBJC__)
28 #include <Foundation/Foundation.h>
29 #endif
30 #if defined(__cplusplus)
31 #include <cstdint>
32 #include <cstddef>
33 #include <cstdbool>
34 #include <cstring>
35 #include <stdlib.h>
36 #include <new>
37 #include <type_traits>
38 #else
39 #include <stdint.h>
40 #include <stddef.h>
41 #include <stdbool.h>
42 #include <string.h>
43 #endif
44 #if defined(__cplusplus)
45 #if __has_include(<ptrauth.h>)
46 # include <ptrauth.h>
47 #else
48 # ifndef __ptrauth_swift_value_witness_function_pointer
49 #  define __ptrauth_swift_value_witness_function_pointer(x)
50 # endif
51 #endif
52 #endif
53
54 #if !defined(SWIFT_TYPEDEFS)
55 # define SWIFT_TYPEDEFS 1
56 # if __has_include(<uchar.h>)
57 #  include <uchar.h>
58 # elif !defined(__cplusplus)
59 typedef uint_least16_t char16_t;
60 typedef uint_least32_t char32_t;
61 # endif
62 typedef float swift_float2  __attribute__((__ext_vector_type__(2)));
63 typedef float swift_float3  __attribute__((__ext_vector_type__(3)));
64 typedef float swift_float4  __attribute__((__ext_vector_type__(4)));
65 typedef double swift_double2  __attribute__((__ext_vector_type__(2)));
66 typedef double swift_double3  __attribute__((__ext_vector_type__(3)));
67 typedef double swift_double4  __attribute__((__ext_vector_type__(4)));
68 typedef int swift_int2  __attribute__((__ext_vector_type__(2)));
69 typedef int swift_int3  __attribute__((__ext_vector_type__(3)));
70 typedef int swift_int4  __attribute__((__ext_vector_type__(4)));
71 typedef unsigned int swift_uint2  __attribute__((__ext_vector_type__(2)));
72 typedef unsigned int swift_uint3  __attribute__((__ext_vector_type__(3)));
73 typedef unsigned int swift_uint4  __attribute__((__ext_vector_type__(4)));
74 #endif
75
76 #if !defined(SWIFT_PASTE)
77 # define SWIFT_PASTE_HELPER(x, y) x##y
78 # define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
79 #endif
80 #if !defined(SWIFT_METATYPE)
81 # define SWIFT_METATYPE(X) Class
82 #endif
83 #if !defined(SWIFT_CLASS_PROPERTY)
84 # if __has_feature(objc_class_property)
85 #  define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
86 # else
87 #  define SWIFT_CLASS_PROPERTY(...) 
88 # endif
89 #endif
90 #if !defined(SWIFT_RUNTIME_NAME)
91 # if __has_attribute(objc_runtime_name)
92 #  define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
93 # else
94 #  define SWIFT_RUNTIME_NAME(X) 
95 # endif
96 #endif
97 #if !defined(SWIFT_COMPILE_NAME)
98 # if __has_attribute(swift_name)
99 #  define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
100 # else
101 #  define SWIFT_COMPILE_NAME(X) 
102 # endif
103 #endif
104 #if !defined(SWIFT_METHOD_FAMILY)
105 # if __has_attribute(objc_method_family)
106 #  define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
107 # else
108 #  define SWIFT_METHOD_FAMILY(X) 
109 # endif
110 #endif
111 #if !defined(SWIFT_NOESCAPE)
112 # if __has_attribute(noescape)
113 #  define SWIFT_NOESCAPE __attribute__((noescape))
114 # else
115 #  define SWIFT_NOESCAPE 
116 # endif
117 #endif
118 #if !defined(SWIFT_RELEASES_ARGUMENT)
119 # if __has_attribute(ns_consumed)
120 #  define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
121 # else
122 #  define SWIFT_RELEASES_ARGUMENT 
123 # endif
124 #endif
125 #if !defined(SWIFT_WARN_UNUSED_RESULT)
126 # if __has_attribute(warn_unused_result)
127 #  define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
128 # else
129 #  define SWIFT_WARN_UNUSED_RESULT 
130 # endif
131 #endif
132 #if !defined(SWIFT_NORETURN)
133 # if __has_attribute(noreturn)
134 #  define SWIFT_NORETURN __attribute__((noreturn))
135 # else
136 #  define SWIFT_NORETURN 
137 # endif
138 #endif
139 #if !defined(SWIFT_CLASS_EXTRA)
140 # define SWIFT_CLASS_EXTRA 
141 #endif
142 #if !defined(SWIFT_PROTOCOL_EXTRA)
143 # define SWIFT_PROTOCOL_EXTRA 
144 #endif
145 #if !defined(SWIFT_ENUM_EXTRA)
146 # define SWIFT_ENUM_EXTRA 
147 #endif
148 #if !defined(SWIFT_CLASS)
149 # if __has_attribute(objc_subclassing_restricted)
150 #  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
151 #  define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
152 # else
153 #  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
154 #  define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
155 # endif
156 #endif
157 #if !defined(SWIFT_RESILIENT_CLASS)
158 # if __has_attribute(objc_class_stub)
159 #  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
160 #  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
161 # else
162 #  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
163 #  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
164 # endif
165 #endif
166 #if !defined(SWIFT_PROTOCOL)
167 # define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
168 # define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
169 #endif
170 #if !defined(SWIFT_EXTENSION)
171 # define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
172 #endif
173 #if !defined(OBJC_DESIGNATED_INITIALIZER)
174 # if __has_attribute(objc_designated_initializer)
175 #  define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
176 # else
177 #  define OBJC_DESIGNATED_INITIALIZER 
178 # endif
179 #endif
180 #if !defined(SWIFT_ENUM_ATTR)
181 # if __has_attribute(enum_extensibility)
182 #  define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
183 # else
184 #  define SWIFT_ENUM_ATTR(_extensibility) 
185 # endif
186 #endif
187 #if !defined(SWIFT_ENUM)
188 # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
189 # if __has_feature(generalized_swift_name)
190 #  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
191 # else
192 #  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
193 # endif
194 #endif
195 #if !defined(SWIFT_UNAVAILABLE)
196 # define SWIFT_UNAVAILABLE __attribute__((unavailable))
197 #endif
198 #if !defined(SWIFT_UNAVAILABLE_MSG)
199 # define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
200 #endif
201 #if !defined(SWIFT_AVAILABILITY)
202 # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
203 #endif
204 #if !defined(SWIFT_WEAK_IMPORT)
205 # define SWIFT_WEAK_IMPORT __attribute__((weak_import))
206 #endif
207 #if !defined(SWIFT_DEPRECATED)
208 # define SWIFT_DEPRECATED __attribute__((deprecated))
209 #endif
210 #if !defined(SWIFT_DEPRECATED_MSG)
211 # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
212 #endif
213 #if !defined(SWIFT_DEPRECATED_OBJC)
214 # if __has_feature(attribute_diagnose_if_objc)
215 #  define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
216 # else
217 #  define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
218 # endif
219 #endif
220 #if defined(__OBJC__)
221 #if !defined(IBSegueAction)
222 # define IBSegueAction 
223 #endif
224 #endif
225 #if !defined(SWIFT_EXTERN)
226 # if defined(__cplusplus)
227 #  define SWIFT_EXTERN extern "C"
228 # else
229 #  define SWIFT_EXTERN extern
230 # endif
231 #endif
232 #if !defined(SWIFT_CALL)
233 # define SWIFT_CALL __attribute__((swiftcall))
234 #endif
235 #if !defined(SWIFT_INDIRECT_RESULT)
236 # define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result))
237 #endif
238 #if !defined(SWIFT_CONTEXT)
239 # define SWIFT_CONTEXT __attribute__((swift_context))
240 #endif
241 #if !defined(SWIFT_ERROR_RESULT)
242 # define SWIFT_ERROR_RESULT __attribute__((swift_error_result))
243 #endif
244 #if defined(__cplusplus)
245 # define SWIFT_NOEXCEPT noexcept
246 #else
247 # define SWIFT_NOEXCEPT 
248 #endif
249 #if defined(_WIN32)
250 #if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
251 # define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport)
252 #endif
253 #else
254 #if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
255 # define SWIFT_IMPORT_STDLIB_SYMBOL 
256 #endif
257 #endif
258 #if defined(__OBJC__)
259 #if __has_feature(objc_modules)
260 #if __has_warning("-Watimport-in-framework-header")
261 #pragma clang diagnostic ignored "-Watimport-in-framework-header"
262 #endif
263 @import Foundation;
264 @import ObjectiveC;
265 @import UIKit;
266 #endif
267
268 #endif
269 #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
270 #pragma clang diagnostic ignored "-Wduplicate-method-arg"
271 #if __has_warning("-Wpragma-clang-attribute")
272 # pragma clang diagnostic ignored "-Wpragma-clang-attribute"
273 #endif
274 #pragma clang diagnostic ignored "-Wunknown-pragmas"
275 #pragma clang diagnostic ignored "-Wnullability"
276 #pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
277
278 #if __has_attribute(external_source_symbol)
279 # pragma push_macro("any")
280 # undef any
281 # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="Didomi",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
282 # pragma pop_macro("any")
283 #endif
284
285 #if defined(__OBJC__)
286
287 /// Consent status to a vendor or purpose.
288 typedef SWIFT_ENUM(NSInteger, ConsentStatus, open) {
289   ConsentStatusEnable = 0,
290   ConsentStatusDisable = 1,
291   ConsentStatusUnknown = 2,
292 };
293
294 @class NSString;
295 @class DDMCurrentUserStatusPurpose;
296 @class DDMCurrentUserStatusVendor;
297 enum Regulation : NSInteger;
298
299 SWIFT_CLASS_NAMED("CurrentUserStatus")
300 @interface DDMCurrentUserStatus : NSObject
301 @property (nonatomic, readonly, copy) NSDictionary<NSString *, DDMCurrentUserStatusPurpose *> * _Nonnull purposes;
302 @property (nonatomic, readonly, copy) NSDictionary<NSString *, DDMCurrentUserStatusVendor *> * _Nonnull vendors;
303 @property (nonatomic, readonly, copy) NSString * _Nonnull userID;
304 @property (nonatomic, readonly, copy) NSString * _Nonnull created;
305 @property (nonatomic, readonly, copy) NSString * _Nonnull updated;
306 @property (nonatomic, readonly, copy) NSString * _Nonnull consentString;
307 @property (nonatomic, readonly, copy) NSString * _Nonnull additionalConsent;
308 @property (nonatomic, readonly) enum Regulation regulation;
309 @property (nonatomic, readonly, copy) NSString * _Nonnull didomiDCS;
310 - (nonnull instancetype)initWithPurposes:(NSDictionary<NSString *, DDMCurrentUserStatusPurpose *> * _Nonnull)purposes vendors:(NSDictionary<NSString *, DDMCurrentUserStatusVendor *> * _Nonnull)vendors OBJC_DESIGNATED_INITIALIZER;
311 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
312 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
313 @end
314
315
316 @interface DDMCurrentUserStatus (SWIFT_EXTENSION(Didomi))
317 @end
318
319
320 SWIFT_CLASS_NAMED("PurposeStatus")
321 @interface DDMCurrentUserStatusPurpose : NSObject
322 @property (nonatomic, readonly, copy) NSString * _Nonnull id;
323 @property (nonatomic) BOOL enabled;
324 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id enabled:(BOOL)enabled OBJC_DESIGNATED_INITIALIZER;
325 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
326 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
327 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
328 @end
329
330
331 SWIFT_CLASS_NAMED("VendorStatus")
332 @interface DDMCurrentUserStatusVendor : NSObject
333 @property (nonatomic, readonly, copy) NSString * _Nonnull id;
334 @property (nonatomic) BOOL enabled;
335 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id enabled:(BOOL)enabled OBJC_DESIGNATED_INITIALIZER;
336 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
337 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
338 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
339 @end
340
341
342 /// Class used to asynchronously enable and disable purposes and vendors through different methods.
343 /// These changes will not be reflected on the user status until the <code>commit</code> method is called.
344 SWIFT_CLASS("_TtC6Didomi28CurrentUserStatusTransaction")
345 @interface CurrentUserStatusTransaction : NSObject
346 /// Enable purposes based on an array of IDs.
347 /// \param ids array of purpose IDs.
348 ///
349 ///
350 /// returns:
351 /// current instance of <code>CurrentUserStatusTransaction</code>.
352 - (CurrentUserStatusTransaction * _Nonnull)enablePurposes:(NSArray<NSString *> * _Nonnull)ids;
353 /// Enable vendors based on an array of IDs.
354 /// \param ids array of vendor IDs.
355 ///
356 ///
357 /// returns:
358 /// current instance of <code>CurrentUserStatusTransaction</code>.
359 - (CurrentUserStatusTransaction * _Nonnull)enableVendors:(NSArray<NSString *> * _Nonnull)ids;
360 /// Enable a single purpose based on its ID.
361 /// \param id purpose ID.
362 ///
363 ///
364 /// returns:
365 /// current instance of <code>CurrentUserStatusTransaction</code>.
366 - (CurrentUserStatusTransaction * _Nonnull)enablePurpose:(NSString * _Nonnull)id;
367 /// Enable a single vendor based on its ID.
368 /// \param id vendor ID.
369 ///
370 ///
371 /// returns:
372 /// current instance of <code>CurrentUserStatusTransaction</code>.
373 - (CurrentUserStatusTransaction * _Nonnull)enableVendor:(NSString * _Nonnull)id;
374 /// Disable purposes based on an array of IDs.
375 /// \param ids array of purpose IDs.
376 ///
377 ///
378 /// returns:
379 /// current instance of <code>CurrentUserStatusTransaction</code>.
380 - (CurrentUserStatusTransaction * _Nonnull)disablePurposes:(NSArray<NSString *> * _Nonnull)ids;
381 /// Disable vendors based on an array of IDs.
382 /// \param ids array of vendor IDs.
383 ///
384 ///
385 /// returns:
386 /// current instance of <code>CurrentUserStatusTransaction</code>.
387 - (CurrentUserStatusTransaction * _Nonnull)disableVendors:(NSArray<NSString *> * _Nonnull)ids;
388 /// Disable a single purpose based on its ID.
389 /// \param id purpose ID.
390 ///
391 ///
392 /// returns:
393 /// current instance of <code>CurrentUserStatusTransaction</code>.
394 - (CurrentUserStatusTransaction * _Nonnull)disablePurpose:(NSString * _Nonnull)id;
395 /// Disable a single vendor based on its ID.
396 /// \param id vendor ID.
397 ///
398 ///
399 /// returns:
400 /// current instance of <code>CurrentUserStatusTransaction</code>.
401 - (CurrentUserStatusTransaction * _Nonnull)disableVendor:(NSString * _Nonnull)id;
402 /// Commit the user status changes made through the “enable” and “disable” methods.
403 ///
404 /// returns:
405 /// <em>true</em> if user’s choices have been updated, <em>false</em> otherwise.
406 - (BOOL)commit SWIFT_WARN_UNUSED_RESULT;
407 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
408 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
409 @end
410
411
412 @protocol ViewProviderDelegate;
413 @class DidomiInitializeParameters;
414 @class DDMErrorEvent;
415 @class DDMEventListener;
416 @class DDMPurpose;
417 @class DDMVendor;
418
419 SWIFT_CLASS("_TtC6Didomi6Didomi")
420 @interface Didomi : NSObject
421 SWIFT_CLASS_PROPERTY(@property (nonatomic, class, strong) Didomi * _Nonnull shared;)
422 + (Didomi * _Nonnull)shared SWIFT_WARN_UNUSED_RESULT;
423 + (void)setShared:(Didomi * _Nonnull)value;
424 @property (nonatomic, weak) id <ViewProviderDelegate> _Nullable viewProviderDelegate;
425 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
426 /// Initialize the Didomi SDK
427 /// \param parameters object specifying parameters to initialize the SDK.
428 ///
429 - (void)initialize:(DidomiInitializeParameters * _Nonnull)parameters;
430 /// Set custom user agent name and version.
431 /// \param name Agent name.
432 ///
433 /// \param version Agent version.
434 ///
435 - (void)setUserAgentWithName:(NSString * _Nonnull)name version:(NSString * _Nonnull)version;
436 /// Set the user consent status.
437 /// \param enabledPurposeIds set containing <em>enabled purpose ids</em>
438 ///
439 /// \param disabledPurposeIds set containing <em>disabled purpose ids</em>
440 ///
441 /// \param enabledVendorIds set containing <em>enabled vendor ids</em>
442 ///
443 /// \param disabledVendorIds set containing <em>disabled purpose ids</em>
444 ///
445 ///
446 /// returns:
447 /// <em>true</em> if consent status has been updated, <em>false</em> otherwise.
448 - (BOOL)setUserConsentStatusWithEnabledPurposeIds:(NSSet<NSString *> * _Nonnull)enabledPurposeIds disabledPurposeIds:(NSSet<NSString *> * _Nonnull)disabledPurposeIds enabledVendorIds:(NSSet<NSString *> * _Nonnull)enabledVendorIds disabledVendorIds:(NSSet<NSString *> * _Nonnull)disabledVendorIds SWIFT_WARN_UNUSED_RESULT;
449 /// Determine if the user is subject to a regulation that requires consent collection.
450 /// This along with the choices that the user has or has not made
451 /// will determine each time that the SDK is initialized if the notice should be displayed or not.
452 ///
453 /// returns:
454 /// <em>true</em> if consent is required, <em>false</em> if it is not required.
455 - (BOOL)isConsentRequired SWIFT_WARN_UNUSED_RESULT;
456 /// Determine if consent information is available for all purposes and vendors that are required
457 ///
458 /// returns:
459 /// <em>true</em> if consent is required and consent information is available, <em>false</em> otherwise.
460 - (BOOL)isUserConsentStatusPartial SWIFT_WARN_UNUSED_RESULT;
461 /// Determine if legitimate interest information is available for all purposes and vendors that are required
462 ///
463 /// returns:
464 /// <em>true</em> if consent is required and legitimate interest information is available, <em>false</em> otherwise.
465 - (BOOL)isUserLegitimateInterestStatusPartial SWIFT_WARN_UNUSED_RESULT;
466 /// Set the user status for purposes and vendors for consent and legitimate interest.
467 /// \param purposesConsentStatus boolean used to determine if consent will be enabled or disabled for all purposes.
468 ///
469 /// \param purposesLIStatus boolean used to determine if legitimate interest will be enabled or disabled for all purposes.
470 ///
471 /// \param vendorsConsentStatus boolean used to determine if consent will be enabled or disabled for all vendors.
472 ///
473 /// \param vendorsLIStatus boolean used to determine if legitimate interest will be enabled or disabled for all vendors.
474 ///
475 ///
476 /// returns:
477 /// <em>true</em> if consent status has been updated, <em>false</em> otherwise.
478 - (BOOL)setUserStatusWithPurposesConsentStatus:(BOOL)purposesConsentStatus purposesLIStatus:(BOOL)purposesLIStatus vendorsConsentStatus:(BOOL)vendorsConsentStatus vendorsLIStatus:(BOOL)vendorsLIStatus;
479 /// Set the user status for purposes and vendors for consent and legitimate interest.
480 /// \param enabledConsentPurposeIds List of purpose IDs to enable for consent.
481 ///
482 /// \param disabledConsentPurposeIds List of purpose IDs to disable for consent.
483 ///
484 /// \param enabledLIPurposeIds List of purpose IDs to enable for LI.
485 ///
486 /// \param disabledLIPurposeIds List of purpose IDs to disable for LI.
487 ///
488 /// \param enabledConsentVendorIds List of vendor IDs to enable for consent.
489 ///
490 /// \param disabledConsentVendorIds List of vendor IDs to disable for consent.
491 ///
492 /// \param enabledLIVendorIds List of vendor IDs to enable for LI.
493 ///
494 /// \param disabledLIVendorIds List of vendor IDs to disable for LI.
495 ///
496 - (BOOL)setUserStatusWithEnabledConsentPurposeIds:(NSSet<NSString *> * _Nonnull)enabledConsentPurposeIds disabledConsentPurposeIds:(NSSet<NSString *> * _Nonnull)disabledConsentPurposeIds enabledLIPurposeIds:(NSSet<NSString *> * _Nonnull)enabledLIPurposeIds disabledLIPurposeIds:(NSSet<NSString *> * _Nonnull)disabledLIPurposeIds enabledConsentVendorIds:(NSSet<NSString *> * _Nonnull)enabledConsentVendorIds disabledConsentVendorIds:(NSSet<NSString *> * _Nonnull)disabledConsentVendorIds enabledLIVendorIds:(NSSet<NSString *> * _Nonnull)enabledLIVendorIds disabledLIVendorIds:(NSSet<NSString *> * _Nonnull)disabledLIVendorIds;
497 /// Method that allows to enable consent and legitimate interest for all the required purposes.
498 ///
499 /// returns:
500 /// <em>true</em> if consent status has been updated, <em>false</em> otherwise.
501 - (BOOL)setUserAgreeToAll;
502 /// Method that allows to disable consent and legitimate interest for all the required purposes and vendors.
503 ///
504 /// returns:
505 /// <em>true</em> if consent status has been updated, <em>false</em> otherwise.
506 - (BOOL)setUserDisagreeToAll;
507 /// Provide a function that needs to be called once the SDK is ready
508 /// Automatically call the function if the SDK is already ready (that’s why this is not a standard event)
509 - (void)onReadyWithCallback:(void (^ _Nonnull)(void))callback;
510 /// Accepts a closure that will be called if an unexpected situation occurs.
511 /// \param callback closure to be called if an unexpected situation occurs.
512 ///
513 - (void)onErrorWithCallback:(void (^ _Nonnull)(DDMErrorEvent * _Nonnull))callback;
514 /// Listen for changes on the status of a vendor.
515 /// \param id vendor ID.
516 ///
517 /// \param callback callback to be executed when there are changes on the specified vendor.
518 ///
519 - (void)addVendorStatusListenerWithId:(NSString * _Nonnull)id :(void (^ _Nonnull)(DDMCurrentUserStatusVendor * _Nonnull))callback;
520 /// Stop listening for changes on the status of a vendor.
521 /// \param id vendor ID.
522 ///
523 - (void)removeVendorStatusListenerWithId:(NSString * _Nonnull)id;
524 /// Remove all consents for the user
525 - (void)reset;
526 /// Get the configured purpose IDs
527 /// @return
528 - (NSSet<NSString *> * _Nonnull)getRequiredPurposeIds SWIFT_WARN_UNUSED_RESULT;
529 /// Get the configured vendor IDs
530 /// @return
531 - (NSSet<NSString *> * _Nonnull)getRequiredVendorIds SWIFT_WARN_UNUSED_RESULT;
532 /// Add an event listener
533 /// \param listener listener to be added.
534 ///
535 - (void)addEventListenerWithListener:(DDMEventListener * _Nonnull)listener;
536 /// Remove an event listener
537 /// \param listener listener to be removed.
538 ///
539 - (void)removeEventListenerWithListener:(DDMEventListener * _Nonnull)listener;
540 /// Is the Didomi SDK ready?
541 - (BOOL)isReady SWIFT_WARN_UNUSED_RESULT;
542 /// Method used to get an array of required purposes.
543 ///
544 /// returns:
545 /// array of required purposes.
546 - (NSArray<DDMPurpose *> * _Nonnull)getRequiredPurposes SWIFT_WARN_UNUSED_RESULT;
547 /// Method used to get an array of required vendors.
548 ///
549 /// returns:
550 /// array of required vendors.
551 - (NSArray<DDMVendor *> * _Nonnull)getRequiredVendors SWIFT_WARN_UNUSED_RESULT;
552 /// Method used to get a Purpose based on its ID.
553 /// \param purposeId purpose ID used in the search.
554 ///
555 ///
556 /// returns:
557 /// purpose found in the array.
558 - (DDMPurpose * _Nullable)getPurposeWithPurposeId:(NSString * _Nonnull)purposeId SWIFT_WARN_UNUSED_RESULT;
559 /// Method used to get a Vendor based on its ID.
560 /// \param vendorId vendor ID used in the search.
561 ///
562 ///
563 /// returns:
564 /// vendor found in the array.
565 - (DDMVendor * _Nullable)getVendorWithVendorId:(NSString * _Nonnull)vendorId SWIFT_WARN_UNUSED_RESULT;
566 /// Get number of vendors.
567 /// <ul>
568 ///   <li>
569 ///     Returns the count of all vendors
570 ///   </li>
571 /// </ul>
572 - (NSInteger)getTotalVendorCount SWIFT_WARN_UNUSED_RESULT;
573 /// Get number of IAB vendors
574 /// <ul>
575 ///   <li>
576 ///     Returns the count of IAB vendors
577 ///   </li>
578 /// </ul>
579 - (NSInteger)getIABVendorCount SWIFT_WARN_UNUSED_RESULT;
580 /// Get number of non-IAB vendors
581 /// <ul>
582 ///   <li>
583 ///     Returns the count of non-IAB vendors
584 ///   </li>
585 /// </ul>
586 - (NSInteger)getNonIABVendorCount SWIFT_WARN_UNUSED_RESULT;
587 /// Get JavaScript to embed into a WebView to pass the consent status from the app
588 /// to the Didomi Web SDK embedded into the WebView
589 /// Inject the returned JavaScript into a WebView
590 /// \param extra Extra JavaScript to inject in the returned code
591 ///
592 ///
593 /// returns:
594 /// JavaScript code to inject in a WebView
595 - (NSString * _Nonnull)getJavaScriptForWebViewWithExtra:(NSString * _Nonnull)extra SWIFT_WARN_UNUSED_RESULT;
596 /// Get a query-string to add to the URL of a WebView or Chrome Custom Tab to pass the consent status from the app to the Didomi Web SDK embedded on the target URL.
597 /// The returned parameter will have the format <code>didomiConfig.user.externalConsent.value=...</code> It includes the user consent information URL-encoded and JSON-encoded.
598 /// Append the returned query-string parameter to the URL of your WebView or SFSafariViewController.
599 /// See https://developers.didomi.io/cmp/mobile-sdk/share-consent-with-webviews for more information.
600 ///
601 /// returns:
602 /// Query string parameter to append to URL
603 - (NSString * _Nonnull)getQueryStringForWebView SWIFT_WARN_UNUSED_RESULT;
604 /// Method used to update the selected language of the Didomi SDK and any property that depends on it.
605 /// In most cases this method doesn’t need to be called. It would only be required for those apps that allow language change on-the-fly, i.e.: from within the app rather than from the device settings.
606 /// In order to update the language of the views displayed by the Didomi SDK, this method needs to be called before these views are displayed.
607 /// \param languageCode string containing the language code e.g.: “es”, “fr”, etc.
608 ///
609 - (void)updateSelectedLanguageWithLanguageCode:(NSString * _Nonnull)languageCode;
610 @end
611
612 typedef SWIFT_ENUM(NSInteger, Views, open) {
613   ViewsPurposes = 0,
614   ViewsSensitivePersonalInformation = 1,
615   ViewsVendors = 2,
616 };
617
618 @class UIViewController;
619
620 /// Protocol used to provide the view controllers for the preferences/purposes and notice view.
621 /// To provide customs views, this protocol will have to be implemented.
622 /// This protocol is implemented by the Didomi singleton to provide the default view controllers.
623 SWIFT_PROTOCOL("_TtP6Didomi20ViewProviderDelegate_")
624 @protocol ViewProviderDelegate
625 /// Method used to provide a view controller that will be used to display the notice.
626 /// \param position string that represents the position of the notice (e.g.: bottom, popup, etc.).
627 ///
628 /// \param skipped Whether notice display is skipped and Preferences are displayed directly
629 ///
630 ///
631 /// returns:
632 /// the view controller associated to the notice.
633 - (UIViewController * _Nonnull)getNoticeViewControllerWithPosition:(NSString * _Nonnull)position noticeSkipped:(BOOL)noticeSkipped SWIFT_WARN_UNUSED_RESULT;
634 /// Method used to provide a view controller that will be used to display the preferences/purposes view.
635 ///
636 /// returns:
637 /// the view controller associated to the preferences/purposes view.
638 - (UIViewController * _Nonnull)getPreferencesViewController SWIFT_WARN_UNUSED_RESULT;
639 @end
640
641
642 @interface Didomi (SWIFT_EXTENSION(Didomi)) <ViewProviderDelegate>
643 - (UIViewController * _Nonnull)getNoticeViewControllerWithPosition:(NSString * _Nonnull)position noticeSkipped:(BOOL)noticeSkipped SWIFT_WARN_UNUSED_RESULT;
644 - (UIViewController * _Nonnull)getPreferencesViewController SWIFT_WARN_UNUSED_RESULT;
645 @end
646
647 @class UserAuthParams;
648 @class DDMUserStatus;
649
650 @interface Didomi (SWIFT_EXTENSION(Didomi))
651 /// Provide the objects required to display UI elements
652 - (void)setupUIWithContainerController:(UIViewController * _Nonnull)containerController;
653 /// Force show the consent notice without checking if consent is required
654 /// Important: Do not keep a local reference to the View Controller itself as that could create a memory leak
655 - (void)forceShowNotice;
656 /// Show the consent notice (if required, not disabled in the config and not already displayed)
657 - (void)showNotice;
658 /// Hide the notice if it is currently displayed
659 - (void)hideNotice;
660 /// Check if the consent notice is currently displayed
661 /// @return
662 - (BOOL)isNoticeVisible SWIFT_WARN_UNUSED_RESULT;
663 /// Check if the consent should be collected depending on if we have any consents or if we have some consents but the number of days before displaying the notice again has not expired yet
664 ///
665 /// returns:
666 /// A boolean depending if the consent should be collected or not
667 - (BOOL)shouldConsentBeCollected SWIFT_WARN_UNUSED_RESULT SWIFT_DEPRECATED_MSG("Use shouldUserStatusBeCollected() instead.");
668 /// Determine if the User Status (consent) should be collected or not. User Status should be collected if:
669 /// <ul>
670 ///   <li>
671 ///     Regulation is different from NONE and
672 ///   </li>
673 ///   <li>
674 ///     User status is partial and
675 ///   </li>
676 ///   <li>
677 ///     The number of days before displaying the notice again has exceeded the limit specified on the Console or no User Status has been saved
678 ///   </li>
679 /// </ul>
680 ///
681 /// returns:
682 /// A boolean depending if the User Status (consent) should be collected or not
683 - (BOOL)shouldUserStatusBeCollected SWIFT_WARN_UNUSED_RESULT;
684 /// Check if user status is partial
685 ///
686 /// returns:
687 /// <em>true</em> if user status is partial, <em>false</em> otherwise
688 - (BOOL)isUserStatusPartial SWIFT_WARN_UNUSED_RESULT;
689 /// Show the preferences screen when/if the SDK is ready. By default the purposes list will be displayed.
690 /// \param controller view controller from where preferences will be presented.
691 ///
692 /// \param view a value from <code>Didomi.Views</code>. It can be <code>.purposes</code> or <code>.sensitivePersonalInformation</code> or <code>.vendors</code> (<code>ViewsPurposes</code> or <code>ViewsSensitivePersonalInformation</code> or <code>ViewsVendors</code> in Objective-C)
693 ///
694 - (void)showPreferencesWithController:(UIViewController * _Nullable)controller view:(enum Views)view;
695 /// Hide the preferences popup for purposes
696 - (void)hidePreferences;
697 /// Method used to check if the Preferences view is visible.
698 ///
699 /// returns:
700 /// <em>true</em> if Preferences view is visible, <em>false</em> otherwise.
701 - (BOOL)isPreferencesVisible SWIFT_WARN_UNUSED_RESULT;
702 /// Method used to get a translated text based on the key being passed.
703 /// The language and the source of this translated text will depend on the availability of the translation for the specific key.
704 /// The language being used will be either the selected language of the SDK (based on device Locale and other parameters) or the language specified by app developers as the default language being used by the SDK. The source can be either the <code>didomi_config.json</code> file which can be either local or remote, or the <code>didomi_master_config.json</code> file which is bundled within the SDK.
705 /// These are the attempts performed by the SDK to try to find a translation for the specific key:
706 /// <ul>
707 ///   <li>
708 ///     Get translated value in user locale (selected language) from <code>didomi_config.json</code> (either local or remote).
709 ///   </li>
710 ///   <li>
711 ///     Get translated value in default locale (from the config) from <code>didomi_config.json</code> (either local or remote).
712 ///   </li>
713 ///   <li>
714 ///     Get translated value in user locale (selected language) from <code>didomi_master_config.json</code> (bundled within the Didomi SDK).
715 ///   </li>
716 ///   <li>
717 ///     Get translated value in default locale (from the config) from <code>didomi_master_config.json</code> (bundled within the Didomi SDK).
718 ///   </li>
719 /// </ul>
720 /// If no translation can be found after these 4 attempts, the key will be returned.
721 /// App developers can provide these translated texts through the <code>didomi_config.json</code> file (locally or remotely) in 3 different ways:
722 /// <ul>
723 ///   <li>
724 ///     Custom texts for the consent notice: https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-notice#texts
725 ///   </li>
726 ///   <li>
727 ///     Custom texts for the preferences: https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-preferences-popup#text
728 ///   </li>
729 ///   <li>
730 ///     Custom texts for custom notices: https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-theme#translatable-texts-for-custom-notices
731 ///   </li>
732 /// </ul>
733 /// \param key used to find its corresponding value in one of the different sources.
734 ///
735 ///
736 /// returns:
737 /// a translated string if a translation was found, the same key that was passed otherwise.
738 - (NSString * _Nonnull)getTranslatedTextWithKey:(NSString * _Nonnull)key SWIFT_WARN_UNUSED_RESULT;
739 /// Method used to get a dictionary/map in the form of { “en”: “Key in English”, “fr”: “Key in French.” }
740 /// for a given key.
741 /// \param key used to find its corresponding value in the dictionary/map.
742 ///
743 ///
744 /// returns:
745 /// dictionary containing the different translations for a given key.
746 - (NSDictionary<NSString *, NSString *> * _Nullable)getTextWithKey:(NSString * _Nonnull)key SWIFT_WARN_UNUSED_RESULT;
747 /// Set the minimum level of messages to log
748 /// Messages with a level below <code>minLevel</code> will not be logged.
749 /// Levels are standard levels from <code>OSLogType</code> (https://developer.apple.com/documentation/os/logging/choosing_the_log_level_for_a_message):
750 /// <ul>
751 ///   <li>
752 ///     OSLogType.info (1)
753 ///   </li>
754 ///   <li>
755 ///     OSLogType.debug (2)
756 ///   </li>
757 ///   <li>
758 ///     OSLogType.error (16)
759 ///   </li>
760 ///   <li>
761 ///     OSLogType.fault (17)
762 ///   </li>
763 /// </ul>
764 /// We recommend setting <code>OSLogType.error</code> (16) in production
765 /// \param minLevel Minimum level of messages to log
766 ///
767 - (void)setLogLevelWithMinLevel:(uint8_t)minLevel;
768 /// Set organization user information
769 /// \param id Organization user ID
770 ///
771 - (void)setUserWithId:(NSString * _Nonnull)id;
772 /// Set organization user information and display consent notice if it is needed after synchronization
773 /// \param id Organization user ID
774 ///
775 /// \param containerController View controller from which we can setup Didomi UI
776 ///
777 - (void)setUserWithId:(NSString * _Nonnull)id containerController:(UIViewController * _Nonnull)containerController;
778 /// Set organization user information with authentication
779 /// \param userAuthParams Organization user authentication params
780 ///
781 - (void)setUserWithUserAuthParams:(UserAuthParams * _Nonnull)userAuthParams;
782 /// Set organization user information with authentication, and display consent notice if it is needed after synchronization
783 /// \param userAuthParams Organization user authentication params
784 ///
785 /// \param containerController View controller from which we can setup Didomi UI
786 ///
787 - (void)setUserWithUserAuthParams:(UserAuthParams * _Nonnull)userAuthParams containerController:(UIViewController * _Nonnull)containerController;
788 /// Remove organization user information (should be called when the SDK is initialized).
789 - (void)clearUser;
790 /// Get an instance of <code>UserStatus</code> containing all the information related to the user’s choices.
791 - (DDMUserStatus * _Nonnull)getUserStatus SWIFT_WARN_UNUSED_RESULT;
792 /// Get an instance of <code>CurrentUserStatus</code> containing all the information related to the user’s choices.
793 - (DDMCurrentUserStatus * _Nonnull)getCurrentUserStatus SWIFT_WARN_UNUSED_RESULT;
794 /// Save user’s choices.
795 /// \param currentUserStatus instance of CurrentUserStatus containing the user’s choices.
796 ///
797 ///
798 /// returns:
799 /// <em>true</em> if user’s choices have been saved, <em>false</em> otherwise.
800 - (BOOL)setCurrentUserStatusWithCurrentUserStatus:(DDMCurrentUserStatus * _Nonnull)currentUserStatus SWIFT_WARN_UNUSED_RESULT;
801 /// Create an instance of  the<code>CurrentUserStatusTransaction</code> class.
802 /// This class is used to asynchronously enable and disable purposes and vendors through different methods.
803 /// These changes will not be reflected on the user status until the <code>commit</code> method of the returned object is called.
804 ///
805 /// returns:
806 /// an instance of the <code>CurrentUserStatusTransaction</code> class
807 - (CurrentUserStatusTransaction * _Nonnull)openCurrentUserStatusTransaction SWIFT_WARN_UNUSED_RESULT;
808 @end
809
810 enum DDMErrorEventType : NSInteger;
811
812 /// Type used to represent unexpected situations during SDK initialization.
813 SWIFT_CLASS_NAMED("DidomiErrorEvent")
814 @interface DDMErrorEvent : NSObject
815 @property (nonatomic, readonly, copy) NSString * _Nonnull descriptionText;
816 @property (nonatomic, readonly) enum DDMErrorEventType type;
817 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
818 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
819 @end
820
821 /// Enum used to represent a type for the DidomiErrorEvent class.
822 typedef SWIFT_ENUM_NAMED(NSInteger, DDMErrorEventType, "DidomiErrorEventType", open) {
823   DDMErrorEventTypeNilProperty = 0,
824   DDMErrorEventTypeNotReady = 1,
825   DDMErrorEventTypeFailedAlready = 2,
826   DDMErrorEventTypeConfigFileError = 3,
827   DDMErrorEventTypeInvalidApiKey = 4,
828 };
829
830
831 /// Initialization parameters for Didomi SDK
832 SWIFT_CLASS("_TtC6Didomi26DidomiInitializeParameters")
833 @interface DidomiInitializeParameters : NSObject
834 - (nonnull instancetype)initWithApiKey:(NSString * _Nonnull)apiKey localConfigurationPath:(NSString * _Nullable)localConfigurationPath remoteConfigurationURL:(NSString * _Nullable)remoteConfigurationURL providerID:(NSString * _Nullable)providerID disableDidomiRemoteConfig:(BOOL)disableDidomiRemoteConfig languageCode:(NSString * _Nullable)languageCode noticeID:(NSString * _Nullable)noticeID OBJC_DESIGNATED_INITIALIZER;
835 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
836 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
837 @end
838
839
840 enum DDMEventType : NSInteger;
841
842 /// Class used as a listener for internal events occurred in the SDK.
843 SWIFT_CLASS_NAMED("EventListener")
844 @interface DDMEventListener : NSObject
845 /// Closures used to execute code when the different events are triggered.
846 /// Internal
847 @property (nonatomic, copy) void (^ _Nonnull onConsentChanged)(enum DDMEventType);
848 @property (nonatomic, copy) void (^ _Nonnull onReady)(enum DDMEventType);
849 @property (nonatomic, copy) void (^ _Nonnull onError)(DDMErrorEvent * _Nonnull);
850 /// Notice
851 @property (nonatomic, copy) void (^ _Nonnull onHideNotice)(enum DDMEventType);
852 @property (nonatomic, copy) void (^ _Nonnull onShowNotice)(enum DDMEventType);
853 @property (nonatomic, copy) void (^ _Nonnull onNoticeClickAgree)(enum DDMEventType);
854 @property (nonatomic, copy) void (^ _Nonnull onNoticeClickDisagree)(enum DDMEventType);
855 @property (nonatomic, copy) void (^ _Nonnull onNoticeClickMoreInfo)(enum DDMEventType);
856 @property (nonatomic, copy) void (^ _Nonnull onNoticeClickViewVendors)(enum DDMEventType);
857 @property (nonatomic, copy) void (^ _Nonnull onNoticeClickViewSPIPurposes)(enum DDMEventType);
858 @property (nonatomic, copy) void (^ _Nonnull onNoticeClickPrivacyPolicy)(enum DDMEventType);
859 /// Preferences
860 @property (nonatomic, copy) void (^ _Nonnull onHidePreferences)(enum DDMEventType);
861 @property (nonatomic, copy) void (^ _Nonnull onShowPreferences)(enum DDMEventType);
862 /// Preferences - Views
863 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickViewPurposes)(enum DDMEventType);
864 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickViewVendors)(enum DDMEventType);
865 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickViewSPIPurposes)(enum DDMEventType);
866 /// Preferences - Purpose
867 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickAgreeToAll)(enum DDMEventType);
868 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickDisagreeToAll)(enum DDMEventType);
869 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickAgreeToAllPurposes)(enum DDMEventType);
870 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickDisagreeToAllPurposes)(enum DDMEventType);
871 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickResetAllPurposes)(enum DDMEventType);
872 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickPurposeAgree)(enum DDMEventType, NSString * _Nullable);
873 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickPurposeDisagree)(enum DDMEventType, NSString * _Nullable);
874 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickCategoryAgree)(enum DDMEventType, NSString * _Nullable);
875 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickCategoryDisagree)(enum DDMEventType, NSString * _Nullable);
876 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickSaveChoices)(enum DDMEventType);
877 /// Preferences - Vendor
878 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickAgreeToAllVendors)(enum DDMEventType);
879 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickDisagreeToAllVendors)(enum DDMEventType);
880 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickVendorAgree)(enum DDMEventType, NSString * _Nullable);
881 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickVendorDisagree)(enum DDMEventType, NSString * _Nullable);
882 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickVendorSaveChoices)(enum DDMEventType);
883 /// Preferences - Sensitive Personal Information
884 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickSPIPurposeAgree)(enum DDMEventType, NSString * _Nullable);
885 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickSPIPurposeDisagree)(enum DDMEventType, NSString * _Nullable);
886 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickSPICategoryAgree)(enum DDMEventType, NSString * _Nullable);
887 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickSPICategoryDisagree)(enum DDMEventType, NSString * _Nullable);
888 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickSPIPurposeSaveChoices)(enum DDMEventType);
889 /// Sync
890 @property (nonatomic, copy) void (^ _Nonnull onSyncDone)(enum DDMEventType, NSString * _Nullable);
891 @property (nonatomic, copy) void (^ _Nonnull onSyncError)(enum DDMEventType, NSString * _Nullable);
892 /// Language
893 @property (nonatomic, copy) void (^ _Nonnull onLanguageUpdated)(enum DDMEventType, NSString * _Nullable);
894 @property (nonatomic, copy) void (^ _Nonnull onLanguageUpdateFailed)(enum DDMEventType, NSString * _Nullable);
895 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
896 @end
897
898 /// Enum used to define the different type of internal events that can be triggered from the SDK.
899 /// Please keep the current order because of Unity bridge.
900 typedef SWIFT_ENUM_NAMED(NSInteger, DDMEventType, "EventType", open) {
901   DDMEventTypeConsentChanged = 0,
902   DDMEventTypeHideNotice = 1,
903   DDMEventTypeReady = 2,
904   DDMEventTypeShowNotice = 3,
905   DDMEventTypeShowPreferences = 4,
906   DDMEventTypeHidePreferences = 5,
907   DDMEventTypeNoticeClickAgree = 6,
908   DDMEventTypeNoticeClickDisagree = 7,
909   DDMEventTypeNoticeClickMoreInfo = 8,
910   DDMEventTypeNoticeClickViewVendors = 9,
911   DDMEventTypeNoticeClickPrivacyPolicy = 10,
912   DDMEventTypePreferencesClickAgreeToAll = 11,
913   DDMEventTypePreferencesClickDisagreeToAll = 12,
914   DDMEventTypePreferencesClickAgreeToAllPurposes = 13,
915   DDMEventTypePreferencesClickDisagreeToAllPurposes = 14,
916   DDMEventTypePreferencesClickResetAllPurposes = 15,
917   DDMEventTypePreferencesClickAgreeToAllVendors = 16,
918   DDMEventTypePreferencesClickDisagreeToAllVendors = 17,
919   DDMEventTypePreferencesClickPurposeAgree = 18,
920   DDMEventTypePreferencesClickPurposeDisagree = 19,
921   DDMEventTypePreferencesClickCategoryAgree = 20,
922   DDMEventTypePreferencesClickCategoryDisagree = 21,
923   DDMEventTypePreferencesClickViewVendors = 22,
924   DDMEventTypePreferencesClickViewPurposes = 23,
925   DDMEventTypePreferencesClickSaveChoices = 24,
926   DDMEventTypePreferencesClickVendorAgree = 25,
927   DDMEventTypePreferencesClickVendorDisagree = 26,
928   DDMEventTypePreferencesClickVendorSaveChoices = 27,
929 /// Sync
930   DDMEventTypeSyncDone = 28,
931   DDMEventTypeSyncError = 29,
932 /// Language
933   DDMEventTypeLanguageUpdated = 30,
934   DDMEventTypeLanguageUpdateFailed = 31,
935 /// Preferences - Sensitive Personal Information
936   DDMEventTypeNoticeClickViewSPIPurposes = 32,
937   DDMEventTypePreferencesClickViewSPIPurposes = 33,
938   DDMEventTypePreferencesClickSPIPurposeAgree = 34,
939   DDMEventTypePreferencesClickSPIPurposeDisagree = 35,
940   DDMEventTypePreferencesClickSPICategoryAgree = 36,
941   DDMEventTypePreferencesClickSPICategoryDisagree = 37,
942   DDMEventTypePreferencesClickSPIPurposeSaveChoices = 38,
943 };
944
945
946
947
948
949
950
951
952 @class NSCoder;
953 @protocol UIFocusEnvironment;
954 @class NSBundle;
955
956 SWIFT_CLASS("_TtC6Didomi20NoticeViewController")
957 @interface NoticeViewController : UIViewController
958 - (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER;
959 - (void)viewDidLoad;
960 @property (nonatomic, readonly, copy) NSArray<id <UIFocusEnvironment>> * _Nonnull preferredFocusEnvironments;
961 - (nonnull instancetype)initWithNibName:(NSString * _Nullable)nibNameOrNil bundle:(NSBundle * _Nullable)nibBundleOrNil SWIFT_UNAVAILABLE;
962 @end
963
964
965
966
967 /// Public class representing a single Purpose configuration.
968 SWIFT_CLASS_NAMED("Purpose")
969 @interface DDMPurpose : NSObject
970 /// Purpose id used by Didomi SDK.
971 @property (nonatomic, readonly, copy) NSString * _Nonnull id;
972 /// Purpose human-readable name, translated in selected language.
973 @property (nonatomic, readonly, copy) NSString * _Nonnull name;
974 /// Purpose description, translated in selected language.
975 @property (nonatomic, readonly, copy) NSString * _Nonnull descriptionText;
976 /// Initializer method for the Purpose class.
977 /// \param id Purpose id used by Didomi SDK.
978 ///
979 /// \param name Purpose human-readable name, translated in selected language.
980 ///
981 /// \param descriptionText Purpose description, translated in selected language.
982 ///
983 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id name:(NSString * _Nonnull)name descriptionText:(NSString * _Nonnull)descriptionText OBJC_DESIGNATED_INITIALIZER;
984 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
985 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
986 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
987 @end
988
989
990 /// Regulation for which Didomi SDK is currently configured. Only one regulation is active at each run.
991 typedef SWIFT_ENUM(NSInteger, Regulation, open) {
992   RegulationGdpr = 0,
993   RegulationCcpa = 1,
994   RegulationCpa = 2,
995   RegulationCpra = 3,
996   RegulationCtdpa = 4,
997   RegulationUcpa = 5,
998   RegulationVcdpa = 6,
999   RegulationNone = 7,
1000 };
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022 /// Protocol for User Authentication
1023 /// declare the user id
1024 SWIFT_PROTOCOL("_TtP6Didomi8UserAuth_")
1025 @protocol UserAuth
1026 /// Organization ID to associate with the user
1027 @property (nonatomic, readonly, copy) NSString * _Nonnull id;
1028 @end
1029
1030
1031 /// Protocol for User Authentication Parameters
1032 /// declare the common properties of encryption / hash parameters
1033 SWIFT_CLASS("_TtC6Didomi14UserAuthParams")
1034 @interface UserAuthParams : NSObject <UserAuth>
1035 /// Organization ID to associate with the user
1036 @property (nonatomic, copy) NSString * _Nonnull id;
1037 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1038 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1039 @end
1040
1041
1042 /// User Authentication Parameters with encryption
1043 SWIFT_CLASS("_TtC6Didomi28UserAuthWithEncryptionParams")
1044 @interface UserAuthWithEncryptionParams : UserAuthParams
1045 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id algorithm:(NSString * _Nonnull)algorithm secretID:(NSString * _Nonnull)secretID initializationVector:(NSString * _Nonnull)initializationVector;
1046 /// Initializer for Objective-C
1047 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id algorithm:(NSString * _Nonnull)algorithm secretID:(NSString * _Nonnull)secretID initializationVector:(NSString * _Nonnull)initializationVector legacyExpiration:(NSTimeInterval)legacyExpiration;
1048 /// Initialization Vector used for computing the user ID
1049 @property (nonatomic, copy) NSString * _Nonnull initializationVector;
1050 @end
1051
1052
1053 /// User Authentication Parameters with hash
1054 SWIFT_CLASS("_TtC6Didomi22UserAuthWithHashParams")
1055 @interface UserAuthWithHashParams : UserAuthParams
1056 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id algorithm:(NSString * _Nonnull)algorithm secretID:(NSString * _Nonnull)secretID digest:(NSString * _Nonnull)digest salt:(NSString * _Nullable)salt;
1057 /// Initializer for Objective-C
1058 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id algorithm:(NSString * _Nonnull)algorithm secretID:(NSString * _Nonnull)secretID digest:(NSString * _Nonnull)digest salt:(NSString * _Nullable)salt legacyExpiration:(NSTimeInterval)legacyExpiration;
1059 /// Salt used for computing the user ID (optional)
1060 @property (nonatomic, copy) NSString * _Nullable salt;
1061 /// Digest used for representing the user ID
1062 @property (nonatomic, copy) NSString * _Nonnull digest;
1063 @end
1064
1065 @class DDMUserStatusPurposes;
1066 @class DDMUserStatusVendors;
1067
1068 SWIFT_CLASS_NAMED("UserStatus")
1069 @interface DDMUserStatus : NSObject
1070 @property (nonatomic, readonly, strong) DDMUserStatusPurposes * _Nonnull purposes;
1071 @property (nonatomic, readonly, strong) DDMUserStatusVendors * _Nonnull vendors;
1072 @property (nonatomic, readonly, copy) NSString * _Nonnull userID;
1073 @property (nonatomic, readonly, copy) NSString * _Nonnull created;
1074 @property (nonatomic, readonly, copy) NSString * _Nonnull updated;
1075 @property (nonatomic, readonly, copy) NSString * _Nonnull consentString;
1076 @property (nonatomic, readonly, copy) NSString * _Nonnull additionalConsent;
1077 @property (nonatomic, readonly) enum Regulation regulation;
1078 @property (nonatomic, readonly, copy) NSString * _Nonnull didomiDCS;
1079 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
1080 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1081 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1082 @end
1083
1084
1085 @interface DDMUserStatus (SWIFT_EXTENSION(Didomi))
1086 @end
1087
1088 @class DDMUserStatusIDs;
1089
1090 SWIFT_CLASS_NAMED("Purposes")
1091 @interface DDMUserStatusPurposes : NSObject
1092 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull consent;
1093 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull legitimateInterest;
1094 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull global;
1095 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull essential;
1096 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
1097 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1098 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1099 @end
1100
1101
1102 @interface DDMUserStatus (SWIFT_EXTENSION(Didomi))
1103 @end
1104
1105
1106 SWIFT_CLASS_NAMED("IDs")
1107 @interface DDMUserStatusIDs : NSObject
1108 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull enabled;
1109 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull disabled;
1110 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
1111 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1112 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1113 @end
1114
1115
1116 @interface DDMUserStatus (SWIFT_EXTENSION(Didomi))
1117 @end
1118
1119
1120 SWIFT_CLASS_NAMED("Vendors")
1121 @interface DDMUserStatusVendors : NSObject
1122 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull consent;
1123 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull legitimateInterest;
1124 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull global;
1125 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull globalConsent;
1126 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull globalLegitimateInterest;
1127 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
1128 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1129 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1130 @end
1131
1132 @class DDMVendorNamespaces;
1133 @class DDMVendorURL;
1134
1135 /// Public class representing a single Vendor configuration.
1136 SWIFT_CLASS_NAMED("Vendor")
1137 @interface DDMVendor : NSObject
1138 /// Unique ID of the vendor provided by Didomi. This ID does not include prefixes. Example: “vendor-1”.
1139 @property (nonatomic, readonly, copy) NSString * _Nonnull id;
1140 /// Name of the vendor.
1141 @property (nonatomic, readonly, copy) NSString * _Nonnull name;
1142 /// Namespaces of the vendor (IAB, num) and their corresponding IDs.
1143 @property (nonatomic, readonly, strong) DDMVendorNamespaces * _Nullable namespaces;
1144 /// URL to the privacy policy of the vendor.
1145 @property (nonatomic, readonly, copy) NSString * _Nullable policyUrl;
1146 /// Purpose IDs that the vendor is operating under the consent legal basis.
1147 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull purposeIDs;
1148 /// Purpose IDs that the vendor is operating under the legitimate interest legal basis.
1149 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull legIntPurposeIDs;
1150 /// Set with IDs that represent features.
1151 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull featureIDs;
1152 /// Set with IDs that represent flexible purposes. Introduced in IAB TCF v2.
1153 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull flexiblePurposeIDs;
1154 /// Set with IDs that represent Special Purposes. Introduced in IAB TCF v2.
1155 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull specialPurposeIDs;
1156 /// Set with IDs that represent Special Features. Introduced in IAB TCF v2.
1157 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull specialFeatureIDs;
1158 /// Privacy policy and LI disclaimer urls. Introduced in IAB TCF v2.2.
1159 @property (nonatomic, readonly, copy) NSArray<DDMVendorURL *> * _Nullable urls;
1160 /// Initializer method for the Purpose class.
1161 /// \param id Unique ID of the vendor.
1162 ///
1163 /// \param name Name of the vendor.
1164 ///
1165 /// \param policyUrl URL to the privacy policy of the vendor.
1166 ///
1167 /// \param namespaces Namespaces of the vendor (IAB, num) and their corresponding IDs.
1168 ///
1169 /// \param purposeIDs Purpose IDs that the vendor is operating under the consent legal basis.
1170 ///
1171 /// \param legIntPurposeIDs Purpose IDs that the vendor is operating under the legitimate interest legal basis.
1172 ///
1173 /// \param featureIDs Set with IDs that represent features.
1174 ///
1175 /// \param flexiblePurposeIDs Set with IDs that represent flexible purposes.
1176 ///
1177 /// \param specialPurposeIDs Set with IDs that represent Special Purposes.
1178 ///
1179 /// \param specialFeatureIDs Set with IDs that represent Special Features.
1180 ///
1181 /// \param urls Privacy policy and LI disclaimer urls.
1182 ///
1183 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id name:(NSString * _Nonnull)name policyUrl:(NSString * _Nullable)policyUrl namespaces:(DDMVendorNamespaces * _Nullable)namespaces purposeIDs:(NSSet<NSString *> * _Nonnull)purposeIDs legIntPurposeIDs:(NSSet<NSString *> * _Nonnull)legIntPurposeIDs featureIDs:(NSSet<NSString *> * _Nonnull)featureIDs flexiblePurposeIDs:(NSSet<NSString *> * _Nonnull)flexiblePurposeIDs specialPurposeIDs:(NSSet<NSString *> * _Nonnull)specialPurposeIDs specialFeatureIDs:(NSSet<NSString *> * _Nonnull)specialFeatureIDs urls:(NSArray<DDMVendorURL *> * _Nullable)urls OBJC_DESIGNATED_INITIALIZER;
1184 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
1185 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1186 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1187 @end
1188
1189
1190 @interface DDMVendor (SWIFT_EXTENSION(Didomi))
1191 @end
1192
1193
1194 /// Store additional IDs (IAB, num) for the Vendor.
1195 SWIFT_CLASS_NAMED("Namespaces")
1196 @interface DDMVendorNamespaces : NSObject
1197 @property (nonatomic, readonly, copy) NSString * _Nullable iab2;
1198 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
1199 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1200 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1201 @end
1202
1203
1204 @interface DDMVendor (SWIFT_EXTENSION(Didomi))
1205 @end
1206
1207
1208 /// Store localized URLs for privacy policy and LI claim.
1209 SWIFT_CLASS_NAMED("URL")
1210 @interface DDMVendorURL : NSObject
1211 @property (nonatomic, readonly, copy) NSString * _Nullable langID;
1212 @property (nonatomic, readonly, copy) NSString * _Nullable privacy;
1213 @property (nonatomic, readonly, copy) NSString * _Nullable legIntClaim;
1214 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
1215 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1216 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1217 @end
1218
1219
1220
1221 #endif
1222 #if defined(__cplusplus)
1223 #endif
1224 #if __has_attribute(external_source_symbol)
1225 # pragma clang attribute pop
1226 #endif
1227 #pragma clang diagnostic pop
1228 #endif
1229
1230 #elif defined(__x86_64__) && __x86_64__
1231 // Generated by Apple Swift version 5.8.1 (swiftlang-5.8.0.124.5 clang-1403.0.22.11.100)
1232 #ifndef DIDOMI_SWIFT_H
1233 #define DIDOMI_SWIFT_H
1234 #pragma clang diagnostic push
1235 #pragma clang diagnostic ignored "-Wgcc-compat"
1236
1237 #if !defined(__has_include)
1238 # define __has_include(x) 0
1239 #endif
1240 #if !defined(__has_attribute)
1241 # define __has_attribute(x) 0
1242 #endif
1243 #if !defined(__has_feature)
1244 # define __has_feature(x) 0
1245 #endif
1246 #if !defined(__has_warning)
1247 # define __has_warning(x) 0
1248 #endif
1249
1250 #if __has_include(<swift/objc-prologue.h>)
1251 # include <swift/objc-prologue.h>
1252 #endif
1253
1254 #pragma clang diagnostic ignored "-Wauto-import"
1255 #if defined(__OBJC__)
1256 #include <Foundation/Foundation.h>
1257 #endif
1258 #if defined(__cplusplus)
1259 #include <cstdint>
1260 #include <cstddef>
1261 #include <cstdbool>
1262 #include <cstring>
1263 #include <stdlib.h>
1264 #include <new>
1265 #include <type_traits>
1266 #else
1267 #include <stdint.h>
1268 #include <stddef.h>
1269 #include <stdbool.h>
1270 #include <string.h>
1271 #endif
1272 #if defined(__cplusplus)
1273 #if __has_include(<ptrauth.h>)
1274 # include <ptrauth.h>
1275 #else
1276 # ifndef __ptrauth_swift_value_witness_function_pointer
1277 #  define __ptrauth_swift_value_witness_function_pointer(x)
1278 # endif
1279 #endif
1280 #endif
1281
1282 #if !defined(SWIFT_TYPEDEFS)
1283 # define SWIFT_TYPEDEFS 1
1284 # if __has_include(<uchar.h>)
1285 #  include <uchar.h>
1286 # elif !defined(__cplusplus)
1287 typedef uint_least16_t char16_t;
1288 typedef uint_least32_t char32_t;
1289 # endif
1290 typedef float swift_float2  __attribute__((__ext_vector_type__(2)));
1291 typedef float swift_float3  __attribute__((__ext_vector_type__(3)));
1292 typedef float swift_float4  __attribute__((__ext_vector_type__(4)));
1293 typedef double swift_double2  __attribute__((__ext_vector_type__(2)));
1294 typedef double swift_double3  __attribute__((__ext_vector_type__(3)));
1295 typedef double swift_double4  __attribute__((__ext_vector_type__(4)));
1296 typedef int swift_int2  __attribute__((__ext_vector_type__(2)));
1297 typedef int swift_int3  __attribute__((__ext_vector_type__(3)));
1298 typedef int swift_int4  __attribute__((__ext_vector_type__(4)));
1299 typedef unsigned int swift_uint2  __attribute__((__ext_vector_type__(2)));
1300 typedef unsigned int swift_uint3  __attribute__((__ext_vector_type__(3)));
1301 typedef unsigned int swift_uint4  __attribute__((__ext_vector_type__(4)));
1302 #endif
1303
1304 #if !defined(SWIFT_PASTE)
1305 # define SWIFT_PASTE_HELPER(x, y) x##y
1306 # define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
1307 #endif
1308 #if !defined(SWIFT_METATYPE)
1309 # define SWIFT_METATYPE(X) Class
1310 #endif
1311 #if !defined(SWIFT_CLASS_PROPERTY)
1312 # if __has_feature(objc_class_property)
1313 #  define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
1314 # else
1315 #  define SWIFT_CLASS_PROPERTY(...) 
1316 # endif
1317 #endif
1318 #if !defined(SWIFT_RUNTIME_NAME)
1319 # if __has_attribute(objc_runtime_name)
1320 #  define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
1321 # else
1322 #  define SWIFT_RUNTIME_NAME(X) 
1323 # endif
1324 #endif
1325 #if !defined(SWIFT_COMPILE_NAME)
1326 # if __has_attribute(swift_name)
1327 #  define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
1328 # else
1329 #  define SWIFT_COMPILE_NAME(X) 
1330 # endif
1331 #endif
1332 #if !defined(SWIFT_METHOD_FAMILY)
1333 # if __has_attribute(objc_method_family)
1334 #  define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
1335 # else
1336 #  define SWIFT_METHOD_FAMILY(X) 
1337 # endif
1338 #endif
1339 #if !defined(SWIFT_NOESCAPE)
1340 # if __has_attribute(noescape)
1341 #  define SWIFT_NOESCAPE __attribute__((noescape))
1342 # else
1343 #  define SWIFT_NOESCAPE 
1344 # endif
1345 #endif
1346 #if !defined(SWIFT_RELEASES_ARGUMENT)
1347 # if __has_attribute(ns_consumed)
1348 #  define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
1349 # else
1350 #  define SWIFT_RELEASES_ARGUMENT 
1351 # endif
1352 #endif
1353 #if !defined(SWIFT_WARN_UNUSED_RESULT)
1354 # if __has_attribute(warn_unused_result)
1355 #  define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
1356 # else
1357 #  define SWIFT_WARN_UNUSED_RESULT 
1358 # endif
1359 #endif
1360 #if !defined(SWIFT_NORETURN)
1361 # if __has_attribute(noreturn)
1362 #  define SWIFT_NORETURN __attribute__((noreturn))
1363 # else
1364 #  define SWIFT_NORETURN 
1365 # endif
1366 #endif
1367 #if !defined(SWIFT_CLASS_EXTRA)
1368 # define SWIFT_CLASS_EXTRA 
1369 #endif
1370 #if !defined(SWIFT_PROTOCOL_EXTRA)
1371 # define SWIFT_PROTOCOL_EXTRA 
1372 #endif
1373 #if !defined(SWIFT_ENUM_EXTRA)
1374 # define SWIFT_ENUM_EXTRA 
1375 #endif
1376 #if !defined(SWIFT_CLASS)
1377 # if __has_attribute(objc_subclassing_restricted)
1378 #  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
1379 #  define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
1380 # else
1381 #  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
1382 #  define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
1383 # endif
1384 #endif
1385 #if !defined(SWIFT_RESILIENT_CLASS)
1386 # if __has_attribute(objc_class_stub)
1387 #  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
1388 #  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
1389 # else
1390 #  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
1391 #  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
1392 # endif
1393 #endif
1394 #if !defined(SWIFT_PROTOCOL)
1395 # define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
1396 # define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
1397 #endif
1398 #if !defined(SWIFT_EXTENSION)
1399 # define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
1400 #endif
1401 #if !defined(OBJC_DESIGNATED_INITIALIZER)
1402 # if __has_attribute(objc_designated_initializer)
1403 #  define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
1404 # else
1405 #  define OBJC_DESIGNATED_INITIALIZER 
1406 # endif
1407 #endif
1408 #if !defined(SWIFT_ENUM_ATTR)
1409 # if __has_attribute(enum_extensibility)
1410 #  define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
1411 # else
1412 #  define SWIFT_ENUM_ATTR(_extensibility) 
1413 # endif
1414 #endif
1415 #if !defined(SWIFT_ENUM)
1416 # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
1417 # if __has_feature(generalized_swift_name)
1418 #  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
1419 # else
1420 #  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
1421 # endif
1422 #endif
1423 #if !defined(SWIFT_UNAVAILABLE)
1424 # define SWIFT_UNAVAILABLE __attribute__((unavailable))
1425 #endif
1426 #if !defined(SWIFT_UNAVAILABLE_MSG)
1427 # define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
1428 #endif
1429 #if !defined(SWIFT_AVAILABILITY)
1430 # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
1431 #endif
1432 #if !defined(SWIFT_WEAK_IMPORT)
1433 # define SWIFT_WEAK_IMPORT __attribute__((weak_import))
1434 #endif
1435 #if !defined(SWIFT_DEPRECATED)
1436 # define SWIFT_DEPRECATED __attribute__((deprecated))
1437 #endif
1438 #if !defined(SWIFT_DEPRECATED_MSG)
1439 # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
1440 #endif
1441 #if !defined(SWIFT_DEPRECATED_OBJC)
1442 # if __has_feature(attribute_diagnose_if_objc)
1443 #  define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
1444 # else
1445 #  define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
1446 # endif
1447 #endif
1448 #if defined(__OBJC__)
1449 #if !defined(IBSegueAction)
1450 # define IBSegueAction 
1451 #endif
1452 #endif
1453 #if !defined(SWIFT_EXTERN)
1454 # if defined(__cplusplus)
1455 #  define SWIFT_EXTERN extern "C"
1456 # else
1457 #  define SWIFT_EXTERN extern
1458 # endif
1459 #endif
1460 #if !defined(SWIFT_CALL)
1461 # define SWIFT_CALL __attribute__((swiftcall))
1462 #endif
1463 #if !defined(SWIFT_INDIRECT_RESULT)
1464 # define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result))
1465 #endif
1466 #if !defined(SWIFT_CONTEXT)
1467 # define SWIFT_CONTEXT __attribute__((swift_context))
1468 #endif
1469 #if !defined(SWIFT_ERROR_RESULT)
1470 # define SWIFT_ERROR_RESULT __attribute__((swift_error_result))
1471 #endif
1472 #if defined(__cplusplus)
1473 # define SWIFT_NOEXCEPT noexcept
1474 #else
1475 # define SWIFT_NOEXCEPT 
1476 #endif
1477 #if defined(_WIN32)
1478 #if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
1479 # define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport)
1480 #endif
1481 #else
1482 #if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
1483 # define SWIFT_IMPORT_STDLIB_SYMBOL 
1484 #endif
1485 #endif
1486 #if defined(__OBJC__)
1487 #if __has_feature(objc_modules)
1488 #if __has_warning("-Watimport-in-framework-header")
1489 #pragma clang diagnostic ignored "-Watimport-in-framework-header"
1490 #endif
1491 @import Foundation;
1492 @import ObjectiveC;
1493 @import UIKit;
1494 #endif
1495
1496 #endif
1497 #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
1498 #pragma clang diagnostic ignored "-Wduplicate-method-arg"
1499 #if __has_warning("-Wpragma-clang-attribute")
1500 # pragma clang diagnostic ignored "-Wpragma-clang-attribute"
1501 #endif
1502 #pragma clang diagnostic ignored "-Wunknown-pragmas"
1503 #pragma clang diagnostic ignored "-Wnullability"
1504 #pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
1505
1506 #if __has_attribute(external_source_symbol)
1507 # pragma push_macro("any")
1508 # undef any
1509 # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="Didomi",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
1510 # pragma pop_macro("any")
1511 #endif
1512
1513 #if defined(__OBJC__)
1514
1515 /// Consent status to a vendor or purpose.
1516 typedef SWIFT_ENUM(NSInteger, ConsentStatus, open) {
1517   ConsentStatusEnable = 0,
1518   ConsentStatusDisable = 1,
1519   ConsentStatusUnknown = 2,
1520 };
1521
1522 @class NSString;
1523 @class DDMCurrentUserStatusPurpose;
1524 @class DDMCurrentUserStatusVendor;
1525 enum Regulation : NSInteger;
1526
1527 SWIFT_CLASS_NAMED("CurrentUserStatus")
1528 @interface DDMCurrentUserStatus : NSObject
1529 @property (nonatomic, readonly, copy) NSDictionary<NSString *, DDMCurrentUserStatusPurpose *> * _Nonnull purposes;
1530 @property (nonatomic, readonly, copy) NSDictionary<NSString *, DDMCurrentUserStatusVendor *> * _Nonnull vendors;
1531 @property (nonatomic, readonly, copy) NSString * _Nonnull userID;
1532 @property (nonatomic, readonly, copy) NSString * _Nonnull created;
1533 @property (nonatomic, readonly, copy) NSString * _Nonnull updated;
1534 @property (nonatomic, readonly, copy) NSString * _Nonnull consentString;
1535 @property (nonatomic, readonly, copy) NSString * _Nonnull additionalConsent;
1536 @property (nonatomic, readonly) enum Regulation regulation;
1537 @property (nonatomic, readonly, copy) NSString * _Nonnull didomiDCS;
1538 - (nonnull instancetype)initWithPurposes:(NSDictionary<NSString *, DDMCurrentUserStatusPurpose *> * _Nonnull)purposes vendors:(NSDictionary<NSString *, DDMCurrentUserStatusVendor *> * _Nonnull)vendors OBJC_DESIGNATED_INITIALIZER;
1539 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1540 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1541 @end
1542
1543
1544 @interface DDMCurrentUserStatus (SWIFT_EXTENSION(Didomi))
1545 @end
1546
1547
1548 SWIFT_CLASS_NAMED("PurposeStatus")
1549 @interface DDMCurrentUserStatusPurpose : NSObject
1550 @property (nonatomic, readonly, copy) NSString * _Nonnull id;
1551 @property (nonatomic) BOOL enabled;
1552 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id enabled:(BOOL)enabled OBJC_DESIGNATED_INITIALIZER;
1553 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
1554 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1555 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1556 @end
1557
1558
1559 SWIFT_CLASS_NAMED("VendorStatus")
1560 @interface DDMCurrentUserStatusVendor : NSObject
1561 @property (nonatomic, readonly, copy) NSString * _Nonnull id;
1562 @property (nonatomic) BOOL enabled;
1563 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id enabled:(BOOL)enabled OBJC_DESIGNATED_INITIALIZER;
1564 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
1565 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1566 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1567 @end
1568
1569
1570 /// Class used to asynchronously enable and disable purposes and vendors through different methods.
1571 /// These changes will not be reflected on the user status until the <code>commit</code> method is called.
1572 SWIFT_CLASS("_TtC6Didomi28CurrentUserStatusTransaction")
1573 @interface CurrentUserStatusTransaction : NSObject
1574 /// Enable purposes based on an array of IDs.
1575 /// \param ids array of purpose IDs.
1576 ///
1577 ///
1578 /// returns:
1579 /// current instance of <code>CurrentUserStatusTransaction</code>.
1580 - (CurrentUserStatusTransaction * _Nonnull)enablePurposes:(NSArray<NSString *> * _Nonnull)ids;
1581 /// Enable vendors based on an array of IDs.
1582 /// \param ids array of vendor IDs.
1583 ///
1584 ///
1585 /// returns:
1586 /// current instance of <code>CurrentUserStatusTransaction</code>.
1587 - (CurrentUserStatusTransaction * _Nonnull)enableVendors:(NSArray<NSString *> * _Nonnull)ids;
1588 /// Enable a single purpose based on its ID.
1589 /// \param id purpose ID.
1590 ///
1591 ///
1592 /// returns:
1593 /// current instance of <code>CurrentUserStatusTransaction</code>.
1594 - (CurrentUserStatusTransaction * _Nonnull)enablePurpose:(NSString * _Nonnull)id;
1595 /// Enable a single vendor based on its ID.
1596 /// \param id vendor ID.
1597 ///
1598 ///
1599 /// returns:
1600 /// current instance of <code>CurrentUserStatusTransaction</code>.
1601 - (CurrentUserStatusTransaction * _Nonnull)enableVendor:(NSString * _Nonnull)id;
1602 /// Disable purposes based on an array of IDs.
1603 /// \param ids array of purpose IDs.
1604 ///
1605 ///
1606 /// returns:
1607 /// current instance of <code>CurrentUserStatusTransaction</code>.
1608 - (CurrentUserStatusTransaction * _Nonnull)disablePurposes:(NSArray<NSString *> * _Nonnull)ids;
1609 /// Disable vendors based on an array of IDs.
1610 /// \param ids array of vendor IDs.
1611 ///
1612 ///
1613 /// returns:
1614 /// current instance of <code>CurrentUserStatusTransaction</code>.
1615 - (CurrentUserStatusTransaction * _Nonnull)disableVendors:(NSArray<NSString *> * _Nonnull)ids;
1616 /// Disable a single purpose based on its ID.
1617 /// \param id purpose ID.
1618 ///
1619 ///
1620 /// returns:
1621 /// current instance of <code>CurrentUserStatusTransaction</code>.
1622 - (CurrentUserStatusTransaction * _Nonnull)disablePurpose:(NSString * _Nonnull)id;
1623 /// Disable a single vendor based on its ID.
1624 /// \param id vendor ID.
1625 ///
1626 ///
1627 /// returns:
1628 /// current instance of <code>CurrentUserStatusTransaction</code>.
1629 - (CurrentUserStatusTransaction * _Nonnull)disableVendor:(NSString * _Nonnull)id;
1630 /// Commit the user status changes made through the “enable” and “disable” methods.
1631 ///
1632 /// returns:
1633 /// <em>true</em> if user’s choices have been updated, <em>false</em> otherwise.
1634 - (BOOL)commit SWIFT_WARN_UNUSED_RESULT;
1635 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1636 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1637 @end
1638
1639
1640 @protocol ViewProviderDelegate;
1641 @class DidomiInitializeParameters;
1642 @class DDMErrorEvent;
1643 @class DDMEventListener;
1644 @class DDMPurpose;
1645 @class DDMVendor;
1646
1647 SWIFT_CLASS("_TtC6Didomi6Didomi")
1648 @interface Didomi : NSObject
1649 SWIFT_CLASS_PROPERTY(@property (nonatomic, class, strong) Didomi * _Nonnull shared;)
1650 + (Didomi * _Nonnull)shared SWIFT_WARN_UNUSED_RESULT;
1651 + (void)setShared:(Didomi * _Nonnull)value;
1652 @property (nonatomic, weak) id <ViewProviderDelegate> _Nullable viewProviderDelegate;
1653 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
1654 /// Initialize the Didomi SDK
1655 /// \param parameters object specifying parameters to initialize the SDK.
1656 ///
1657 - (void)initialize:(DidomiInitializeParameters * _Nonnull)parameters;
1658 /// Set custom user agent name and version.
1659 /// \param name Agent name.
1660 ///
1661 /// \param version Agent version.
1662 ///
1663 - (void)setUserAgentWithName:(NSString * _Nonnull)name version:(NSString * _Nonnull)version;
1664 /// Set the user consent status.
1665 /// \param enabledPurposeIds set containing <em>enabled purpose ids</em>
1666 ///
1667 /// \param disabledPurposeIds set containing <em>disabled purpose ids</em>
1668 ///
1669 /// \param enabledVendorIds set containing <em>enabled vendor ids</em>
1670 ///
1671 /// \param disabledVendorIds set containing <em>disabled purpose ids</em>
1672 ///
1673 ///
1674 /// returns:
1675 /// <em>true</em> if consent status has been updated, <em>false</em> otherwise.
1676 - (BOOL)setUserConsentStatusWithEnabledPurposeIds:(NSSet<NSString *> * _Nonnull)enabledPurposeIds disabledPurposeIds:(NSSet<NSString *> * _Nonnull)disabledPurposeIds enabledVendorIds:(NSSet<NSString *> * _Nonnull)enabledVendorIds disabledVendorIds:(NSSet<NSString *> * _Nonnull)disabledVendorIds SWIFT_WARN_UNUSED_RESULT;
1677 /// Determine if the user is subject to a regulation that requires consent collection.
1678 /// This along with the choices that the user has or has not made
1679 /// will determine each time that the SDK is initialized if the notice should be displayed or not.
1680 ///
1681 /// returns:
1682 /// <em>true</em> if consent is required, <em>false</em> if it is not required.
1683 - (BOOL)isConsentRequired SWIFT_WARN_UNUSED_RESULT;
1684 /// Determine if consent information is available for all purposes and vendors that are required
1685 ///
1686 /// returns:
1687 /// <em>true</em> if consent is required and consent information is available, <em>false</em> otherwise.
1688 - (BOOL)isUserConsentStatusPartial SWIFT_WARN_UNUSED_RESULT;
1689 /// Determine if legitimate interest information is available for all purposes and vendors that are required
1690 ///
1691 /// returns:
1692 /// <em>true</em> if consent is required and legitimate interest information is available, <em>false</em> otherwise.
1693 - (BOOL)isUserLegitimateInterestStatusPartial SWIFT_WARN_UNUSED_RESULT;
1694 /// Set the user status for purposes and vendors for consent and legitimate interest.
1695 /// \param purposesConsentStatus boolean used to determine if consent will be enabled or disabled for all purposes.
1696 ///
1697 /// \param purposesLIStatus boolean used to determine if legitimate interest will be enabled or disabled for all purposes.
1698 ///
1699 /// \param vendorsConsentStatus boolean used to determine if consent will be enabled or disabled for all vendors.
1700 ///
1701 /// \param vendorsLIStatus boolean used to determine if legitimate interest will be enabled or disabled for all vendors.
1702 ///
1703 ///
1704 /// returns:
1705 /// <em>true</em> if consent status has been updated, <em>false</em> otherwise.
1706 - (BOOL)setUserStatusWithPurposesConsentStatus:(BOOL)purposesConsentStatus purposesLIStatus:(BOOL)purposesLIStatus vendorsConsentStatus:(BOOL)vendorsConsentStatus vendorsLIStatus:(BOOL)vendorsLIStatus;
1707 /// Set the user status for purposes and vendors for consent and legitimate interest.
1708 /// \param enabledConsentPurposeIds List of purpose IDs to enable for consent.
1709 ///
1710 /// \param disabledConsentPurposeIds List of purpose IDs to disable for consent.
1711 ///
1712 /// \param enabledLIPurposeIds List of purpose IDs to enable for LI.
1713 ///
1714 /// \param disabledLIPurposeIds List of purpose IDs to disable for LI.
1715 ///
1716 /// \param enabledConsentVendorIds List of vendor IDs to enable for consent.
1717 ///
1718 /// \param disabledConsentVendorIds List of vendor IDs to disable for consent.
1719 ///
1720 /// \param enabledLIVendorIds List of vendor IDs to enable for LI.
1721 ///
1722 /// \param disabledLIVendorIds List of vendor IDs to disable for LI.
1723 ///
1724 - (BOOL)setUserStatusWithEnabledConsentPurposeIds:(NSSet<NSString *> * _Nonnull)enabledConsentPurposeIds disabledConsentPurposeIds:(NSSet<NSString *> * _Nonnull)disabledConsentPurposeIds enabledLIPurposeIds:(NSSet<NSString *> * _Nonnull)enabledLIPurposeIds disabledLIPurposeIds:(NSSet<NSString *> * _Nonnull)disabledLIPurposeIds enabledConsentVendorIds:(NSSet<NSString *> * _Nonnull)enabledConsentVendorIds disabledConsentVendorIds:(NSSet<NSString *> * _Nonnull)disabledConsentVendorIds enabledLIVendorIds:(NSSet<NSString *> * _Nonnull)enabledLIVendorIds disabledLIVendorIds:(NSSet<NSString *> * _Nonnull)disabledLIVendorIds;
1725 /// Method that allows to enable consent and legitimate interest for all the required purposes.
1726 ///
1727 /// returns:
1728 /// <em>true</em> if consent status has been updated, <em>false</em> otherwise.
1729 - (BOOL)setUserAgreeToAll;
1730 /// Method that allows to disable consent and legitimate interest for all the required purposes and vendors.
1731 ///
1732 /// returns:
1733 /// <em>true</em> if consent status has been updated, <em>false</em> otherwise.
1734 - (BOOL)setUserDisagreeToAll;
1735 /// Provide a function that needs to be called once the SDK is ready
1736 /// Automatically call the function if the SDK is already ready (that’s why this is not a standard event)
1737 - (void)onReadyWithCallback:(void (^ _Nonnull)(void))callback;
1738 /// Accepts a closure that will be called if an unexpected situation occurs.
1739 /// \param callback closure to be called if an unexpected situation occurs.
1740 ///
1741 - (void)onErrorWithCallback:(void (^ _Nonnull)(DDMErrorEvent * _Nonnull))callback;
1742 /// Listen for changes on the status of a vendor.
1743 /// \param id vendor ID.
1744 ///
1745 /// \param callback callback to be executed when there are changes on the specified vendor.
1746 ///
1747 - (void)addVendorStatusListenerWithId:(NSString * _Nonnull)id :(void (^ _Nonnull)(DDMCurrentUserStatusVendor * _Nonnull))callback;
1748 /// Stop listening for changes on the status of a vendor.
1749 /// \param id vendor ID.
1750 ///
1751 - (void)removeVendorStatusListenerWithId:(NSString * _Nonnull)id;
1752 /// Remove all consents for the user
1753 - (void)reset;
1754 /// Get the configured purpose IDs
1755 /// @return
1756 - (NSSet<NSString *> * _Nonnull)getRequiredPurposeIds SWIFT_WARN_UNUSED_RESULT;
1757 /// Get the configured vendor IDs
1758 /// @return
1759 - (NSSet<NSString *> * _Nonnull)getRequiredVendorIds SWIFT_WARN_UNUSED_RESULT;
1760 /// Add an event listener
1761 /// \param listener listener to be added.
1762 ///
1763 - (void)addEventListenerWithListener:(DDMEventListener * _Nonnull)listener;
1764 /// Remove an event listener
1765 /// \param listener listener to be removed.
1766 ///
1767 - (void)removeEventListenerWithListener:(DDMEventListener * _Nonnull)listener;
1768 /// Is the Didomi SDK ready?
1769 - (BOOL)isReady SWIFT_WARN_UNUSED_RESULT;
1770 /// Method used to get an array of required purposes.
1771 ///
1772 /// returns:
1773 /// array of required purposes.
1774 - (NSArray<DDMPurpose *> * _Nonnull)getRequiredPurposes SWIFT_WARN_UNUSED_RESULT;
1775 /// Method used to get an array of required vendors.
1776 ///
1777 /// returns:
1778 /// array of required vendors.
1779 - (NSArray<DDMVendor *> * _Nonnull)getRequiredVendors SWIFT_WARN_UNUSED_RESULT;
1780 /// Method used to get a Purpose based on its ID.
1781 /// \param purposeId purpose ID used in the search.
1782 ///
1783 ///
1784 /// returns:
1785 /// purpose found in the array.
1786 - (DDMPurpose * _Nullable)getPurposeWithPurposeId:(NSString * _Nonnull)purposeId SWIFT_WARN_UNUSED_RESULT;
1787 /// Method used to get a Vendor based on its ID.
1788 /// \param vendorId vendor ID used in the search.
1789 ///
1790 ///
1791 /// returns:
1792 /// vendor found in the array.
1793 - (DDMVendor * _Nullable)getVendorWithVendorId:(NSString * _Nonnull)vendorId SWIFT_WARN_UNUSED_RESULT;
1794 /// Get number of vendors.
1795 /// <ul>
1796 ///   <li>
1797 ///     Returns the count of all vendors
1798 ///   </li>
1799 /// </ul>
1800 - (NSInteger)getTotalVendorCount SWIFT_WARN_UNUSED_RESULT;
1801 /// Get number of IAB vendors
1802 /// <ul>
1803 ///   <li>
1804 ///     Returns the count of IAB vendors
1805 ///   </li>
1806 /// </ul>
1807 - (NSInteger)getIABVendorCount SWIFT_WARN_UNUSED_RESULT;
1808 /// Get number of non-IAB vendors
1809 /// <ul>
1810 ///   <li>
1811 ///     Returns the count of non-IAB vendors
1812 ///   </li>
1813 /// </ul>
1814 - (NSInteger)getNonIABVendorCount SWIFT_WARN_UNUSED_RESULT;
1815 /// Get JavaScript to embed into a WebView to pass the consent status from the app
1816 /// to the Didomi Web SDK embedded into the WebView
1817 /// Inject the returned JavaScript into a WebView
1818 /// \param extra Extra JavaScript to inject in the returned code
1819 ///
1820 ///
1821 /// returns:
1822 /// JavaScript code to inject in a WebView
1823 - (NSString * _Nonnull)getJavaScriptForWebViewWithExtra:(NSString * _Nonnull)extra SWIFT_WARN_UNUSED_RESULT;
1824 /// Get a query-string to add to the URL of a WebView or Chrome Custom Tab to pass the consent status from the app to the Didomi Web SDK embedded on the target URL.
1825 /// The returned parameter will have the format <code>didomiConfig.user.externalConsent.value=...</code> It includes the user consent information URL-encoded and JSON-encoded.
1826 /// Append the returned query-string parameter to the URL of your WebView or SFSafariViewController.
1827 /// See https://developers.didomi.io/cmp/mobile-sdk/share-consent-with-webviews for more information.
1828 ///
1829 /// returns:
1830 /// Query string parameter to append to URL
1831 - (NSString * _Nonnull)getQueryStringForWebView SWIFT_WARN_UNUSED_RESULT;
1832 /// Method used to update the selected language of the Didomi SDK and any property that depends on it.
1833 /// In most cases this method doesn’t need to be called. It would only be required for those apps that allow language change on-the-fly, i.e.: from within the app rather than from the device settings.
1834 /// In order to update the language of the views displayed by the Didomi SDK, this method needs to be called before these views are displayed.
1835 /// \param languageCode string containing the language code e.g.: “es”, “fr”, etc.
1836 ///
1837 - (void)updateSelectedLanguageWithLanguageCode:(NSString * _Nonnull)languageCode;
1838 @end
1839
1840 typedef SWIFT_ENUM(NSInteger, Views, open) {
1841   ViewsPurposes = 0,
1842   ViewsSensitivePersonalInformation = 1,
1843   ViewsVendors = 2,
1844 };
1845
1846 @class UIViewController;
1847
1848 /// Protocol used to provide the view controllers for the preferences/purposes and notice view.
1849 /// To provide customs views, this protocol will have to be implemented.
1850 /// This protocol is implemented by the Didomi singleton to provide the default view controllers.
1851 SWIFT_PROTOCOL("_TtP6Didomi20ViewProviderDelegate_")
1852 @protocol ViewProviderDelegate
1853 /// Method used to provide a view controller that will be used to display the notice.
1854 /// \param position string that represents the position of the notice (e.g.: bottom, popup, etc.).
1855 ///
1856 /// \param skipped Whether notice display is skipped and Preferences are displayed directly
1857 ///
1858 ///
1859 /// returns:
1860 /// the view controller associated to the notice.
1861 - (UIViewController * _Nonnull)getNoticeViewControllerWithPosition:(NSString * _Nonnull)position noticeSkipped:(BOOL)noticeSkipped SWIFT_WARN_UNUSED_RESULT;
1862 /// Method used to provide a view controller that will be used to display the preferences/purposes view.
1863 ///
1864 /// returns:
1865 /// the view controller associated to the preferences/purposes view.
1866 - (UIViewController * _Nonnull)getPreferencesViewController SWIFT_WARN_UNUSED_RESULT;
1867 @end
1868
1869
1870 @interface Didomi (SWIFT_EXTENSION(Didomi)) <ViewProviderDelegate>
1871 - (UIViewController * _Nonnull)getNoticeViewControllerWithPosition:(NSString * _Nonnull)position noticeSkipped:(BOOL)noticeSkipped SWIFT_WARN_UNUSED_RESULT;
1872 - (UIViewController * _Nonnull)getPreferencesViewController SWIFT_WARN_UNUSED_RESULT;
1873 @end
1874
1875 @class UserAuthParams;
1876 @class DDMUserStatus;
1877
1878 @interface Didomi (SWIFT_EXTENSION(Didomi))
1879 /// Provide the objects required to display UI elements
1880 - (void)setupUIWithContainerController:(UIViewController * _Nonnull)containerController;
1881 /// Force show the consent notice without checking if consent is required
1882 /// Important: Do not keep a local reference to the View Controller itself as that could create a memory leak
1883 - (void)forceShowNotice;
1884 /// Show the consent notice (if required, not disabled in the config and not already displayed)
1885 - (void)showNotice;
1886 /// Hide the notice if it is currently displayed
1887 - (void)hideNotice;
1888 /// Check if the consent notice is currently displayed
1889 /// @return
1890 - (BOOL)isNoticeVisible SWIFT_WARN_UNUSED_RESULT;
1891 /// Check if the consent should be collected depending on if we have any consents or if we have some consents but the number of days before displaying the notice again has not expired yet
1892 ///
1893 /// returns:
1894 /// A boolean depending if the consent should be collected or not
1895 - (BOOL)shouldConsentBeCollected SWIFT_WARN_UNUSED_RESULT SWIFT_DEPRECATED_MSG("Use shouldUserStatusBeCollected() instead.");
1896 /// Determine if the User Status (consent) should be collected or not. User Status should be collected if:
1897 /// <ul>
1898 ///   <li>
1899 ///     Regulation is different from NONE and
1900 ///   </li>
1901 ///   <li>
1902 ///     User status is partial and
1903 ///   </li>
1904 ///   <li>
1905 ///     The number of days before displaying the notice again has exceeded the limit specified on the Console or no User Status has been saved
1906 ///   </li>
1907 /// </ul>
1908 ///
1909 /// returns:
1910 /// A boolean depending if the User Status (consent) should be collected or not
1911 - (BOOL)shouldUserStatusBeCollected SWIFT_WARN_UNUSED_RESULT;
1912 /// Check if user status is partial
1913 ///
1914 /// returns:
1915 /// <em>true</em> if user status is partial, <em>false</em> otherwise
1916 - (BOOL)isUserStatusPartial SWIFT_WARN_UNUSED_RESULT;
1917 /// Show the preferences screen when/if the SDK is ready. By default the purposes list will be displayed.
1918 /// \param controller view controller from where preferences will be presented.
1919 ///
1920 /// \param view a value from <code>Didomi.Views</code>. It can be <code>.purposes</code> or <code>.sensitivePersonalInformation</code> or <code>.vendors</code> (<code>ViewsPurposes</code> or <code>ViewsSensitivePersonalInformation</code> or <code>ViewsVendors</code> in Objective-C)
1921 ///
1922 - (void)showPreferencesWithController:(UIViewController * _Nullable)controller view:(enum Views)view;
1923 /// Hide the preferences popup for purposes
1924 - (void)hidePreferences;
1925 /// Method used to check if the Preferences view is visible.
1926 ///
1927 /// returns:
1928 /// <em>true</em> if Preferences view is visible, <em>false</em> otherwise.
1929 - (BOOL)isPreferencesVisible SWIFT_WARN_UNUSED_RESULT;
1930 /// Method used to get a translated text based on the key being passed.
1931 /// The language and the source of this translated text will depend on the availability of the translation for the specific key.
1932 /// The language being used will be either the selected language of the SDK (based on device Locale and other parameters) or the language specified by app developers as the default language being used by the SDK. The source can be either the <code>didomi_config.json</code> file which can be either local or remote, or the <code>didomi_master_config.json</code> file which is bundled within the SDK.
1933 /// These are the attempts performed by the SDK to try to find a translation for the specific key:
1934 /// <ul>
1935 ///   <li>
1936 ///     Get translated value in user locale (selected language) from <code>didomi_config.json</code> (either local or remote).
1937 ///   </li>
1938 ///   <li>
1939 ///     Get translated value in default locale (from the config) from <code>didomi_config.json</code> (either local or remote).
1940 ///   </li>
1941 ///   <li>
1942 ///     Get translated value in user locale (selected language) from <code>didomi_master_config.json</code> (bundled within the Didomi SDK).
1943 ///   </li>
1944 ///   <li>
1945 ///     Get translated value in default locale (from the config) from <code>didomi_master_config.json</code> (bundled within the Didomi SDK).
1946 ///   </li>
1947 /// </ul>
1948 /// If no translation can be found after these 4 attempts, the key will be returned.
1949 /// App developers can provide these translated texts through the <code>didomi_config.json</code> file (locally or remotely) in 3 different ways:
1950 /// <ul>
1951 ///   <li>
1952 ///     Custom texts for the consent notice: https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-notice#texts
1953 ///   </li>
1954 ///   <li>
1955 ///     Custom texts for the preferences: https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-preferences-popup#text
1956 ///   </li>
1957 ///   <li>
1958 ///     Custom texts for custom notices: https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-theme#translatable-texts-for-custom-notices
1959 ///   </li>
1960 /// </ul>
1961 /// \param key used to find its corresponding value in one of the different sources.
1962 ///
1963 ///
1964 /// returns:
1965 /// a translated string if a translation was found, the same key that was passed otherwise.
1966 - (NSString * _Nonnull)getTranslatedTextWithKey:(NSString * _Nonnull)key SWIFT_WARN_UNUSED_RESULT;
1967 /// Method used to get a dictionary/map in the form of { “en”: “Key in English”, “fr”: “Key in French.” }
1968 /// for a given key.
1969 /// \param key used to find its corresponding value in the dictionary/map.
1970 ///
1971 ///
1972 /// returns:
1973 /// dictionary containing the different translations for a given key.
1974 - (NSDictionary<NSString *, NSString *> * _Nullable)getTextWithKey:(NSString * _Nonnull)key SWIFT_WARN_UNUSED_RESULT;
1975 /// Set the minimum level of messages to log
1976 /// Messages with a level below <code>minLevel</code> will not be logged.
1977 /// Levels are standard levels from <code>OSLogType</code> (https://developer.apple.com/documentation/os/logging/choosing_the_log_level_for_a_message):
1978 /// <ul>
1979 ///   <li>
1980 ///     OSLogType.info (1)
1981 ///   </li>
1982 ///   <li>
1983 ///     OSLogType.debug (2)
1984 ///   </li>
1985 ///   <li>
1986 ///     OSLogType.error (16)
1987 ///   </li>
1988 ///   <li>
1989 ///     OSLogType.fault (17)
1990 ///   </li>
1991 /// </ul>
1992 /// We recommend setting <code>OSLogType.error</code> (16) in production
1993 /// \param minLevel Minimum level of messages to log
1994 ///
1995 - (void)setLogLevelWithMinLevel:(uint8_t)minLevel;
1996 /// Set organization user information
1997 /// \param id Organization user ID
1998 ///
1999 - (void)setUserWithId:(NSString * _Nonnull)id;
2000 /// Set organization user information and display consent notice if it is needed after synchronization
2001 /// \param id Organization user ID
2002 ///
2003 /// \param containerController View controller from which we can setup Didomi UI
2004 ///
2005 - (void)setUserWithId:(NSString * _Nonnull)id containerController:(UIViewController * _Nonnull)containerController;
2006 /// Set organization user information with authentication
2007 /// \param userAuthParams Organization user authentication params
2008 ///
2009 - (void)setUserWithUserAuthParams:(UserAuthParams * _Nonnull)userAuthParams;
2010 /// Set organization user information with authentication, and display consent notice if it is needed after synchronization
2011 /// \param userAuthParams Organization user authentication params
2012 ///
2013 /// \param containerController View controller from which we can setup Didomi UI
2014 ///
2015 - (void)setUserWithUserAuthParams:(UserAuthParams * _Nonnull)userAuthParams containerController:(UIViewController * _Nonnull)containerController;
2016 /// Remove organization user information (should be called when the SDK is initialized).
2017 - (void)clearUser;
2018 /// Get an instance of <code>UserStatus</code> containing all the information related to the user’s choices.
2019 - (DDMUserStatus * _Nonnull)getUserStatus SWIFT_WARN_UNUSED_RESULT;
2020 /// Get an instance of <code>CurrentUserStatus</code> containing all the information related to the user’s choices.
2021 - (DDMCurrentUserStatus * _Nonnull)getCurrentUserStatus SWIFT_WARN_UNUSED_RESULT;
2022 /// Save user’s choices.
2023 /// \param currentUserStatus instance of CurrentUserStatus containing the user’s choices.
2024 ///
2025 ///
2026 /// returns:
2027 /// <em>true</em> if user’s choices have been saved, <em>false</em> otherwise.
2028 - (BOOL)setCurrentUserStatusWithCurrentUserStatus:(DDMCurrentUserStatus * _Nonnull)currentUserStatus SWIFT_WARN_UNUSED_RESULT;
2029 /// Create an instance of  the<code>CurrentUserStatusTransaction</code> class.
2030 /// This class is used to asynchronously enable and disable purposes and vendors through different methods.
2031 /// These changes will not be reflected on the user status until the <code>commit</code> method of the returned object is called.
2032 ///
2033 /// returns:
2034 /// an instance of the <code>CurrentUserStatusTransaction</code> class
2035 - (CurrentUserStatusTransaction * _Nonnull)openCurrentUserStatusTransaction SWIFT_WARN_UNUSED_RESULT;
2036 @end
2037
2038 enum DDMErrorEventType : NSInteger;
2039
2040 /// Type used to represent unexpected situations during SDK initialization.
2041 SWIFT_CLASS_NAMED("DidomiErrorEvent")
2042 @interface DDMErrorEvent : NSObject
2043 @property (nonatomic, readonly, copy) NSString * _Nonnull descriptionText;
2044 @property (nonatomic, readonly) enum DDMErrorEventType type;
2045 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
2046 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
2047 @end
2048
2049 /// Enum used to represent a type for the DidomiErrorEvent class.
2050 typedef SWIFT_ENUM_NAMED(NSInteger, DDMErrorEventType, "DidomiErrorEventType", open) {
2051   DDMErrorEventTypeNilProperty = 0,
2052   DDMErrorEventTypeNotReady = 1,
2053   DDMErrorEventTypeFailedAlready = 2,
2054   DDMErrorEventTypeConfigFileError = 3,
2055   DDMErrorEventTypeInvalidApiKey = 4,
2056 };
2057
2058
2059 /// Initialization parameters for Didomi SDK
2060 SWIFT_CLASS("_TtC6Didomi26DidomiInitializeParameters")
2061 @interface DidomiInitializeParameters : NSObject
2062 - (nonnull instancetype)initWithApiKey:(NSString * _Nonnull)apiKey localConfigurationPath:(NSString * _Nullable)localConfigurationPath remoteConfigurationURL:(NSString * _Nullable)remoteConfigurationURL providerID:(NSString * _Nullable)providerID disableDidomiRemoteConfig:(BOOL)disableDidomiRemoteConfig languageCode:(NSString * _Nullable)languageCode noticeID:(NSString * _Nullable)noticeID OBJC_DESIGNATED_INITIALIZER;
2063 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
2064 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
2065 @end
2066
2067
2068 enum DDMEventType : NSInteger;
2069
2070 /// Class used as a listener for internal events occurred in the SDK.
2071 SWIFT_CLASS_NAMED("EventListener")
2072 @interface DDMEventListener : NSObject
2073 /// Closures used to execute code when the different events are triggered.
2074 /// Internal
2075 @property (nonatomic, copy) void (^ _Nonnull onConsentChanged)(enum DDMEventType);
2076 @property (nonatomic, copy) void (^ _Nonnull onReady)(enum DDMEventType);
2077 @property (nonatomic, copy) void (^ _Nonnull onError)(DDMErrorEvent * _Nonnull);
2078 /// Notice
2079 @property (nonatomic, copy) void (^ _Nonnull onHideNotice)(enum DDMEventType);
2080 @property (nonatomic, copy) void (^ _Nonnull onShowNotice)(enum DDMEventType);
2081 @property (nonatomic, copy) void (^ _Nonnull onNoticeClickAgree)(enum DDMEventType);
2082 @property (nonatomic, copy) void (^ _Nonnull onNoticeClickDisagree)(enum DDMEventType);
2083 @property (nonatomic, copy) void (^ _Nonnull onNoticeClickMoreInfo)(enum DDMEventType);
2084 @property (nonatomic, copy) void (^ _Nonnull onNoticeClickViewVendors)(enum DDMEventType);
2085 @property (nonatomic, copy) void (^ _Nonnull onNoticeClickViewSPIPurposes)(enum DDMEventType);
2086 @property (nonatomic, copy) void (^ _Nonnull onNoticeClickPrivacyPolicy)(enum DDMEventType);
2087 /// Preferences
2088 @property (nonatomic, copy) void (^ _Nonnull onHidePreferences)(enum DDMEventType);
2089 @property (nonatomic, copy) void (^ _Nonnull onShowPreferences)(enum DDMEventType);
2090 /// Preferences - Views
2091 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickViewPurposes)(enum DDMEventType);
2092 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickViewVendors)(enum DDMEventType);
2093 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickViewSPIPurposes)(enum DDMEventType);
2094 /// Preferences - Purpose
2095 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickAgreeToAll)(enum DDMEventType);
2096 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickDisagreeToAll)(enum DDMEventType);
2097 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickAgreeToAllPurposes)(enum DDMEventType);
2098 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickDisagreeToAllPurposes)(enum DDMEventType);
2099 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickResetAllPurposes)(enum DDMEventType);
2100 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickPurposeAgree)(enum DDMEventType, NSString * _Nullable);
2101 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickPurposeDisagree)(enum DDMEventType, NSString * _Nullable);
2102 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickCategoryAgree)(enum DDMEventType, NSString * _Nullable);
2103 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickCategoryDisagree)(enum DDMEventType, NSString * _Nullable);
2104 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickSaveChoices)(enum DDMEventType);
2105 /// Preferences - Vendor
2106 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickAgreeToAllVendors)(enum DDMEventType);
2107 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickDisagreeToAllVendors)(enum DDMEventType);
2108 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickVendorAgree)(enum DDMEventType, NSString * _Nullable);
2109 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickVendorDisagree)(enum DDMEventType, NSString * _Nullable);
2110 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickVendorSaveChoices)(enum DDMEventType);
2111 /// Preferences - Sensitive Personal Information
2112 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickSPIPurposeAgree)(enum DDMEventType, NSString * _Nullable);
2113 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickSPIPurposeDisagree)(enum DDMEventType, NSString * _Nullable);
2114 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickSPICategoryAgree)(enum DDMEventType, NSString * _Nullable);
2115 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickSPICategoryDisagree)(enum DDMEventType, NSString * _Nullable);
2116 @property (nonatomic, copy) void (^ _Nonnull onPreferencesClickSPIPurposeSaveChoices)(enum DDMEventType);
2117 /// Sync
2118 @property (nonatomic, copy) void (^ _Nonnull onSyncDone)(enum DDMEventType, NSString * _Nullable);
2119 @property (nonatomic, copy) void (^ _Nonnull onSyncError)(enum DDMEventType, NSString * _Nullable);
2120 /// Language
2121 @property (nonatomic, copy) void (^ _Nonnull onLanguageUpdated)(enum DDMEventType, NSString * _Nullable);
2122 @property (nonatomic, copy) void (^ _Nonnull onLanguageUpdateFailed)(enum DDMEventType, NSString * _Nullable);
2123 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
2124 @end
2125
2126 /// Enum used to define the different type of internal events that can be triggered from the SDK.
2127 /// Please keep the current order because of Unity bridge.
2128 typedef SWIFT_ENUM_NAMED(NSInteger, DDMEventType, "EventType", open) {
2129   DDMEventTypeConsentChanged = 0,
2130   DDMEventTypeHideNotice = 1,
2131   DDMEventTypeReady = 2,
2132   DDMEventTypeShowNotice = 3,
2133   DDMEventTypeShowPreferences = 4,
2134   DDMEventTypeHidePreferences = 5,
2135   DDMEventTypeNoticeClickAgree = 6,
2136   DDMEventTypeNoticeClickDisagree = 7,
2137   DDMEventTypeNoticeClickMoreInfo = 8,
2138   DDMEventTypeNoticeClickViewVendors = 9,
2139   DDMEventTypeNoticeClickPrivacyPolicy = 10,
2140   DDMEventTypePreferencesClickAgreeToAll = 11,
2141   DDMEventTypePreferencesClickDisagreeToAll = 12,
2142   DDMEventTypePreferencesClickAgreeToAllPurposes = 13,
2143   DDMEventTypePreferencesClickDisagreeToAllPurposes = 14,
2144   DDMEventTypePreferencesClickResetAllPurposes = 15,
2145   DDMEventTypePreferencesClickAgreeToAllVendors = 16,
2146   DDMEventTypePreferencesClickDisagreeToAllVendors = 17,
2147   DDMEventTypePreferencesClickPurposeAgree = 18,
2148   DDMEventTypePreferencesClickPurposeDisagree = 19,
2149   DDMEventTypePreferencesClickCategoryAgree = 20,
2150   DDMEventTypePreferencesClickCategoryDisagree = 21,
2151   DDMEventTypePreferencesClickViewVendors = 22,
2152   DDMEventTypePreferencesClickViewPurposes = 23,
2153   DDMEventTypePreferencesClickSaveChoices = 24,
2154   DDMEventTypePreferencesClickVendorAgree = 25,
2155   DDMEventTypePreferencesClickVendorDisagree = 26,
2156   DDMEventTypePreferencesClickVendorSaveChoices = 27,
2157 /// Sync
2158   DDMEventTypeSyncDone = 28,
2159   DDMEventTypeSyncError = 29,
2160 /// Language
2161   DDMEventTypeLanguageUpdated = 30,
2162   DDMEventTypeLanguageUpdateFailed = 31,
2163 /// Preferences - Sensitive Personal Information
2164   DDMEventTypeNoticeClickViewSPIPurposes = 32,
2165   DDMEventTypePreferencesClickViewSPIPurposes = 33,
2166   DDMEventTypePreferencesClickSPIPurposeAgree = 34,
2167   DDMEventTypePreferencesClickSPIPurposeDisagree = 35,
2168   DDMEventTypePreferencesClickSPICategoryAgree = 36,
2169   DDMEventTypePreferencesClickSPICategoryDisagree = 37,
2170   DDMEventTypePreferencesClickSPIPurposeSaveChoices = 38,
2171 };
2172
2173
2174
2175
2176
2177
2178
2179
2180 @class NSCoder;
2181 @protocol UIFocusEnvironment;
2182 @class NSBundle;
2183
2184 SWIFT_CLASS("_TtC6Didomi20NoticeViewController")
2185 @interface NoticeViewController : UIViewController
2186 - (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER;
2187 - (void)viewDidLoad;
2188 @property (nonatomic, readonly, copy) NSArray<id <UIFocusEnvironment>> * _Nonnull preferredFocusEnvironments;
2189 - (nonnull instancetype)initWithNibName:(NSString * _Nullable)nibNameOrNil bundle:(NSBundle * _Nullable)nibBundleOrNil SWIFT_UNAVAILABLE;
2190 @end
2191
2192
2193
2194
2195 /// Public class representing a single Purpose configuration.
2196 SWIFT_CLASS_NAMED("Purpose")
2197 @interface DDMPurpose : NSObject
2198 /// Purpose id used by Didomi SDK.
2199 @property (nonatomic, readonly, copy) NSString * _Nonnull id;
2200 /// Purpose human-readable name, translated in selected language.
2201 @property (nonatomic, readonly, copy) NSString * _Nonnull name;
2202 /// Purpose description, translated in selected language.
2203 @property (nonatomic, readonly, copy) NSString * _Nonnull descriptionText;
2204 /// Initializer method for the Purpose class.
2205 /// \param id Purpose id used by Didomi SDK.
2206 ///
2207 /// \param name Purpose human-readable name, translated in selected language.
2208 ///
2209 /// \param descriptionText Purpose description, translated in selected language.
2210 ///
2211 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id name:(NSString * _Nonnull)name descriptionText:(NSString * _Nonnull)descriptionText OBJC_DESIGNATED_INITIALIZER;
2212 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
2213 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
2214 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
2215 @end
2216
2217
2218 /// Regulation for which Didomi SDK is currently configured. Only one regulation is active at each run.
2219 typedef SWIFT_ENUM(NSInteger, Regulation, open) {
2220   RegulationGdpr = 0,
2221   RegulationCcpa = 1,
2222   RegulationCpa = 2,
2223   RegulationCpra = 3,
2224   RegulationCtdpa = 4,
2225   RegulationUcpa = 5,
2226   RegulationVcdpa = 6,
2227   RegulationNone = 7,
2228 };
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250 /// Protocol for User Authentication
2251 /// declare the user id
2252 SWIFT_PROTOCOL("_TtP6Didomi8UserAuth_")
2253 @protocol UserAuth
2254 /// Organization ID to associate with the user
2255 @property (nonatomic, readonly, copy) NSString * _Nonnull id;
2256 @end
2257
2258
2259 /// Protocol for User Authentication Parameters
2260 /// declare the common properties of encryption / hash parameters
2261 SWIFT_CLASS("_TtC6Didomi14UserAuthParams")
2262 @interface UserAuthParams : NSObject <UserAuth>
2263 /// Organization ID to associate with the user
2264 @property (nonatomic, copy) NSString * _Nonnull id;
2265 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
2266 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
2267 @end
2268
2269
2270 /// User Authentication Parameters with encryption
2271 SWIFT_CLASS("_TtC6Didomi28UserAuthWithEncryptionParams")
2272 @interface UserAuthWithEncryptionParams : UserAuthParams
2273 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id algorithm:(NSString * _Nonnull)algorithm secretID:(NSString * _Nonnull)secretID initializationVector:(NSString * _Nonnull)initializationVector;
2274 /// Initializer for Objective-C
2275 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id algorithm:(NSString * _Nonnull)algorithm secretID:(NSString * _Nonnull)secretID initializationVector:(NSString * _Nonnull)initializationVector legacyExpiration:(NSTimeInterval)legacyExpiration;
2276 /// Initialization Vector used for computing the user ID
2277 @property (nonatomic, copy) NSString * _Nonnull initializationVector;
2278 @end
2279
2280
2281 /// User Authentication Parameters with hash
2282 SWIFT_CLASS("_TtC6Didomi22UserAuthWithHashParams")
2283 @interface UserAuthWithHashParams : UserAuthParams
2284 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id algorithm:(NSString * _Nonnull)algorithm secretID:(NSString * _Nonnull)secretID digest:(NSString * _Nonnull)digest salt:(NSString * _Nullable)salt;
2285 /// Initializer for Objective-C
2286 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id algorithm:(NSString * _Nonnull)algorithm secretID:(NSString * _Nonnull)secretID digest:(NSString * _Nonnull)digest salt:(NSString * _Nullable)salt legacyExpiration:(NSTimeInterval)legacyExpiration;
2287 /// Salt used for computing the user ID (optional)
2288 @property (nonatomic, copy) NSString * _Nullable salt;
2289 /// Digest used for representing the user ID
2290 @property (nonatomic, copy) NSString * _Nonnull digest;
2291 @end
2292
2293 @class DDMUserStatusPurposes;
2294 @class DDMUserStatusVendors;
2295
2296 SWIFT_CLASS_NAMED("UserStatus")
2297 @interface DDMUserStatus : NSObject
2298 @property (nonatomic, readonly, strong) DDMUserStatusPurposes * _Nonnull purposes;
2299 @property (nonatomic, readonly, strong) DDMUserStatusVendors * _Nonnull vendors;
2300 @property (nonatomic, readonly, copy) NSString * _Nonnull userID;
2301 @property (nonatomic, readonly, copy) NSString * _Nonnull created;
2302 @property (nonatomic, readonly, copy) NSString * _Nonnull updated;
2303 @property (nonatomic, readonly, copy) NSString * _Nonnull consentString;
2304 @property (nonatomic, readonly, copy) NSString * _Nonnull additionalConsent;
2305 @property (nonatomic, readonly) enum Regulation regulation;
2306 @property (nonatomic, readonly, copy) NSString * _Nonnull didomiDCS;
2307 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
2308 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
2309 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
2310 @end
2311
2312
2313 @interface DDMUserStatus (SWIFT_EXTENSION(Didomi))
2314 @end
2315
2316 @class DDMUserStatusIDs;
2317
2318 SWIFT_CLASS_NAMED("Purposes")
2319 @interface DDMUserStatusPurposes : NSObject
2320 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull consent;
2321 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull legitimateInterest;
2322 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull global;
2323 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull essential;
2324 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
2325 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
2326 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
2327 @end
2328
2329
2330 @interface DDMUserStatus (SWIFT_EXTENSION(Didomi))
2331 @end
2332
2333
2334 SWIFT_CLASS_NAMED("IDs")
2335 @interface DDMUserStatusIDs : NSObject
2336 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull enabled;
2337 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull disabled;
2338 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
2339 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
2340 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
2341 @end
2342
2343
2344 @interface DDMUserStatus (SWIFT_EXTENSION(Didomi))
2345 @end
2346
2347
2348 SWIFT_CLASS_NAMED("Vendors")
2349 @interface DDMUserStatusVendors : NSObject
2350 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull consent;
2351 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull legitimateInterest;
2352 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull global;
2353 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull globalConsent;
2354 @property (nonatomic, readonly, strong) DDMUserStatusIDs * _Nonnull globalLegitimateInterest;
2355 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
2356 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
2357 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
2358 @end
2359
2360 @class DDMVendorNamespaces;
2361 @class DDMVendorURL;
2362
2363 /// Public class representing a single Vendor configuration.
2364 SWIFT_CLASS_NAMED("Vendor")
2365 @interface DDMVendor : NSObject
2366 /// Unique ID of the vendor provided by Didomi. This ID does not include prefixes. Example: “vendor-1”.
2367 @property (nonatomic, readonly, copy) NSString * _Nonnull id;
2368 /// Name of the vendor.
2369 @property (nonatomic, readonly, copy) NSString * _Nonnull name;
2370 /// Namespaces of the vendor (IAB, num) and their corresponding IDs.
2371 @property (nonatomic, readonly, strong) DDMVendorNamespaces * _Nullable namespaces;
2372 /// URL to the privacy policy of the vendor.
2373 @property (nonatomic, readonly, copy) NSString * _Nullable policyUrl;
2374 /// Purpose IDs that the vendor is operating under the consent legal basis.
2375 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull purposeIDs;
2376 /// Purpose IDs that the vendor is operating under the legitimate interest legal basis.
2377 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull legIntPurposeIDs;
2378 /// Set with IDs that represent features.
2379 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull featureIDs;
2380 /// Set with IDs that represent flexible purposes. Introduced in IAB TCF v2.
2381 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull flexiblePurposeIDs;
2382 /// Set with IDs that represent Special Purposes. Introduced in IAB TCF v2.
2383 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull specialPurposeIDs;
2384 /// Set with IDs that represent Special Features. Introduced in IAB TCF v2.
2385 @property (nonatomic, readonly, copy) NSSet<NSString *> * _Nonnull specialFeatureIDs;
2386 /// Privacy policy and LI disclaimer urls. Introduced in IAB TCF v2.2.
2387 @property (nonatomic, readonly, copy) NSArray<DDMVendorURL *> * _Nullable urls;
2388 /// Initializer method for the Purpose class.
2389 /// \param id Unique ID of the vendor.
2390 ///
2391 /// \param name Name of the vendor.
2392 ///
2393 /// \param policyUrl URL to the privacy policy of the vendor.
2394 ///
2395 /// \param namespaces Namespaces of the vendor (IAB, num) and their corresponding IDs.
2396 ///
2397 /// \param purposeIDs Purpose IDs that the vendor is operating under the consent legal basis.
2398 ///
2399 /// \param legIntPurposeIDs Purpose IDs that the vendor is operating under the legitimate interest legal basis.
2400 ///
2401 /// \param featureIDs Set with IDs that represent features.
2402 ///
2403 /// \param flexiblePurposeIDs Set with IDs that represent flexible purposes.
2404 ///
2405 /// \param specialPurposeIDs Set with IDs that represent Special Purposes.
2406 ///
2407 /// \param specialFeatureIDs Set with IDs that represent Special Features.
2408 ///
2409 /// \param urls Privacy policy and LI disclaimer urls.
2410 ///
2411 - (nonnull instancetype)initWithId:(NSString * _Nonnull)id name:(NSString * _Nonnull)name policyUrl:(NSString * _Nullable)policyUrl namespaces:(DDMVendorNamespaces * _Nullable)namespaces purposeIDs:(NSSet<NSString *> * _Nonnull)purposeIDs legIntPurposeIDs:(NSSet<NSString *> * _Nonnull)legIntPurposeIDs featureIDs:(NSSet<NSString *> * _Nonnull)featureIDs flexiblePurposeIDs:(NSSet<NSString *> * _Nonnull)flexiblePurposeIDs specialPurposeIDs:(NSSet<NSString *> * _Nonnull)specialPurposeIDs specialFeatureIDs:(NSSet<NSString *> * _Nonnull)specialFeatureIDs urls:(NSArray<DDMVendorURL *> * _Nullable)urls OBJC_DESIGNATED_INITIALIZER;
2412 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
2413 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
2414 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
2415 @end
2416
2417
2418 @interface DDMVendor (SWIFT_EXTENSION(Didomi))
2419 @end
2420
2421
2422 /// Store additional IDs (IAB, num) for the Vendor.
2423 SWIFT_CLASS_NAMED("Namespaces")
2424 @interface DDMVendorNamespaces : NSObject
2425 @property (nonatomic, readonly, copy) NSString * _Nullable iab2;
2426 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
2427 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
2428 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
2429 @end
2430
2431
2432 @interface DDMVendor (SWIFT_EXTENSION(Didomi))
2433 @end
2434
2435
2436 /// Store localized URLs for privacy policy and LI claim.
2437 SWIFT_CLASS_NAMED("URL")
2438 @interface DDMVendorURL : NSObject
2439 @property (nonatomic, readonly, copy) NSString * _Nullable langID;
2440 @property (nonatomic, readonly, copy) NSString * _Nullable privacy;
2441 @property (nonatomic, readonly, copy) NSString * _Nullable legIntClaim;
2442 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
2443 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
2444 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
2445 @end
2446
2447
2448
2449 #endif
2450 #if defined(__cplusplus)
2451 #endif
2452 #if __has_attribute(external_source_symbol)
2453 # pragma clang attribute pop
2454 #endif
2455 #pragma clang diagnostic pop
2456 #endif
2457
2458 #else
2459 #error unsupported Swift architecture
2460 #endif