#import @class UMPConsentForm; /// Provides a nonnull consentForm and a nil error if the load succeeded. Provides a nil /// consentForm and a nonnull error if the load failed. typedef void (^UMPConsentFormLoadCompletionHandler)(UMPConsentForm *_Nullable consentForm, NSError *_Nullable error); /// Called after presentation of a UMPConsentForm finishes. typedef void (^UMPConsentFormPresentCompletionHandler)(NSError *_Nullable error); /// A single use consent form object. @interface UMPConsentForm : NSObject /// Loads a consent form and calls completionHandler on completion. Must be called on the /// main queue. + (void)loadWithCompletionHandler:(nonnull UMPConsentFormLoadCompletionHandler)completionHandler; /// Loads a consent form and immediately presents it from the provided viewController if /// UMPConsentInformation.sharedInstance.consentStatus is UMPConsentStatusRequired. Calls /// completionHandler after the user selects an option and the form is dismissed, or on the next run /// loop if no form is presented. Must be called on the main queue. + (void)loadAndPresentIfRequiredFromViewController:(nonnull UIViewController *)viewController completionHandler:(nullable UMPConsentFormPresentCompletionHandler) completionHandler; /// Presents a privacy options form from the provided viewController if /// UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus is /// UMPPrivacyOptionsRequirementStatusRequired. Calls completionHandler with nil error after the /// user selects an option and the form is dismissed, or on the next run loop with a non-nil error /// if no form is presented. Must be called on the main queue. /// /// This method should only be called in response to a user input to request a privacy options form /// to be shown. The privacy options form is preloaded by the SDK automatically when a form becomes /// available. If no form is preloaded, the SDK will invoke the completionHandler on the next run /// loop, but will asynchronously retry to load one. + (void)presentPrivacyOptionsFormFromViewController:(nonnull UIViewController *)viewController completionHandler: (nullable UMPConsentFormPresentCompletionHandler) completionHandler; /// Unavailable. Use +loadWithCompletionHandler: instead. - (nullable instancetype)init NS_UNAVAILABLE; /// Presents the full screen consent form over viewController. The form is dismissed and /// completionHandler is called after the user selects an option. /// UMPConsentInformation.sharedInstance.consentStatus is updated prior to completionHandler being /// called. completionHandler is called on the main queue. - (void)presentFromViewController:(nonnull UIViewController *)viewController completionHandler: (nullable UMPConsentFormPresentCompletionHandler)completionHandler; @end