lpw
2023-07-20 80f7cc0c18ce7e590a4c14cd1011a82b296770f5
commit | author | age
e0ec42 1 #if 0
L 2 #elif defined(__arm64__) && __arm64__
3 // Generated by Apple Swift version 5.7.2 (swiftlang-5.7.2.135.5 clang-1400.0.29.51)
4 #ifndef FBSDKSHAREKIT_SWIFT_H
5 #define FBSDKSHAREKIT_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 "-Wduplicate-method-match"
27 #pragma clang diagnostic ignored "-Wauto-import"
28 #if defined(__OBJC__)
29 #include <Foundation/Foundation.h>
30 #endif
31 #if defined(__cplusplus)
32 #include <cstdint>
33 #include <cstddef>
34 #include <cstdbool>
35 #else
36 #include <stdint.h>
37 #include <stddef.h>
38 #include <stdbool.h>
39 #endif
40
41 #if !defined(SWIFT_TYPEDEFS)
42 # define SWIFT_TYPEDEFS 1
43 # if __has_include(<uchar.h>)
44 #  include <uchar.h>
45 # elif !defined(__cplusplus)
46 typedef uint_least16_t char16_t;
47 typedef uint_least32_t char32_t;
48 # endif
49 typedef float swift_float2  __attribute__((__ext_vector_type__(2)));
50 typedef float swift_float3  __attribute__((__ext_vector_type__(3)));
51 typedef float swift_float4  __attribute__((__ext_vector_type__(4)));
52 typedef double swift_double2  __attribute__((__ext_vector_type__(2)));
53 typedef double swift_double3  __attribute__((__ext_vector_type__(3)));
54 typedef double swift_double4  __attribute__((__ext_vector_type__(4)));
55 typedef int swift_int2  __attribute__((__ext_vector_type__(2)));
56 typedef int swift_int3  __attribute__((__ext_vector_type__(3)));
57 typedef int swift_int4  __attribute__((__ext_vector_type__(4)));
58 typedef unsigned int swift_uint2  __attribute__((__ext_vector_type__(2)));
59 typedef unsigned int swift_uint3  __attribute__((__ext_vector_type__(3)));
60 typedef unsigned int swift_uint4  __attribute__((__ext_vector_type__(4)));
61 #endif
62
63 #if !defined(SWIFT_PASTE)
64 # define SWIFT_PASTE_HELPER(x, y) x##y
65 # define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
66 #endif
67 #if !defined(SWIFT_METATYPE)
68 # define SWIFT_METATYPE(X) Class
69 #endif
70 #if !defined(SWIFT_CLASS_PROPERTY)
71 # if __has_feature(objc_class_property)
72 #  define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
73 # else
74 #  define SWIFT_CLASS_PROPERTY(...)
75 # endif
76 #endif
77
78 #if __has_attribute(objc_runtime_name)
79 # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
80 #else
81 # define SWIFT_RUNTIME_NAME(X)
82 #endif
83 #if __has_attribute(swift_name)
84 # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
85 #else
86 # define SWIFT_COMPILE_NAME(X)
87 #endif
88 #if __has_attribute(objc_method_family)
89 # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
90 #else
91 # define SWIFT_METHOD_FAMILY(X)
92 #endif
93 #if __has_attribute(noescape)
94 # define SWIFT_NOESCAPE __attribute__((noescape))
95 #else
96 # define SWIFT_NOESCAPE
97 #endif
98 #if __has_attribute(ns_consumed)
99 # define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
100 #else
101 # define SWIFT_RELEASES_ARGUMENT
102 #endif
103 #if __has_attribute(warn_unused_result)
104 # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
105 #else
106 # define SWIFT_WARN_UNUSED_RESULT
107 #endif
108 #if __has_attribute(noreturn)
109 # define SWIFT_NORETURN __attribute__((noreturn))
110 #else
111 # define SWIFT_NORETURN
112 #endif
113 #if !defined(SWIFT_CLASS_EXTRA)
114 # define SWIFT_CLASS_EXTRA
115 #endif
116 #if !defined(SWIFT_PROTOCOL_EXTRA)
117 # define SWIFT_PROTOCOL_EXTRA
118 #endif
119 #if !defined(SWIFT_ENUM_EXTRA)
120 # define SWIFT_ENUM_EXTRA
121 #endif
122 #if !defined(SWIFT_CLASS)
123 # if __has_attribute(objc_subclassing_restricted)
124 #  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
125 #  define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
126 # else
127 #  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
128 #  define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
129 # endif
130 #endif
131 #if !defined(SWIFT_RESILIENT_CLASS)
132 # if __has_attribute(objc_class_stub)
133 #  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
134 #  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
135 # else
136 #  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
137 #  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
138 # endif
139 #endif
140
141 #if !defined(SWIFT_PROTOCOL)
142 # define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
143 # define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
144 #endif
145
146 #if !defined(SWIFT_EXTENSION)
147 # define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
148 #endif
149
150 #if !defined(OBJC_DESIGNATED_INITIALIZER)
151 # if __has_attribute(objc_designated_initializer)
152 #  define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
153 # else
154 #  define OBJC_DESIGNATED_INITIALIZER
155 # endif
156 #endif
157 #if !defined(SWIFT_ENUM_ATTR)
158 # if defined(__has_attribute) && __has_attribute(enum_extensibility)
159 #  define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
160 # else
161 #  define SWIFT_ENUM_ATTR(_extensibility)
162 # endif
163 #endif
164 #if !defined(SWIFT_ENUM)
165 # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
166 # if __has_feature(generalized_swift_name)
167 #  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
168 # else
169 #  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
170 # endif
171 #endif
172 #if !defined(SWIFT_UNAVAILABLE)
173 # define SWIFT_UNAVAILABLE __attribute__((unavailable))
174 #endif
175 #if !defined(SWIFT_UNAVAILABLE_MSG)
176 # define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
177 #endif
178 #if !defined(SWIFT_AVAILABILITY)
179 # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
180 #endif
181 #if !defined(SWIFT_WEAK_IMPORT)
182 # define SWIFT_WEAK_IMPORT __attribute__((weak_import))
183 #endif
184 #if !defined(SWIFT_DEPRECATED)
185 # define SWIFT_DEPRECATED __attribute__((deprecated))
186 #endif
187 #if !defined(SWIFT_DEPRECATED_MSG)
188 # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
189 #endif
190 #if __has_feature(attribute_diagnose_if_objc)
191 # define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
192 #else
193 # define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
194 #endif
195 #if defined(__OBJC__)
196 #if !defined(IBSegueAction)
197 # define IBSegueAction
198 #endif
199 #endif
200 #if !defined(SWIFT_EXTERN)
201 # if defined(__cplusplus)
202 #  define SWIFT_EXTERN extern "C"
203 # else
204 #  define SWIFT_EXTERN extern
205 # endif
206 #endif
207 #if !defined(SWIFT_CALL)
208 # define SWIFT_CALL __attribute__((swiftcall))
209 #endif
210 #if defined(__cplusplus)
211 #if !defined(SWIFT_NOEXCEPT)
212 # define SWIFT_NOEXCEPT noexcept
213 #endif
214 #else
215 #if !defined(SWIFT_NOEXCEPT)
216 # define SWIFT_NOEXCEPT 
217 #endif
218 #endif
219 #if defined(__cplusplus)
220 #if !defined(SWIFT_CXX_INT_DEFINED)
221 #define SWIFT_CXX_INT_DEFINED
222 namespace swift {
223 using Int = ptrdiff_t;
224 using UInt = size_t;
225 }
226 #endif
227 #endif
228 #if defined(__OBJC__)
229 #if __has_feature(modules)
230 #if __has_warning("-Watimport-in-framework-header")
231 #pragma clang diagnostic ignored "-Watimport-in-framework-header"
232 #endif
233 @import CoreFoundation;
234 @import FBSDKCoreKit;
235 @import Foundation;
236 @import ObjectiveC;
237 #endif
238
239 #import <FBSDKShareKit/FBSDKShareKit.h>
240
241 #endif
242 #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
243 #pragma clang diagnostic ignored "-Wduplicate-method-arg"
244 #if __has_warning("-Wpragma-clang-attribute")
245 # pragma clang diagnostic ignored "-Wpragma-clang-attribute"
246 #endif
247 #pragma clang diagnostic ignored "-Wunknown-pragmas"
248 #pragma clang diagnostic ignored "-Wnullability"
249 #pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
250
251 #if __has_attribute(external_source_symbol)
252 # pragma push_macro("any")
253 # undef any
254 # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FBSDKShareKit",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
255 # pragma pop_macro("any")
256 #endif
257
258 #if defined(__OBJC__)
259
260 @class NSURL;
261 @class NSString;
262 enum FBSDKAppInviteDestination : NSInteger;
263
264 /// A model for app invite
265 SWIFT_CLASS_NAMED("AppInviteContent")
266 @interface FBSDKAppInviteContent : NSObject
267 /// A URL to a preview image that will be displayed with the app invite
268 /// This is optional.  If you don’t include it a fallback image will be used.
269 @property (nonatomic, copy) NSURL * _Nullable appInvitePreviewImageURL;
270 /// An app link target that will be used as a target when the user accept the invite.
271 @property (nonatomic, copy) NSURL * _Nonnull appLinkURL;
272 /// Promotional code to be displayed while sending and receiving the invite.
273 /// This is optional. This can be between 0 and 10 characters long and can contain
274 /// alphanumeric characters only. To set a promo code, you need to set promo text.
275 @property (nonatomic, copy) NSString * _Nullable promotionCode;
276 /// Promotional text to be displayed while sending and receiving the invite.
277 /// This is optional. This can be between 0 and 80 characters long and can contain
278 /// alphanumeric and spaces only.
279 @property (nonatomic, copy) NSString * _Nullable promotionText;
280 /// Destination for the app invite.  The default value is <code>.facebook</code>.
281 @property (nonatomic) enum FBSDKAppInviteDestination destination;
282 - (nonnull instancetype)initWithAppLinkURL:(NSURL * _Nonnull)appLinkURL OBJC_DESIGNATED_INITIALIZER;
283 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
284 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
285 @end
286
287 /// Specifies the privacy of a group.
288 typedef SWIFT_ENUM_NAMED(NSInteger, FBSDKAppInviteDestination, "Destination", open) {
289 /// Deliver to Facebook
290   FBSDKAppInviteDestinationFacebook = 0,
291   FBSDKAppInviteDestinationMessenger = 1,
292 };
293
294
295 /// An interface for validatable content and media.
296 SWIFT_PROTOCOL_NAMED("SharingValidatable")
297 @protocol FBSDKSharingValidatable
298 /// Validate that this content or media contains valid values.
299 /// \param options The share bridge options to use for validation.
300 ///
301 ///
302 /// throws:
303 /// If the values are not valid.
304 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)options error:(NSError * _Nullable * _Nullable)error;
305 @end
306
307
308 @interface FBSDKAppInviteContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingValidatable>
309 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
310 @end
311
312
313
314 /// A container of arguments for a camera effect.
315 /// An argument is a <code>String</code> or <code>[String]</code> identified by a <code>String</code> key.
316 SWIFT_CLASS_NAMED("CameraEffectArguments")
317 @interface FBSDKCameraEffectArguments : NSObject
318 /// Sets a string argument in the container.
319 /// @param string The argument
320 /// @param key The key for the argument
321 - (void)setString:(NSString * _Nullable)string forKey:(NSString * _Nonnull)key;
322 /// Gets a string argument from the container.
323 /// @param key The key for the argument
324 /// @return The string value or nil
325 - (NSString * _Nullable)stringForKey:(NSString * _Nonnull)key SWIFT_WARN_UNUSED_RESULT;
326 /// Sets a string array argument in the container.
327 /// @param array The array argument
328 /// @param key The key for the argument
329 - (void)setArray:(NSArray<NSString *> * _Nullable)array forKey:(NSString * _Nonnull)key;
330 /// Gets an array argument from the container.
331 /// @param key The key for the argument
332 /// @return The array argument
333 - (NSArray<NSString *> * _Nullable)arrayForKey:(NSString * _Nonnull)key SWIFT_WARN_UNUSED_RESULT;
334 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
335 @end
336
337 @class UIImage;
338
339 /// A container of textures for a camera effect.
340 /// A texture for a camera effect is an UIImages identified by a NSString key.
341 SWIFT_CLASS_NAMED("CameraEffectTextures")
342 @interface FBSDKCameraEffectTextures : NSObject
343 /// Sets the image for a texture key.
344 /// @param image The <code>UIImage</code> for the texture
345 /// @param key The key for the texture
346 - (void)setImage:(UIImage * _Nullable)image forKey:(NSString * _Nonnull)key;
347 /// Gets the image for a texture key.
348 /// @param key The key for the texture
349 /// @return The texture <code>UIImage</code> or nil
350 - (UIImage * _Nullable)imageForKey:(NSString * _Nonnull)key SWIFT_WARN_UNUSED_RESULT;
351 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
352 @end
353
354 @protocol FBSDKSharingContent;
355
356 /// The common interface for sharing buttons.
357 /// See FBSendButton and FBShareButton
358 SWIFT_PROTOCOL_NAMED("SharingButton")
359 @protocol FBSDKSharingButton
360 /// The content to be shared.
361 @property (nonatomic, strong) id <FBSDKSharingContent> _Nullable shareContent;
362 @end
363
364 @class FBSDKMessageDialog;
365 @class NSCoder;
366
367 /// A button to send content through Messenger.
368 /// Tapping the receiver will invoke the FBSDKShareDialog with the attached shareContent.  If the dialog cannot
369 /// be shown, the button will be disable.
370 SWIFT_CLASS_NAMED("FBSendButton")
371 @interface FBSDKSendButton : FBSDKButton <FBSDKButtonImpressionLogging, FBSDKSharingButton>
372 @property (nonatomic, strong) FBSDKMessageDialog * _Nullable dialog;
373 @property (nonatomic, strong) id <FBSDKSharingContent> _Nullable shareContent;
374 @property (nonatomic, readonly, copy) NSDictionary<FBSDKAppEventParameterName, id> * _Nullable analyticsParameters;
375 @property (nonatomic, readonly) FBSDKAppEventName _Nonnull impressionTrackingEventName;
376 @property (nonatomic, readonly, copy) NSString * _Nonnull impressionTrackingIdentifier;
377 @property (nonatomic, readonly, getter=isImplicitlyDisabled) BOOL implicitlyDisabled;
378 - (void)configureButton;
379 - (nonnull instancetype)initWithFrame:(CGRect)frame OBJC_DESIGNATED_INITIALIZER;
380 - (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
381 @end
382
383
384
385 /// A button to share content.
386 /// Tapping the receiver will invoke the FBSDKShareDialog with the attached shareContent.  If the dialog cannot
387 /// be shown, the button will be disabled.
388 SWIFT_CLASS_NAMED("FBShareButton")
389 @interface FBSDKShareButton : FBSDKButton <FBSDKSharingButton>
390 @property (nonatomic, strong) id <FBSDKSharingContent> _Nullable shareContent;
391 @property (nonatomic, readonly, copy) NSDictionary<FBSDKAppEventParameterName, id> * _Nullable analyticsParameters;
392 @property (nonatomic, readonly) FBSDKAppEventName _Nonnull impressionTrackingEventName;
393 @property (nonatomic, readonly, copy) NSString * _Nonnull impressionTrackingIdentifier;
394 @property (nonatomic, readonly, getter=isImplicitlyDisabled) BOOL implicitlyDisabled;
395 - (void)configureButton;
396 - (nonnull instancetype)initWithFrame:(CGRect)frame OBJC_DESIGNATED_INITIALIZER;
397 - (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
398 @end
399
400
401
402 /// Represents a single hashtag that can be used with the share dialog.
403 SWIFT_CLASS_NAMED("Hashtag")
404 @interface FBSDKHashtag : NSObject
405 /// The hashtag string.
406 /// You are responsible for making sure that <code>stringRepresentation</code> is a valid hashtag (a single ‘#’ followed by one or more
407 /// word characters). Invalid hashtags are ignored when sharing content. You can check validity with the<code>valid</code> property.
408 /// @return The hashtag string
409 @property (nonatomic, copy) NSString * _Nonnull stringRepresentation;
410 - (nonnull instancetype)initWithString:(NSString * _Nonnull)string OBJC_DESIGNATED_INITIALIZER;
411 @property (nonatomic, readonly, copy) NSString * _Nonnull description;
412 /// Tests if a hashtag is valid.
413 /// A valid hashtag matches the regular expression “#\w+”: A single ‘#’ followed by one or more word characters.
414 /// @return true if the hashtag is valid, false otherwise.
415 @property (nonatomic, readonly) BOOL isValid;
416 @property (nonatomic, readonly) NSUInteger hash;
417 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
418 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
419 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
420 @end
421
422
423 @protocol FBSDKSharingDelegate;
424
425 /// The common interface for components that initiate sharing.
426 /// See ShareDialog, MessageDialog
427 SWIFT_PROTOCOL_NAMED("Sharing")
428 @protocol FBSDKSharing
429 /// The receiver’s delegate or nil if it doesn’t have a delegate.
430 @property (nonatomic, weak) id <FBSDKSharingDelegate> _Nullable delegate;
431 /// The content to be shared.
432 @property (nonatomic, strong) id <FBSDKSharingContent> _Nullable shareContent;
433 /// A boolean value that indicates whether the receiver should fail if it finds an error with the share content.
434 /// If <code>false</code>, the sharer will still be displayed without the data that was misconfigured.  For example, an
435 /// invalid <code>placeID</code> specified on the <code>shareContent</code> would produce a data error.
436 @property (nonatomic) BOOL shouldFailOnDataError;
437 /// Validates the content on the receiver.
438 /// @throws An error if the content is invalid
439 - (BOOL)validateWithError:(NSError * _Nullable * _Nullable)error;
440 @end
441
442
443 /// The common interface for dialogs that initiate sharing.
444 SWIFT_PROTOCOL_NAMED("SharingDialog")
445 @protocol FBSDKSharingDialog <FBSDKSharing>
446 /// A boolean value that indicates whether the receiver can initiate a share.
447 /// May return <code>false</code> if the appropriate Facebook app is not installed and is required or an access token is
448 /// required but not available.  This method does not validate the content on the receiver, so this can be checked before
449 /// building up the content.
450 /// See <code>Sharing.validate(error:)</code>
451 /// @return <code>true</code> if the receiver can share, otherwise <code>false</code>.
452 @property (nonatomic, readonly) BOOL canShow;
453 /// Shows the dialog.
454 /// @return <code>true</code> if the receiver was able to begin sharing, otherwise <code>false</code>.
455 - (BOOL)show;
456 @end
457
458
459 /// A dialog for sharing content through Messenger.
460 /// SUPPORTED SHARE TYPES
461 /// <ul>
462 ///   <li>
463 ///     FBSDKShareLinkContent
464 ///   </li>
465 /// </ul>
466 /// UNSUPPORTED SHARE TYPES (DEPRECATED AUGUST 2018)
467 /// <ul>
468 ///   <li>
469 ///     FBSDKShareOpenGraphContent
470 ///   </li>
471 ///   <li>
472 ///     FBSDKSharePhotoContent
473 ///   </li>
474 ///   <li>
475 ///     FBSDKShareVideoContent
476 ///   </li>
477 ///   <li>
478 ///     FBSDKShareMessengerOpenGraphMusicTemplateContent
479 ///   </li>
480 ///   <li>
481 ///     FBSDKShareMessengerMediaTemplateContent
482 ///   </li>
483 ///   <li>
484 ///     FBSDKShareMessengerGenericTemplateContent
485 ///   </li>
486 ///   <li>
487 ///     Any other types that are not one of the four supported types listed above
488 ///   </li>
489 /// </ul>
490 SWIFT_CLASS_NAMED("MessageDialog")
491 @interface FBSDKMessageDialog : NSObject <FBSDKSharingDialog>
492 /// The receiver’s delegate or nil if it doesn’t have a delegate.
493 @property (nonatomic, weak) id <FBSDKSharingDelegate> _Nullable delegate;
494 /// The content to be shared.
495 @property (nonatomic, strong) id <FBSDKSharingContent> _Nullable shareContent;
496 /// A Boolean value that indicates whether the receiver should fail if it finds an error with the share content.
497 /// If <code>false</code>, the sharer will still be displayed without the data that was mis-configured.  For example, an
498 /// invalid placeID specified on the shareContent would produce a data error.
499 @property (nonatomic) BOOL shouldFailOnDataError;
500 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
501 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
502 /// Convenience initializer to return a Message Share Dialog with content and a delegate.
503 /// @param content The content to be shared.
504 /// @param delegate The receiver’s delegate.
505 - (nonnull instancetype)initWithContent:(id <FBSDKSharingContent> _Nullable)content delegate:(id <FBSDKSharingDelegate> _Nullable)delegate;
506 /// Convenience method to return a Message Share Dialog with content and a delegate.
507 /// @param content The content to be shared.
508 /// @param delegate The receiver’s delegate.
509 + (FBSDKMessageDialog * _Nonnull)dialogWithContent:(id <FBSDKSharingContent> _Nullable)content delegate:(id <FBSDKSharingDelegate> _Nullable)delegate SWIFT_WARN_UNUSED_RESULT;
510 /// Convenience method to show a Message Share Dialog with content and a delegate.
511 /// @param content The content to be shared.
512 /// @param delegate The receiver’s delegate.
513 + (FBSDKMessageDialog * _Nonnull)showWithContent:(id <FBSDKSharingContent> _Nullable)content delegate:(id <FBSDKSharingDelegate> _Nullable)delegate SWIFT_WARN_UNUSED_RESULT;
514 /// A Boolean value that indicates whether the receiver can initiate a share.
515 /// May return <code>false</code> if the appropriate Facebook app is not installed and is required or an access token is
516 /// required but not available.  This method does not validate the content on the receiver, so this can be checked before
517 /// building up the content.
518 /// See <code>Sharing.validate()</code>
519 /// @return <code>true</code> if the receiver can share, otherwise <code>false</code>.
520 @property (nonatomic, readonly) BOOL canShow;
521 /// Shows the dialog.
522 /// @return <code>true</code> if the receiver was able to begin sharing, otherwise <code>false</code>.
523 - (BOOL)show;
524 /// Validates the content on the receiver.
525 /// @return <code>true</code> if the content is valid, otherwise <code>false</code>.
526 - (BOOL)validateWithError:(NSError * _Nullable * _Nullable)error;
527 @end
528
529
530
531
532 /// A model for content to share with a Facebook camera effect.
533 SWIFT_CLASS_NAMED("ShareCameraEffectContent")
534 @interface FBSDKShareCameraEffectContent : NSObject
535 /// ID of the camera effect to use.
536 @property (nonatomic, copy) NSString * _Nonnull effectID;
537 /// Arguments for the effect.
538 @property (nonatomic, strong) FBSDKCameraEffectArguments * _Nonnull effectArguments;
539 /// Textures for the effect.
540 @property (nonatomic, strong) FBSDKCameraEffectTextures * _Nonnull effectTextures;
541 /// URL for the content being shared.
542 /// This URL will be checked for all link meta tags for linking in platform specific ways.  See documentation
543 /// for App Links (https://developers.facebook.com/docs/applinks/)
544 @property (nonatomic, copy) NSURL * _Nullable contentURL;
545 /// Hashtag for the content being shared.
546 @property (nonatomic, strong) FBSDKHashtag * _Nullable hashtag;
547 /// List of IDs for taggable people to tag with this content.
548 /// See documentation for Taggable Friends
549 /// (https://developers.facebook.com/docs/graph-api/reference/user/taggable_friends)
550 @property (nonatomic, copy) NSArray<NSString *> * _Nonnull peopleIDs;
551 /// The ID for a place to tag with this content.
552 @property (nonatomic, copy) NSString * _Nullable placeID;
553 /// A value to be added to the referrer URL when a person follows a link from this shared content on feed.
554 @property (nonatomic, copy) NSString * _Nullable ref;
555 /// For shares into Messenger, this pageID will be used to map the app to page and attach attribution to the share.
556 @property (nonatomic, copy) NSString * _Nullable pageID;
557 /// A unique identifier for a share involving this content, useful for tracking purposes.
558 @property (nonatomic, readonly, copy) NSString * _Nullable shareUUID;
559 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
560 @end
561
562
563 /// A base interface for content to be shared.
564 SWIFT_PROTOCOL_NAMED("SharingContent")
565 @protocol FBSDKSharingContent <FBSDKSharingValidatable, NSObject>
566 /// URL for the content being shared.
567 /// This URL will be checked for all link meta tags for linking in platform specific ways.
568 /// See documentation for App Links (https://developers.facebook.com/docs/applinks/)
569 @property (nonatomic, copy) NSURL * _Nullable contentURL;
570 /// Hashtag for the content being shared.
571 @property (nonatomic, strong) FBSDKHashtag * _Nullable hashtag;
572 /// List of IDs for taggable people to tag with this content.
573 /// See documentation for Taggable Friends
574 /// (https://developers.facebook.com/docs/graph-api/reference/user/taggable_friends)
575 @property (nonatomic, copy) NSArray<NSString *> * _Nonnull peopleIDs;
576 /// The ID for a place to tag with this content.
577 @property (nonatomic, copy) NSString * _Nullable placeID;
578 /// A value to be added to the referrer URL when a person follows a link from this shared content on feed.
579 @property (nonatomic, copy) NSString * _Nullable ref;
580 /// For shares into Messenger, this pageID will be used to map the app to page and attach attribution to the share.
581 @property (nonatomic, copy) NSString * _Nullable pageID;
582 /// A unique identifier for a share involving this content, useful for tracking purposes.
583 @property (nonatomic, readonly, copy) NSString * _Nullable shareUUID;
584 /// Adds content to an existing dictionary as key/value pairs and returns the
585 /// updated dictionary
586 /// @param existingParameters An immutable dictionary of existing values
587 /// @param bridgeOptions The options for bridging
588 /// @return A new dictionary with the modified contents
589 - (NSDictionary<NSString *, id> * _Nonnull)addParameters:(NSDictionary<NSString *, id> * _Nonnull)existingParameters bridgeOptions:(FBSDKShareBridgeOptions)bridgeOptions SWIFT_WARN_UNUSED_RESULT;
590 @end
591
592
593 @interface FBSDKShareCameraEffectContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingContent>
594 /// Adds content to an existing dictionary as key/value pairs and returns the
595 /// updated dictionary
596 /// @param existingParameters An immutable dictionary of existing values
597 /// @param bridgeOptions The options for bridging
598 /// @return A new dictionary with the modified contents
599 - (NSDictionary<NSString *, id> * _Nonnull)addParameters:(NSDictionary<NSString *, id> * _Nonnull)existingParameters bridgeOptions:(FBSDKShareBridgeOptions)bridgeOptions SWIFT_WARN_UNUSED_RESULT;
600 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
601 @end
602
603
604 @class UIViewController;
605 enum FBSDKShareDialogMode : NSUInteger;
606
607 /// A dialog for sharing content on Facebook.
608 SWIFT_CLASS_NAMED("ShareDialog")
609 @interface FBSDKShareDialog : NSObject <FBSDKSharingDialog>
610 /// A UIViewController from which to present the dialog.
611 /// If not specified, the topmost view controller will be automatically determined as best as possible.
612 @property (nonatomic, weak) UIViewController * _Nullable fromViewController;
613 /// The mode with which to display the dialog.
614 /// Defaults to <code>.automatic</code>, which will automatically choose the best available mode.
615 @property (nonatomic) enum FBSDKShareDialogMode mode;
616 /// The receiver’s delegate or nil if it doesn’t have a delegate.
617 @property (nonatomic, weak) id <FBSDKSharingDelegate> _Nullable delegate;
618 /// The content to be shared.
619 @property (nonatomic, strong) id <FBSDKSharingContent> _Nullable shareContent;
620 /// A Boolean value that indicates whether the receiver should fail if it finds an error with the share content.
621 /// If <code>false</code>, the sharer will still be displayed without the data that was misconfigured.  For example, an
622 /// invalid <code>placeID</code> specified on the <code>shareContent</code> would produce a data error.
623 @property (nonatomic) BOOL shouldFailOnDataError;
624 /// Convenience initializer to initialize a <code>ShareDialog</code> with a view controller, content and delegate.
625 /// @param viewController A view controller from which to present the dialog, if appropriate.
626 /// @param content The content to be shared.
627 /// @param delegate The dialog’s delegate.
628 - (nonnull instancetype)initWithViewController:(UIViewController * _Nullable)viewController content:(id <FBSDKSharingContent> _Nullable)content delegate:(id <FBSDKSharingDelegate> _Nullable)delegate OBJC_DESIGNATED_INITIALIZER;
629 /// Convenience method to create a <code>ShareDialog</code> with a view controller, content and delegate.
630 /// @param viewController A view controller from which to present the dialog, if appropriate.
631 /// @param content The content to be shared.
632 /// @param delegate The dialog’s delegate.
633 + (FBSDKShareDialog * _Nonnull)dialogWithViewController:(UIViewController * _Nullable)viewController withContent:(id <FBSDKSharingContent> _Nullable)content delegate:(id <FBSDKSharingDelegate> _Nullable)delegate SWIFT_WARN_UNUSED_RESULT;
634 /// Convenience method to show a <code>ShareDialog</code> with a view controller, content and delegate.
635 /// @param viewController A view controller from which to present the dialog, if appropriate.
636 /// @param content The content to be shared.
637 /// @param delegate The dialog’s delegate.
638 + (FBSDKShareDialog * _Nonnull)showFromViewController:(UIViewController * _Nullable)viewController withContent:(id <FBSDKSharingContent> _Nullable)content delegate:(id <FBSDKSharingDelegate> _Nullable)delegate;
639 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
640 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
641 @end
642
643
644 @interface FBSDKShareDialog (SWIFT_EXTENSION(FBSDKShareKit))
645 @end
646
647 /// Modes for the FBSDKShareDialog.
648 /// The automatic mode will progressively check the availability of different modes and open the most
649 /// appropriate mode for the dialog that is available.
650 typedef SWIFT_ENUM_NAMED(NSUInteger, FBSDKShareDialogMode, "Mode", open) {
651 /// Acts with the most appropriate mode that is available.
652   FBSDKShareDialogModeAutomatic = 0,
653 /// Displays the dialog in the main native Facebook app.
654   FBSDKShareDialogModeNative = 1,
655 /// Displays the dialog in the iOS integrated share sheet.
656   FBSDKShareDialogModeShareSheet = 2,
657 /// Displays the dialog in Safari.
658   FBSDKShareDialogModeBrowser = 3,
659 /// Displays the dialog in a WKWebView within the app.
660   FBSDKShareDialogModeWeb = 4,
661 /// Displays the feed dialog in Safari.
662   FBSDKShareDialogModeFeedBrowser = 5,
663 /// Displays the feed dialog in a WKWebView within the app.
664   FBSDKShareDialogModeFeedWeb = 6,
665 };
666
667 @class FBSDKWebDialog;
668
669 @interface FBSDKShareDialog (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKWebDialogDelegate>
670 - (void)webDialog:(FBSDKWebDialog * _Nonnull)webDialog didCompleteWithResults:(NSDictionary<NSString *, id> * _Nonnull)results;
671 - (void)webDialog:(FBSDKWebDialog * _Nonnull)webDialog didFailWithError:(NSError * _Nonnull)error;
672 - (void)webDialogDidCancel:(FBSDKWebDialog * _Nonnull)webDialog;
673 @end
674
675
676
677 @interface FBSDKShareDialog (SWIFT_EXTENSION(FBSDKShareKit))
678 @property (nonatomic, readonly) BOOL canShow;
679 - (BOOL)show;
680 - (BOOL)validateWithError:(NSError * _Nullable * _Nullable)error;
681 @end
682
683 /// ShareError
684 /// Error codes for ShareErrorDomain.
685 typedef SWIFT_ENUM_NAMED(NSInteger, FBSDKShareError, "ShareError", open) {
686 /// Reserved
687   FBSDKShareErrorReserved = 200,
688 /// The error code for errors from uploading open graph objects.
689   FBSDKShareErrorOpenGraph = 201,
690 /// The error code for when a sharing dialog is not available.
691 /// Use the canShare methods to check for this case before calling show.
692   FBSDKShareErrorDialogNotAvailable = 202,
693 /// The error code for unknown errors.
694   FBSDKShareErrorUnknown = 203,
695 };
696
697
698 /// A model for status and link content to be shared.
699 SWIFT_CLASS_NAMED("ShareLinkContent")
700 @interface FBSDKShareLinkContent : NSObject
701 /// Some quote text of the link.
702 /// If specified, the quote text will render with custom styling on top of the link.
703 @property (nonatomic, copy) NSString * _Nullable quote;
704 /// URL for the content being shared.
705 /// This URL will be checked for all link meta tags for linking in platform specific ways.  See documentation
706 /// for App Links (https://developers.facebook.com/docs/applinks/)
707 @property (nonatomic, copy) NSURL * _Nullable contentURL;
708 /// Hashtag for the content being shared.
709 @property (nonatomic, strong) FBSDKHashtag * _Nullable hashtag;
710 /// List of IDs for taggable people to tag with this content.
711 /// See documentation for Taggable Friends
712 /// (https://developers.facebook.com/docs/graph-api/reference/user/taggable_friends)
713 @property (nonatomic, copy) NSArray<NSString *> * _Nonnull peopleIDs;
714 /// The ID for a place to tag with this content.
715 @property (nonatomic, copy) NSString * _Nullable placeID;
716 /// A value to be added to the referrer URL when a person follows a link from this shared content on feed.
717 @property (nonatomic, copy) NSString * _Nullable ref;
718 /// For shares into Messenger, this pageID will be used to map the app to page and attach attribution to the share.
719 @property (nonatomic, copy) NSString * _Nullable pageID;
720 /// A unique identifier for a share involving this content, useful for tracking purposes.
721 @property (nonatomic, readonly, copy) NSString * _Nullable shareUUID;
722 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
723 @end
724
725
726 @interface FBSDKShareLinkContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingContent>
727 /// Adds content to an existing dictionary as key/value pairs and returns the
728 /// updated dictionary
729 /// @param existingParameters An immutable dictionary of existing values
730 /// @param bridgeOptions The options for bridging
731 /// @return A new dictionary with the modified contents
732 - (NSDictionary<NSString *, id> * _Nonnull)addParameters:(NSDictionary<NSString *, id> * _Nonnull)existingParameters bridgeOptions:(FBSDKShareBridgeOptions)bridgeOptions SWIFT_WARN_UNUSED_RESULT;
733 @end
734
735
736 @interface FBSDKShareLinkContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingValidatable>
737 /// Asks the receiver to validate that its content or media values are valid.
738 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
739 @end
740
741
742 /// A protocol for media content (photo or video) to be shared.
743 SWIFT_PROTOCOL_NAMED("ShareMedia")
744 @protocol FBSDKShareMedia
745 @end
746
747
748 /// A model for media content (photo or video) to be shared.
749 SWIFT_CLASS_NAMED("ShareMediaContent")
750 @interface FBSDKShareMediaContent : NSObject
751 /// Media to be shared: an array of <code>SharePhoto</code> or <code>ShareVideo</code>
752 @property (nonatomic, copy) NSArray<id <FBSDKShareMedia>> * _Nonnull media;
753 /// URL for the content being shared.
754 /// This URL will be checked for all link meta tags for linking in platform specific ways.  See documentation
755 /// for App Links (https://developers.facebook.com/docs/applinks/)
756 @property (nonatomic, copy) NSURL * _Nullable contentURL;
757 /// Hashtag for the content being shared.
758 @property (nonatomic, strong) FBSDKHashtag * _Nullable hashtag;
759 /// List of IDs for taggable people to tag with this content.
760 /// See documentation for Taggable Friends
761 /// (https://developers.facebook.com/docs/graph-api/reference/user/taggable_friends)
762 @property (nonatomic, copy) NSArray<NSString *> * _Nonnull peopleIDs;
763 /// The ID for a place to tag with this content.
764 @property (nonatomic, copy) NSString * _Nullable placeID;
765 /// A value to be added to the referrer URL when a person follows a link from this shared content on feed.
766 @property (nonatomic, copy) NSString * _Nullable ref;
767 /// For shares into Messenger, this pageID will be used to map the app to page and attach attribution to the share.
768 @property (nonatomic, copy) NSString * _Nullable pageID;
769 /// A unique identifier for a share involving this content, useful for tracking purposes.
770 @property (nonatomic, readonly, copy) NSString * _Nullable shareUUID;
771 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
772 @end
773
774
775 @interface FBSDKShareMediaContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingValidatable>
776 /// Asks the receiver to validate that its content or media values are valid.
777 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
778 @end
779
780
781 @interface FBSDKShareMediaContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingContent>
782 /// Adds content to an existing dictionary as key/value pairs and returns the
783 /// updated dictionary
784 /// @param existingParameters An immutable dictionary of existing values
785 /// @param bridgeOptions The options for bridging
786 /// @return A new dictionary with the modified contents
787 - (NSDictionary<NSString *, id> * _Nonnull)addParameters:(NSDictionary<NSString *, id> * _Nonnull)existingParameters bridgeOptions:(FBSDKShareBridgeOptions)bridgeOptions SWIFT_WARN_UNUSED_RESULT;
788 @end
789
790 @class PHAsset;
791
792 /// A photo for sharing.
793 SWIFT_CLASS_NAMED("SharePhoto")
794 @interface FBSDKSharePhoto : NSObject <FBSDKShareMedia>
795 /// If the photo is resident in memory, this method supplies the data.
796 @property (nonatomic, strong) UIImage * _Nullable image;
797 /// URL that points to a network location or the location of the photo on disk
798 @property (nonatomic, copy) NSURL * _Nullable imageURL;
799 /// The representation of the photo in the Photos library.
800 @property (nonatomic, strong) PHAsset * _Nullable photoAsset;
801 /// Specifies whether the photo represented by the receiver was generated by the user (<code>true</code>)
802 /// or by the application (<code>false</code>).
803 @property (nonatomic) BOOL isUserGenerated;
804 /// The user-generated caption for the photo. Note that the ‘caption’ must come from
805 /// the user, as pre-filled content is forbidden by the Platform Policies (2.3).
806 @property (nonatomic, copy) NSString * _Nullable caption;
807 /// Convenience method to build a new photo object with an image.
808 /// \param image If the photo is resident in memory, this method supplies the data 
809 ///
810 /// \param isUserGenerated Specifies whether the photo represented by the receiver was generated by the user or by the 
811 /// application
812 ///
813 - (nonnull instancetype)initWithImage:(UIImage * _Nonnull)image isUserGenerated:(BOOL)isUserGenerated;
814 /// Convenience method to build a new photo object with an imageURL.
815 /// This method should only be used when adding photo content to open graph stories.
816 /// For example, if you’re trying to share a photo from the web by itself, download the image and use
817 /// <code>init(image:isUserGenerated:)</code> instead.
818 /// \param imageURL The URL to the photo 
819 ///
820 /// \param isUserGenerated Specifies whether the photo represented by the receiver was generated by the user or by the 
821 /// application
822 ///
823 - (nonnull instancetype)initWithImageURL:(NSURL * _Nonnull)imageURL isUserGenerated:(BOOL)isUserGenerated;
824 /// Convenience method to build a new photo object with a PHAsset.
825 /// \param photoAsset The PHAsset that represents the photo in the Photos library.
826 ///
827 /// \param isUserGenerated Specifies whether the photo represented by the receiver was generated by the user or by
828 /// the application
829 ///
830 - (nonnull instancetype)initWithPhotoAsset:(PHAsset * _Nonnull)photoAsset isUserGenerated:(BOOL)isUserGenerated;
831 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
832 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
833 @end
834
835
836
837 @interface FBSDKSharePhoto (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingValidatable>
838 /// Asks the receiver to validate that its content or media values are valid.
839 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
840 @end
841
842
843
844 /// A model for photo content to be shared.
845 SWIFT_CLASS_NAMED("SharePhotoContent")
846 @interface FBSDKSharePhotoContent : NSObject
847 /// Photos to be shared.
848 @property (nonatomic, copy) NSArray<FBSDKSharePhoto *> * _Nonnull photos;
849 /// URL for the content being shared.
850 /// This URL will be checked for all link meta tags for linking in platform specific ways.  See documentation
851 /// for App Links (https://developers.facebook.com/docs/applinks/)
852 @property (nonatomic, copy) NSURL * _Nullable contentURL;
853 /// Hashtag for the content being shared.
854 @property (nonatomic, strong) FBSDKHashtag * _Nullable hashtag;
855 /// List of IDs for taggable people to tag with this content.
856 /// See documentation for Taggable Friends
857 /// (https://developers.facebook.com/docs/graph-api/reference/user/taggable_friends)
858 @property (nonatomic, copy) NSArray<NSString *> * _Nonnull peopleIDs;
859 /// The ID for a place to tag with this content.
860 @property (nonatomic, copy) NSString * _Nullable placeID;
861 /// A value to be added to the referrer URL when a person follows a link from this shared content on feed.
862 @property (nonatomic, copy) NSString * _Nullable ref;
863 /// For shares into Messenger, this pageID will be used to map the app to page and attach attribution to the share.
864 @property (nonatomic, copy) NSString * _Nullable pageID;
865 /// A unique identifier for a share involving this content, useful for tracking purposes.
866 @property (nonatomic, readonly, copy) NSString * _Nullable shareUUID;
867 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
868 @end
869
870
871 @interface FBSDKSharePhotoContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingContent>
872 /// Adds content to an existing dictionary as key/value pairs and returns the
873 /// updated dictionary
874 /// @param existingParameters An immutable dictionary of existing values
875 /// @param bridgeOptions The options for bridging
876 /// @return A new dictionary with the modified contents
877 - (NSDictionary<NSString *, id> * _Nonnull)addParameters:(NSDictionary<NSString *, id> * _Nonnull)existingParameters bridgeOptions:(FBSDKShareBridgeOptions)bridgeOptions SWIFT_WARN_UNUSED_RESULT;
878 @end
879
880
881 @interface FBSDKSharePhotoContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingValidatable>
882 /// Validate that this content contains valid values
883 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
884 @end
885
886
887 @class NSData;
888
889 /// A video for sharing.
890 SWIFT_CLASS_NAMED("ShareVideo")
891 @interface FBSDKShareVideo : NSObject <FBSDKShareMedia>
892 /// The raw video data.
893 @property (nonatomic, copy) NSData * _Nullable data;
894 /// The representation of the video in the Photos library.
895 @property (nonatomic, strong) PHAsset * _Nullable videoAsset;
896 /// The file URL to the video.
897 @property (nonatomic, copy) NSURL * _Nullable videoURL;
898 /// The photo that represents the video.
899 @property (nonatomic, strong) FBSDKSharePhoto * _Nullable previewPhoto;
900 /// Convenience method to build a new video object from raw data and an optional preview photo.
901 /// \param data The Data object that holds the raw video data.
902 ///
903 /// \param previewPhoto The photo that represents the video.
904 ///
905 - (nonnull instancetype)initWithData:(NSData * _Nonnull)data previewPhoto:(FBSDKSharePhoto * _Nullable)previewPhoto;
906 /// Convenience method to build a new video object from a PHAsset and an optional preview photo.
907 /// \param videoAsset The PHAsset that represents the video in the Photos library.
908 ///
909 /// \param previewPhoto The photo that represents the video.
910 ///
911 - (nonnull instancetype)initWithVideoAsset:(PHAsset * _Nonnull)videoAsset previewPhoto:(FBSDKSharePhoto * _Nullable)previewPhoto;
912 /// Convenience method to build a new video object from a URL and an optional preview photo.
913 /// \param videoURL The URL to the video.
914 ///
915 /// \param previewPhoto The photo that represents the video.
916 ///
917 - (nonnull instancetype)initWithVideoURL:(NSURL * _Nonnull)videoURL previewPhoto:(FBSDKSharePhoto * _Nullable)previewPhoto;
918 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
919 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
920 @end
921
922
923
924 @interface FBSDKShareVideo (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingValidatable>
925 /// Asks the receiver to validate that its content or media values are valid.
926 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
927 @end
928
929
930
931 /// A model for video content to be shared.
932 SWIFT_CLASS_NAMED("ShareVideoContent")
933 @interface FBSDKShareVideoContent : NSObject
934 /// The video to be shared
935 @property (nonatomic, strong) FBSDKShareVideo * _Nonnull video;
936 /// URL for the content being shared.
937 /// This URL will be checked for all link meta tags for linking in platform specific ways.  See documentation
938 /// for App Links (https://developers.facebook.com/docs/applinks/)
939 @property (nonatomic, copy) NSURL * _Nullable contentURL;
940 /// Hashtag for the content being shared.
941 @property (nonatomic, strong) FBSDKHashtag * _Nullable hashtag;
942 /// List of IDs for taggable people to tag with this content.
943 /// See documentation for Taggable Friends
944 /// (https://developers.facebook.com/docs/graph-api/reference/user/taggable_friends)
945 @property (nonatomic, copy) NSArray<NSString *> * _Nonnull peopleIDs;
946 /// The ID for a place to tag with this content.
947 @property (nonatomic, copy) NSString * _Nullable placeID;
948 /// A value to be added to the referrer URL when a person follows a link from this shared content on feed.
949 @property (nonatomic, copy) NSString * _Nullable ref;
950 /// For shares into Messenger, this pageID will be used to map the app to page and attach attribution to the share.
951 @property (nonatomic, copy) NSString * _Nullable pageID;
952 /// A unique identifier for a share involving this content, useful for tracking purposes.
953 @property (nonatomic, readonly, copy) NSString * _Nullable shareUUID;
954 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
955 @end
956
957
958 @interface FBSDKShareVideoContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingContent>
959 /// Adds content to an existing dictionary as key/value pairs and returns the
960 /// updated dictionary
961 /// @param existingParameters An immutable dictionary of existing values
962 /// @param bridgeOptions The options for bridging
963 /// @return A new dictionary with the modified contents
964 - (NSDictionary<NSString *, id> * _Nonnull)addParameters:(NSDictionary<NSString *, id> * _Nonnull)existingParameters bridgeOptions:(FBSDKShareBridgeOptions)bridgeOptions SWIFT_WARN_UNUSED_RESULT;
965 @end
966
967
968 @interface FBSDKShareVideoContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingValidatable>
969 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
970 @end
971
972
973
974
975
976
977 /// A delegate for types conforming to the <code>Sharing</code> protocol.
978 /// The delegate is notified with the results of the sharer as long as the application has permissions to
979 /// receive the information.  For example, if the person is not signed into the containing app, the sharer may not be able
980 /// to distinguish between completion of a share and cancellation.
981 SWIFT_PROTOCOL_NAMED("SharingDelegate")
982 @protocol FBSDKSharingDelegate
983 /// Sent to the delegate when sharing completes without error or cancellation.
984 /// @param sharer The sharer that completed.
985 /// @param results The results from the sharer.  This may be nil or empty.
986 - (void)sharer:(id <FBSDKSharing> _Nonnull)sharer didCompleteWithResults:(NSDictionary<NSString *, id> * _Nonnull)results;
987 /// Sent to the delegate when the sharer encounters an error.
988 /// @param sharer The sharer that completed.
989 /// @param error The error.
990 - (void)sharer:(id <FBSDKSharing> _Nonnull)sharer didFailWithError:(NSError * _Nonnull)error;
991 /// Sent to the delegate when the sharer is cancelled.
992 /// @param sharer The sharer that completed.
993 - (void)sharerDidCancel:(id <FBSDKSharing> _Nonnull)sharer;
994 @end
995
996
997
998
999 #endif
1000 #if defined(__cplusplus)
1001 #endif
1002 #if __has_attribute(external_source_symbol)
1003 # pragma clang attribute pop
1004 #endif
1005 #pragma clang diagnostic pop
1006 #endif
1007
1008 #elif defined(__x86_64__) && __x86_64__
1009 // Generated by Apple Swift version 5.7.2 (swiftlang-5.7.2.135.5 clang-1400.0.29.51)
1010 #ifndef FBSDKSHAREKIT_SWIFT_H
1011 #define FBSDKSHAREKIT_SWIFT_H
1012 #pragma clang diagnostic push
1013 #pragma clang diagnostic ignored "-Wgcc-compat"
1014
1015 #if !defined(__has_include)
1016 # define __has_include(x) 0
1017 #endif
1018 #if !defined(__has_attribute)
1019 # define __has_attribute(x) 0
1020 #endif
1021 #if !defined(__has_feature)
1022 # define __has_feature(x) 0
1023 #endif
1024 #if !defined(__has_warning)
1025 # define __has_warning(x) 0
1026 #endif
1027
1028 #if __has_include(<swift/objc-prologue.h>)
1029 # include <swift/objc-prologue.h>
1030 #endif
1031
1032 #pragma clang diagnostic ignored "-Wduplicate-method-match"
1033 #pragma clang diagnostic ignored "-Wauto-import"
1034 #if defined(__OBJC__)
1035 #include <Foundation/Foundation.h>
1036 #endif
1037 #if defined(__cplusplus)
1038 #include <cstdint>
1039 #include <cstddef>
1040 #include <cstdbool>
1041 #else
1042 #include <stdint.h>
1043 #include <stddef.h>
1044 #include <stdbool.h>
1045 #endif
1046
1047 #if !defined(SWIFT_TYPEDEFS)
1048 # define SWIFT_TYPEDEFS 1
1049 # if __has_include(<uchar.h>)
1050 #  include <uchar.h>
1051 # elif !defined(__cplusplus)
1052 typedef uint_least16_t char16_t;
1053 typedef uint_least32_t char32_t;
1054 # endif
1055 typedef float swift_float2  __attribute__((__ext_vector_type__(2)));
1056 typedef float swift_float3  __attribute__((__ext_vector_type__(3)));
1057 typedef float swift_float4  __attribute__((__ext_vector_type__(4)));
1058 typedef double swift_double2  __attribute__((__ext_vector_type__(2)));
1059 typedef double swift_double3  __attribute__((__ext_vector_type__(3)));
1060 typedef double swift_double4  __attribute__((__ext_vector_type__(4)));
1061 typedef int swift_int2  __attribute__((__ext_vector_type__(2)));
1062 typedef int swift_int3  __attribute__((__ext_vector_type__(3)));
1063 typedef int swift_int4  __attribute__((__ext_vector_type__(4)));
1064 typedef unsigned int swift_uint2  __attribute__((__ext_vector_type__(2)));
1065 typedef unsigned int swift_uint3  __attribute__((__ext_vector_type__(3)));
1066 typedef unsigned int swift_uint4  __attribute__((__ext_vector_type__(4)));
1067 #endif
1068
1069 #if !defined(SWIFT_PASTE)
1070 # define SWIFT_PASTE_HELPER(x, y) x##y
1071 # define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
1072 #endif
1073 #if !defined(SWIFT_METATYPE)
1074 # define SWIFT_METATYPE(X) Class
1075 #endif
1076 #if !defined(SWIFT_CLASS_PROPERTY)
1077 # if __has_feature(objc_class_property)
1078 #  define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
1079 # else
1080 #  define SWIFT_CLASS_PROPERTY(...)
1081 # endif
1082 #endif
1083
1084 #if __has_attribute(objc_runtime_name)
1085 # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
1086 #else
1087 # define SWIFT_RUNTIME_NAME(X)
1088 #endif
1089 #if __has_attribute(swift_name)
1090 # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
1091 #else
1092 # define SWIFT_COMPILE_NAME(X)
1093 #endif
1094 #if __has_attribute(objc_method_family)
1095 # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
1096 #else
1097 # define SWIFT_METHOD_FAMILY(X)
1098 #endif
1099 #if __has_attribute(noescape)
1100 # define SWIFT_NOESCAPE __attribute__((noescape))
1101 #else
1102 # define SWIFT_NOESCAPE
1103 #endif
1104 #if __has_attribute(ns_consumed)
1105 # define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
1106 #else
1107 # define SWIFT_RELEASES_ARGUMENT
1108 #endif
1109 #if __has_attribute(warn_unused_result)
1110 # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
1111 #else
1112 # define SWIFT_WARN_UNUSED_RESULT
1113 #endif
1114 #if __has_attribute(noreturn)
1115 # define SWIFT_NORETURN __attribute__((noreturn))
1116 #else
1117 # define SWIFT_NORETURN
1118 #endif
1119 #if !defined(SWIFT_CLASS_EXTRA)
1120 # define SWIFT_CLASS_EXTRA
1121 #endif
1122 #if !defined(SWIFT_PROTOCOL_EXTRA)
1123 # define SWIFT_PROTOCOL_EXTRA
1124 #endif
1125 #if !defined(SWIFT_ENUM_EXTRA)
1126 # define SWIFT_ENUM_EXTRA
1127 #endif
1128 #if !defined(SWIFT_CLASS)
1129 # if __has_attribute(objc_subclassing_restricted)
1130 #  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
1131 #  define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
1132 # else
1133 #  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
1134 #  define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
1135 # endif
1136 #endif
1137 #if !defined(SWIFT_RESILIENT_CLASS)
1138 # if __has_attribute(objc_class_stub)
1139 #  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
1140 #  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
1141 # else
1142 #  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
1143 #  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
1144 # endif
1145 #endif
1146
1147 #if !defined(SWIFT_PROTOCOL)
1148 # define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
1149 # define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
1150 #endif
1151
1152 #if !defined(SWIFT_EXTENSION)
1153 # define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
1154 #endif
1155
1156 #if !defined(OBJC_DESIGNATED_INITIALIZER)
1157 # if __has_attribute(objc_designated_initializer)
1158 #  define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
1159 # else
1160 #  define OBJC_DESIGNATED_INITIALIZER
1161 # endif
1162 #endif
1163 #if !defined(SWIFT_ENUM_ATTR)
1164 # if defined(__has_attribute) && __has_attribute(enum_extensibility)
1165 #  define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
1166 # else
1167 #  define SWIFT_ENUM_ATTR(_extensibility)
1168 # endif
1169 #endif
1170 #if !defined(SWIFT_ENUM)
1171 # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
1172 # if __has_feature(generalized_swift_name)
1173 #  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
1174 # else
1175 #  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
1176 # endif
1177 #endif
1178 #if !defined(SWIFT_UNAVAILABLE)
1179 # define SWIFT_UNAVAILABLE __attribute__((unavailable))
1180 #endif
1181 #if !defined(SWIFT_UNAVAILABLE_MSG)
1182 # define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
1183 #endif
1184 #if !defined(SWIFT_AVAILABILITY)
1185 # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
1186 #endif
1187 #if !defined(SWIFT_WEAK_IMPORT)
1188 # define SWIFT_WEAK_IMPORT __attribute__((weak_import))
1189 #endif
1190 #if !defined(SWIFT_DEPRECATED)
1191 # define SWIFT_DEPRECATED __attribute__((deprecated))
1192 #endif
1193 #if !defined(SWIFT_DEPRECATED_MSG)
1194 # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
1195 #endif
1196 #if __has_feature(attribute_diagnose_if_objc)
1197 # define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
1198 #else
1199 # define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
1200 #endif
1201 #if defined(__OBJC__)
1202 #if !defined(IBSegueAction)
1203 # define IBSegueAction
1204 #endif
1205 #endif
1206 #if !defined(SWIFT_EXTERN)
1207 # if defined(__cplusplus)
1208 #  define SWIFT_EXTERN extern "C"
1209 # else
1210 #  define SWIFT_EXTERN extern
1211 # endif
1212 #endif
1213 #if !defined(SWIFT_CALL)
1214 # define SWIFT_CALL __attribute__((swiftcall))
1215 #endif
1216 #if defined(__cplusplus)
1217 #if !defined(SWIFT_NOEXCEPT)
1218 # define SWIFT_NOEXCEPT noexcept
1219 #endif
1220 #else
1221 #if !defined(SWIFT_NOEXCEPT)
1222 # define SWIFT_NOEXCEPT 
1223 #endif
1224 #endif
1225 #if defined(__cplusplus)
1226 #if !defined(SWIFT_CXX_INT_DEFINED)
1227 #define SWIFT_CXX_INT_DEFINED
1228 namespace swift {
1229 using Int = ptrdiff_t;
1230 using UInt = size_t;
1231 }
1232 #endif
1233 #endif
1234 #if defined(__OBJC__)
1235 #if __has_feature(modules)
1236 #if __has_warning("-Watimport-in-framework-header")
1237 #pragma clang diagnostic ignored "-Watimport-in-framework-header"
1238 #endif
1239 @import CoreFoundation;
1240 @import FBSDKCoreKit;
1241 @import Foundation;
1242 @import ObjectiveC;
1243 #endif
1244
1245 #import <FBSDKShareKit/FBSDKShareKit.h>
1246
1247 #endif
1248 #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
1249 #pragma clang diagnostic ignored "-Wduplicate-method-arg"
1250 #if __has_warning("-Wpragma-clang-attribute")
1251 # pragma clang diagnostic ignored "-Wpragma-clang-attribute"
1252 #endif
1253 #pragma clang diagnostic ignored "-Wunknown-pragmas"
1254 #pragma clang diagnostic ignored "-Wnullability"
1255 #pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
1256
1257 #if __has_attribute(external_source_symbol)
1258 # pragma push_macro("any")
1259 # undef any
1260 # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FBSDKShareKit",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
1261 # pragma pop_macro("any")
1262 #endif
1263
1264 #if defined(__OBJC__)
1265
1266 @class NSURL;
1267 @class NSString;
1268 enum FBSDKAppInviteDestination : NSInteger;
1269
1270 /// A model for app invite
1271 SWIFT_CLASS_NAMED("AppInviteContent")
1272 @interface FBSDKAppInviteContent : NSObject
1273 /// A URL to a preview image that will be displayed with the app invite
1274 /// This is optional.  If you don’t include it a fallback image will be used.
1275 @property (nonatomic, copy) NSURL * _Nullable appInvitePreviewImageURL;
1276 /// An app link target that will be used as a target when the user accept the invite.
1277 @property (nonatomic, copy) NSURL * _Nonnull appLinkURL;
1278 /// Promotional code to be displayed while sending and receiving the invite.
1279 /// This is optional. This can be between 0 and 10 characters long and can contain
1280 /// alphanumeric characters only. To set a promo code, you need to set promo text.
1281 @property (nonatomic, copy) NSString * _Nullable promotionCode;
1282 /// Promotional text to be displayed while sending and receiving the invite.
1283 /// This is optional. This can be between 0 and 80 characters long and can contain
1284 /// alphanumeric and spaces only.
1285 @property (nonatomic, copy) NSString * _Nullable promotionText;
1286 /// Destination for the app invite.  The default value is <code>.facebook</code>.
1287 @property (nonatomic) enum FBSDKAppInviteDestination destination;
1288 - (nonnull instancetype)initWithAppLinkURL:(NSURL * _Nonnull)appLinkURL OBJC_DESIGNATED_INITIALIZER;
1289 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1290 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1291 @end
1292
1293 /// Specifies the privacy of a group.
1294 typedef SWIFT_ENUM_NAMED(NSInteger, FBSDKAppInviteDestination, "Destination", open) {
1295 /// Deliver to Facebook
1296   FBSDKAppInviteDestinationFacebook = 0,
1297   FBSDKAppInviteDestinationMessenger = 1,
1298 };
1299
1300
1301 /// An interface for validatable content and media.
1302 SWIFT_PROTOCOL_NAMED("SharingValidatable")
1303 @protocol FBSDKSharingValidatable
1304 /// Validate that this content or media contains valid values.
1305 /// \param options The share bridge options to use for validation.
1306 ///
1307 ///
1308 /// throws:
1309 /// If the values are not valid.
1310 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)options error:(NSError * _Nullable * _Nullable)error;
1311 @end
1312
1313
1314 @interface FBSDKAppInviteContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingValidatable>
1315 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
1316 @end
1317
1318
1319
1320 /// A container of arguments for a camera effect.
1321 /// An argument is a <code>String</code> or <code>[String]</code> identified by a <code>String</code> key.
1322 SWIFT_CLASS_NAMED("CameraEffectArguments")
1323 @interface FBSDKCameraEffectArguments : NSObject
1324 /// Sets a string argument in the container.
1325 /// @param string The argument
1326 /// @param key The key for the argument
1327 - (void)setString:(NSString * _Nullable)string forKey:(NSString * _Nonnull)key;
1328 /// Gets a string argument from the container.
1329 /// @param key The key for the argument
1330 /// @return The string value or nil
1331 - (NSString * _Nullable)stringForKey:(NSString * _Nonnull)key SWIFT_WARN_UNUSED_RESULT;
1332 /// Sets a string array argument in the container.
1333 /// @param array The array argument
1334 /// @param key The key for the argument
1335 - (void)setArray:(NSArray<NSString *> * _Nullable)array forKey:(NSString * _Nonnull)key;
1336 /// Gets an array argument from the container.
1337 /// @param key The key for the argument
1338 /// @return The array argument
1339 - (NSArray<NSString *> * _Nullable)arrayForKey:(NSString * _Nonnull)key SWIFT_WARN_UNUSED_RESULT;
1340 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
1341 @end
1342
1343 @class UIImage;
1344
1345 /// A container of textures for a camera effect.
1346 /// A texture for a camera effect is an UIImages identified by a NSString key.
1347 SWIFT_CLASS_NAMED("CameraEffectTextures")
1348 @interface FBSDKCameraEffectTextures : NSObject
1349 /// Sets the image for a texture key.
1350 /// @param image The <code>UIImage</code> for the texture
1351 /// @param key The key for the texture
1352 - (void)setImage:(UIImage * _Nullable)image forKey:(NSString * _Nonnull)key;
1353 /// Gets the image for a texture key.
1354 /// @param key The key for the texture
1355 /// @return The texture <code>UIImage</code> or nil
1356 - (UIImage * _Nullable)imageForKey:(NSString * _Nonnull)key SWIFT_WARN_UNUSED_RESULT;
1357 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
1358 @end
1359
1360 @protocol FBSDKSharingContent;
1361
1362 /// The common interface for sharing buttons.
1363 /// See FBSendButton and FBShareButton
1364 SWIFT_PROTOCOL_NAMED("SharingButton")
1365 @protocol FBSDKSharingButton
1366 /// The content to be shared.
1367 @property (nonatomic, strong) id <FBSDKSharingContent> _Nullable shareContent;
1368 @end
1369
1370 @class FBSDKMessageDialog;
1371 @class NSCoder;
1372
1373 /// A button to send content through Messenger.
1374 /// Tapping the receiver will invoke the FBSDKShareDialog with the attached shareContent.  If the dialog cannot
1375 /// be shown, the button will be disable.
1376 SWIFT_CLASS_NAMED("FBSendButton")
1377 @interface FBSDKSendButton : FBSDKButton <FBSDKButtonImpressionLogging, FBSDKSharingButton>
1378 @property (nonatomic, strong) FBSDKMessageDialog * _Nullable dialog;
1379 @property (nonatomic, strong) id <FBSDKSharingContent> _Nullable shareContent;
1380 @property (nonatomic, readonly, copy) NSDictionary<FBSDKAppEventParameterName, id> * _Nullable analyticsParameters;
1381 @property (nonatomic, readonly) FBSDKAppEventName _Nonnull impressionTrackingEventName;
1382 @property (nonatomic, readonly, copy) NSString * _Nonnull impressionTrackingIdentifier;
1383 @property (nonatomic, readonly, getter=isImplicitlyDisabled) BOOL implicitlyDisabled;
1384 - (void)configureButton;
1385 - (nonnull instancetype)initWithFrame:(CGRect)frame OBJC_DESIGNATED_INITIALIZER;
1386 - (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
1387 @end
1388
1389
1390
1391 /// A button to share content.
1392 /// Tapping the receiver will invoke the FBSDKShareDialog with the attached shareContent.  If the dialog cannot
1393 /// be shown, the button will be disabled.
1394 SWIFT_CLASS_NAMED("FBShareButton")
1395 @interface FBSDKShareButton : FBSDKButton <FBSDKSharingButton>
1396 @property (nonatomic, strong) id <FBSDKSharingContent> _Nullable shareContent;
1397 @property (nonatomic, readonly, copy) NSDictionary<FBSDKAppEventParameterName, id> * _Nullable analyticsParameters;
1398 @property (nonatomic, readonly) FBSDKAppEventName _Nonnull impressionTrackingEventName;
1399 @property (nonatomic, readonly, copy) NSString * _Nonnull impressionTrackingIdentifier;
1400 @property (nonatomic, readonly, getter=isImplicitlyDisabled) BOOL implicitlyDisabled;
1401 - (void)configureButton;
1402 - (nonnull instancetype)initWithFrame:(CGRect)frame OBJC_DESIGNATED_INITIALIZER;
1403 - (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
1404 @end
1405
1406
1407
1408 /// Represents a single hashtag that can be used with the share dialog.
1409 SWIFT_CLASS_NAMED("Hashtag")
1410 @interface FBSDKHashtag : NSObject
1411 /// The hashtag string.
1412 /// You are responsible for making sure that <code>stringRepresentation</code> is a valid hashtag (a single ‘#’ followed by one or more
1413 /// word characters). Invalid hashtags are ignored when sharing content. You can check validity with the<code>valid</code> property.
1414 /// @return The hashtag string
1415 @property (nonatomic, copy) NSString * _Nonnull stringRepresentation;
1416 - (nonnull instancetype)initWithString:(NSString * _Nonnull)string OBJC_DESIGNATED_INITIALIZER;
1417 @property (nonatomic, readonly, copy) NSString * _Nonnull description;
1418 /// Tests if a hashtag is valid.
1419 /// A valid hashtag matches the regular expression “#\w+”: A single ‘#’ followed by one or more word characters.
1420 /// @return true if the hashtag is valid, false otherwise.
1421 @property (nonatomic, readonly) BOOL isValid;
1422 @property (nonatomic, readonly) NSUInteger hash;
1423 - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
1424 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1425 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1426 @end
1427
1428
1429 @protocol FBSDKSharingDelegate;
1430
1431 /// The common interface for components that initiate sharing.
1432 /// See ShareDialog, MessageDialog
1433 SWIFT_PROTOCOL_NAMED("Sharing")
1434 @protocol FBSDKSharing
1435 /// The receiver’s delegate or nil if it doesn’t have a delegate.
1436 @property (nonatomic, weak) id <FBSDKSharingDelegate> _Nullable delegate;
1437 /// The content to be shared.
1438 @property (nonatomic, strong) id <FBSDKSharingContent> _Nullable shareContent;
1439 /// A boolean value that indicates whether the receiver should fail if it finds an error with the share content.
1440 /// If <code>false</code>, the sharer will still be displayed without the data that was misconfigured.  For example, an
1441 /// invalid <code>placeID</code> specified on the <code>shareContent</code> would produce a data error.
1442 @property (nonatomic) BOOL shouldFailOnDataError;
1443 /// Validates the content on the receiver.
1444 /// @throws An error if the content is invalid
1445 - (BOOL)validateWithError:(NSError * _Nullable * _Nullable)error;
1446 @end
1447
1448
1449 /// The common interface for dialogs that initiate sharing.
1450 SWIFT_PROTOCOL_NAMED("SharingDialog")
1451 @protocol FBSDKSharingDialog <FBSDKSharing>
1452 /// A boolean value that indicates whether the receiver can initiate a share.
1453 /// May return <code>false</code> if the appropriate Facebook app is not installed and is required or an access token is
1454 /// required but not available.  This method does not validate the content on the receiver, so this can be checked before
1455 /// building up the content.
1456 /// See <code>Sharing.validate(error:)</code>
1457 /// @return <code>true</code> if the receiver can share, otherwise <code>false</code>.
1458 @property (nonatomic, readonly) BOOL canShow;
1459 /// Shows the dialog.
1460 /// @return <code>true</code> if the receiver was able to begin sharing, otherwise <code>false</code>.
1461 - (BOOL)show;
1462 @end
1463
1464
1465 /// A dialog for sharing content through Messenger.
1466 /// SUPPORTED SHARE TYPES
1467 /// <ul>
1468 ///   <li>
1469 ///     FBSDKShareLinkContent
1470 ///   </li>
1471 /// </ul>
1472 /// UNSUPPORTED SHARE TYPES (DEPRECATED AUGUST 2018)
1473 /// <ul>
1474 ///   <li>
1475 ///     FBSDKShareOpenGraphContent
1476 ///   </li>
1477 ///   <li>
1478 ///     FBSDKSharePhotoContent
1479 ///   </li>
1480 ///   <li>
1481 ///     FBSDKShareVideoContent
1482 ///   </li>
1483 ///   <li>
1484 ///     FBSDKShareMessengerOpenGraphMusicTemplateContent
1485 ///   </li>
1486 ///   <li>
1487 ///     FBSDKShareMessengerMediaTemplateContent
1488 ///   </li>
1489 ///   <li>
1490 ///     FBSDKShareMessengerGenericTemplateContent
1491 ///   </li>
1492 ///   <li>
1493 ///     Any other types that are not one of the four supported types listed above
1494 ///   </li>
1495 /// </ul>
1496 SWIFT_CLASS_NAMED("MessageDialog")
1497 @interface FBSDKMessageDialog : NSObject <FBSDKSharingDialog>
1498 /// The receiver’s delegate or nil if it doesn’t have a delegate.
1499 @property (nonatomic, weak) id <FBSDKSharingDelegate> _Nullable delegate;
1500 /// The content to be shared.
1501 @property (nonatomic, strong) id <FBSDKSharingContent> _Nullable shareContent;
1502 /// A Boolean value that indicates whether the receiver should fail if it finds an error with the share content.
1503 /// If <code>false</code>, the sharer will still be displayed without the data that was mis-configured.  For example, an
1504 /// invalid placeID specified on the shareContent would produce a data error.
1505 @property (nonatomic) BOOL shouldFailOnDataError;
1506 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1507 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1508 /// Convenience initializer to return a Message Share Dialog with content and a delegate.
1509 /// @param content The content to be shared.
1510 /// @param delegate The receiver’s delegate.
1511 - (nonnull instancetype)initWithContent:(id <FBSDKSharingContent> _Nullable)content delegate:(id <FBSDKSharingDelegate> _Nullable)delegate;
1512 /// Convenience method to return a Message Share Dialog with content and a delegate.
1513 /// @param content The content to be shared.
1514 /// @param delegate The receiver’s delegate.
1515 + (FBSDKMessageDialog * _Nonnull)dialogWithContent:(id <FBSDKSharingContent> _Nullable)content delegate:(id <FBSDKSharingDelegate> _Nullable)delegate SWIFT_WARN_UNUSED_RESULT;
1516 /// Convenience method to show a Message Share Dialog with content and a delegate.
1517 /// @param content The content to be shared.
1518 /// @param delegate The receiver’s delegate.
1519 + (FBSDKMessageDialog * _Nonnull)showWithContent:(id <FBSDKSharingContent> _Nullable)content delegate:(id <FBSDKSharingDelegate> _Nullable)delegate SWIFT_WARN_UNUSED_RESULT;
1520 /// A Boolean value that indicates whether the receiver can initiate a share.
1521 /// May return <code>false</code> if the appropriate Facebook app is not installed and is required or an access token is
1522 /// required but not available.  This method does not validate the content on the receiver, so this can be checked before
1523 /// building up the content.
1524 /// See <code>Sharing.validate()</code>
1525 /// @return <code>true</code> if the receiver can share, otherwise <code>false</code>.
1526 @property (nonatomic, readonly) BOOL canShow;
1527 /// Shows the dialog.
1528 /// @return <code>true</code> if the receiver was able to begin sharing, otherwise <code>false</code>.
1529 - (BOOL)show;
1530 /// Validates the content on the receiver.
1531 /// @return <code>true</code> if the content is valid, otherwise <code>false</code>.
1532 - (BOOL)validateWithError:(NSError * _Nullable * _Nullable)error;
1533 @end
1534
1535
1536
1537
1538 /// A model for content to share with a Facebook camera effect.
1539 SWIFT_CLASS_NAMED("ShareCameraEffectContent")
1540 @interface FBSDKShareCameraEffectContent : NSObject
1541 /// ID of the camera effect to use.
1542 @property (nonatomic, copy) NSString * _Nonnull effectID;
1543 /// Arguments for the effect.
1544 @property (nonatomic, strong) FBSDKCameraEffectArguments * _Nonnull effectArguments;
1545 /// Textures for the effect.
1546 @property (nonatomic, strong) FBSDKCameraEffectTextures * _Nonnull effectTextures;
1547 /// URL for the content being shared.
1548 /// This URL will be checked for all link meta tags for linking in platform specific ways.  See documentation
1549 /// for App Links (https://developers.facebook.com/docs/applinks/)
1550 @property (nonatomic, copy) NSURL * _Nullable contentURL;
1551 /// Hashtag for the content being shared.
1552 @property (nonatomic, strong) FBSDKHashtag * _Nullable hashtag;
1553 /// List of IDs for taggable people to tag with this content.
1554 /// See documentation for Taggable Friends
1555 /// (https://developers.facebook.com/docs/graph-api/reference/user/taggable_friends)
1556 @property (nonatomic, copy) NSArray<NSString *> * _Nonnull peopleIDs;
1557 /// The ID for a place to tag with this content.
1558 @property (nonatomic, copy) NSString * _Nullable placeID;
1559 /// A value to be added to the referrer URL when a person follows a link from this shared content on feed.
1560 @property (nonatomic, copy) NSString * _Nullable ref;
1561 /// For shares into Messenger, this pageID will be used to map the app to page and attach attribution to the share.
1562 @property (nonatomic, copy) NSString * _Nullable pageID;
1563 /// A unique identifier for a share involving this content, useful for tracking purposes.
1564 @property (nonatomic, readonly, copy) NSString * _Nullable shareUUID;
1565 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
1566 @end
1567
1568
1569 /// A base interface for content to be shared.
1570 SWIFT_PROTOCOL_NAMED("SharingContent")
1571 @protocol FBSDKSharingContent <FBSDKSharingValidatable, NSObject>
1572 /// URL for the content being shared.
1573 /// This URL will be checked for all link meta tags for linking in platform specific ways.
1574 /// See documentation for App Links (https://developers.facebook.com/docs/applinks/)
1575 @property (nonatomic, copy) NSURL * _Nullable contentURL;
1576 /// Hashtag for the content being shared.
1577 @property (nonatomic, strong) FBSDKHashtag * _Nullable hashtag;
1578 /// List of IDs for taggable people to tag with this content.
1579 /// See documentation for Taggable Friends
1580 /// (https://developers.facebook.com/docs/graph-api/reference/user/taggable_friends)
1581 @property (nonatomic, copy) NSArray<NSString *> * _Nonnull peopleIDs;
1582 /// The ID for a place to tag with this content.
1583 @property (nonatomic, copy) NSString * _Nullable placeID;
1584 /// A value to be added to the referrer URL when a person follows a link from this shared content on feed.
1585 @property (nonatomic, copy) NSString * _Nullable ref;
1586 /// For shares into Messenger, this pageID will be used to map the app to page and attach attribution to the share.
1587 @property (nonatomic, copy) NSString * _Nullable pageID;
1588 /// A unique identifier for a share involving this content, useful for tracking purposes.
1589 @property (nonatomic, readonly, copy) NSString * _Nullable shareUUID;
1590 /// Adds content to an existing dictionary as key/value pairs and returns the
1591 /// updated dictionary
1592 /// @param existingParameters An immutable dictionary of existing values
1593 /// @param bridgeOptions The options for bridging
1594 /// @return A new dictionary with the modified contents
1595 - (NSDictionary<NSString *, id> * _Nonnull)addParameters:(NSDictionary<NSString *, id> * _Nonnull)existingParameters bridgeOptions:(FBSDKShareBridgeOptions)bridgeOptions SWIFT_WARN_UNUSED_RESULT;
1596 @end
1597
1598
1599 @interface FBSDKShareCameraEffectContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingContent>
1600 /// Adds content to an existing dictionary as key/value pairs and returns the
1601 /// updated dictionary
1602 /// @param existingParameters An immutable dictionary of existing values
1603 /// @param bridgeOptions The options for bridging
1604 /// @return A new dictionary with the modified contents
1605 - (NSDictionary<NSString *, id> * _Nonnull)addParameters:(NSDictionary<NSString *, id> * _Nonnull)existingParameters bridgeOptions:(FBSDKShareBridgeOptions)bridgeOptions SWIFT_WARN_UNUSED_RESULT;
1606 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
1607 @end
1608
1609
1610 @class UIViewController;
1611 enum FBSDKShareDialogMode : NSUInteger;
1612
1613 /// A dialog for sharing content on Facebook.
1614 SWIFT_CLASS_NAMED("ShareDialog")
1615 @interface FBSDKShareDialog : NSObject <FBSDKSharingDialog>
1616 /// A UIViewController from which to present the dialog.
1617 /// If not specified, the topmost view controller will be automatically determined as best as possible.
1618 @property (nonatomic, weak) UIViewController * _Nullable fromViewController;
1619 /// The mode with which to display the dialog.
1620 /// Defaults to <code>.automatic</code>, which will automatically choose the best available mode.
1621 @property (nonatomic) enum FBSDKShareDialogMode mode;
1622 /// The receiver’s delegate or nil if it doesn’t have a delegate.
1623 @property (nonatomic, weak) id <FBSDKSharingDelegate> _Nullable delegate;
1624 /// The content to be shared.
1625 @property (nonatomic, strong) id <FBSDKSharingContent> _Nullable shareContent;
1626 /// A Boolean value that indicates whether the receiver should fail if it finds an error with the share content.
1627 /// If <code>false</code>, the sharer will still be displayed without the data that was misconfigured.  For example, an
1628 /// invalid <code>placeID</code> specified on the <code>shareContent</code> would produce a data error.
1629 @property (nonatomic) BOOL shouldFailOnDataError;
1630 /// Convenience initializer to initialize a <code>ShareDialog</code> with a view controller, content and delegate.
1631 /// @param viewController A view controller from which to present the dialog, if appropriate.
1632 /// @param content The content to be shared.
1633 /// @param delegate The dialog’s delegate.
1634 - (nonnull instancetype)initWithViewController:(UIViewController * _Nullable)viewController content:(id <FBSDKSharingContent> _Nullable)content delegate:(id <FBSDKSharingDelegate> _Nullable)delegate OBJC_DESIGNATED_INITIALIZER;
1635 /// Convenience method to create a <code>ShareDialog</code> with a view controller, content and delegate.
1636 /// @param viewController A view controller from which to present the dialog, if appropriate.
1637 /// @param content The content to be shared.
1638 /// @param delegate The dialog’s delegate.
1639 + (FBSDKShareDialog * _Nonnull)dialogWithViewController:(UIViewController * _Nullable)viewController withContent:(id <FBSDKSharingContent> _Nullable)content delegate:(id <FBSDKSharingDelegate> _Nullable)delegate SWIFT_WARN_UNUSED_RESULT;
1640 /// Convenience method to show a <code>ShareDialog</code> with a view controller, content and delegate.
1641 /// @param viewController A view controller from which to present the dialog, if appropriate.
1642 /// @param content The content to be shared.
1643 /// @param delegate The dialog’s delegate.
1644 + (FBSDKShareDialog * _Nonnull)showFromViewController:(UIViewController * _Nullable)viewController withContent:(id <FBSDKSharingContent> _Nullable)content delegate:(id <FBSDKSharingDelegate> _Nullable)delegate;
1645 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1646 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1647 @end
1648
1649
1650 @interface FBSDKShareDialog (SWIFT_EXTENSION(FBSDKShareKit))
1651 @end
1652
1653 /// Modes for the FBSDKShareDialog.
1654 /// The automatic mode will progressively check the availability of different modes and open the most
1655 /// appropriate mode for the dialog that is available.
1656 typedef SWIFT_ENUM_NAMED(NSUInteger, FBSDKShareDialogMode, "Mode", open) {
1657 /// Acts with the most appropriate mode that is available.
1658   FBSDKShareDialogModeAutomatic = 0,
1659 /// Displays the dialog in the main native Facebook app.
1660   FBSDKShareDialogModeNative = 1,
1661 /// Displays the dialog in the iOS integrated share sheet.
1662   FBSDKShareDialogModeShareSheet = 2,
1663 /// Displays the dialog in Safari.
1664   FBSDKShareDialogModeBrowser = 3,
1665 /// Displays the dialog in a WKWebView within the app.
1666   FBSDKShareDialogModeWeb = 4,
1667 /// Displays the feed dialog in Safari.
1668   FBSDKShareDialogModeFeedBrowser = 5,
1669 /// Displays the feed dialog in a WKWebView within the app.
1670   FBSDKShareDialogModeFeedWeb = 6,
1671 };
1672
1673 @class FBSDKWebDialog;
1674
1675 @interface FBSDKShareDialog (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKWebDialogDelegate>
1676 - (void)webDialog:(FBSDKWebDialog * _Nonnull)webDialog didCompleteWithResults:(NSDictionary<NSString *, id> * _Nonnull)results;
1677 - (void)webDialog:(FBSDKWebDialog * _Nonnull)webDialog didFailWithError:(NSError * _Nonnull)error;
1678 - (void)webDialogDidCancel:(FBSDKWebDialog * _Nonnull)webDialog;
1679 @end
1680
1681
1682
1683 @interface FBSDKShareDialog (SWIFT_EXTENSION(FBSDKShareKit))
1684 @property (nonatomic, readonly) BOOL canShow;
1685 - (BOOL)show;
1686 - (BOOL)validateWithError:(NSError * _Nullable * _Nullable)error;
1687 @end
1688
1689 /// ShareError
1690 /// Error codes for ShareErrorDomain.
1691 typedef SWIFT_ENUM_NAMED(NSInteger, FBSDKShareError, "ShareError", open) {
1692 /// Reserved
1693   FBSDKShareErrorReserved = 200,
1694 /// The error code for errors from uploading open graph objects.
1695   FBSDKShareErrorOpenGraph = 201,
1696 /// The error code for when a sharing dialog is not available.
1697 /// Use the canShare methods to check for this case before calling show.
1698   FBSDKShareErrorDialogNotAvailable = 202,
1699 /// The error code for unknown errors.
1700   FBSDKShareErrorUnknown = 203,
1701 };
1702
1703
1704 /// A model for status and link content to be shared.
1705 SWIFT_CLASS_NAMED("ShareLinkContent")
1706 @interface FBSDKShareLinkContent : NSObject
1707 /// Some quote text of the link.
1708 /// If specified, the quote text will render with custom styling on top of the link.
1709 @property (nonatomic, copy) NSString * _Nullable quote;
1710 /// URL for the content being shared.
1711 /// This URL will be checked for all link meta tags for linking in platform specific ways.  See documentation
1712 /// for App Links (https://developers.facebook.com/docs/applinks/)
1713 @property (nonatomic, copy) NSURL * _Nullable contentURL;
1714 /// Hashtag for the content being shared.
1715 @property (nonatomic, strong) FBSDKHashtag * _Nullable hashtag;
1716 /// List of IDs for taggable people to tag with this content.
1717 /// See documentation for Taggable Friends
1718 /// (https://developers.facebook.com/docs/graph-api/reference/user/taggable_friends)
1719 @property (nonatomic, copy) NSArray<NSString *> * _Nonnull peopleIDs;
1720 /// The ID for a place to tag with this content.
1721 @property (nonatomic, copy) NSString * _Nullable placeID;
1722 /// A value to be added to the referrer URL when a person follows a link from this shared content on feed.
1723 @property (nonatomic, copy) NSString * _Nullable ref;
1724 /// For shares into Messenger, this pageID will be used to map the app to page and attach attribution to the share.
1725 @property (nonatomic, copy) NSString * _Nullable pageID;
1726 /// A unique identifier for a share involving this content, useful for tracking purposes.
1727 @property (nonatomic, readonly, copy) NSString * _Nullable shareUUID;
1728 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
1729 @end
1730
1731
1732 @interface FBSDKShareLinkContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingContent>
1733 /// Adds content to an existing dictionary as key/value pairs and returns the
1734 /// updated dictionary
1735 /// @param existingParameters An immutable dictionary of existing values
1736 /// @param bridgeOptions The options for bridging
1737 /// @return A new dictionary with the modified contents
1738 - (NSDictionary<NSString *, id> * _Nonnull)addParameters:(NSDictionary<NSString *, id> * _Nonnull)existingParameters bridgeOptions:(FBSDKShareBridgeOptions)bridgeOptions SWIFT_WARN_UNUSED_RESULT;
1739 @end
1740
1741
1742 @interface FBSDKShareLinkContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingValidatable>
1743 /// Asks the receiver to validate that its content or media values are valid.
1744 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
1745 @end
1746
1747
1748 /// A protocol for media content (photo or video) to be shared.
1749 SWIFT_PROTOCOL_NAMED("ShareMedia")
1750 @protocol FBSDKShareMedia
1751 @end
1752
1753
1754 /// A model for media content (photo or video) to be shared.
1755 SWIFT_CLASS_NAMED("ShareMediaContent")
1756 @interface FBSDKShareMediaContent : NSObject
1757 /// Media to be shared: an array of <code>SharePhoto</code> or <code>ShareVideo</code>
1758 @property (nonatomic, copy) NSArray<id <FBSDKShareMedia>> * _Nonnull media;
1759 /// URL for the content being shared.
1760 /// This URL will be checked for all link meta tags for linking in platform specific ways.  See documentation
1761 /// for App Links (https://developers.facebook.com/docs/applinks/)
1762 @property (nonatomic, copy) NSURL * _Nullable contentURL;
1763 /// Hashtag for the content being shared.
1764 @property (nonatomic, strong) FBSDKHashtag * _Nullable hashtag;
1765 /// List of IDs for taggable people to tag with this content.
1766 /// See documentation for Taggable Friends
1767 /// (https://developers.facebook.com/docs/graph-api/reference/user/taggable_friends)
1768 @property (nonatomic, copy) NSArray<NSString *> * _Nonnull peopleIDs;
1769 /// The ID for a place to tag with this content.
1770 @property (nonatomic, copy) NSString * _Nullable placeID;
1771 /// A value to be added to the referrer URL when a person follows a link from this shared content on feed.
1772 @property (nonatomic, copy) NSString * _Nullable ref;
1773 /// For shares into Messenger, this pageID will be used to map the app to page and attach attribution to the share.
1774 @property (nonatomic, copy) NSString * _Nullable pageID;
1775 /// A unique identifier for a share involving this content, useful for tracking purposes.
1776 @property (nonatomic, readonly, copy) NSString * _Nullable shareUUID;
1777 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
1778 @end
1779
1780
1781 @interface FBSDKShareMediaContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingValidatable>
1782 /// Asks the receiver to validate that its content or media values are valid.
1783 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
1784 @end
1785
1786
1787 @interface FBSDKShareMediaContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingContent>
1788 /// Adds content to an existing dictionary as key/value pairs and returns the
1789 /// updated dictionary
1790 /// @param existingParameters An immutable dictionary of existing values
1791 /// @param bridgeOptions The options for bridging
1792 /// @return A new dictionary with the modified contents
1793 - (NSDictionary<NSString *, id> * _Nonnull)addParameters:(NSDictionary<NSString *, id> * _Nonnull)existingParameters bridgeOptions:(FBSDKShareBridgeOptions)bridgeOptions SWIFT_WARN_UNUSED_RESULT;
1794 @end
1795
1796 @class PHAsset;
1797
1798 /// A photo for sharing.
1799 SWIFT_CLASS_NAMED("SharePhoto")
1800 @interface FBSDKSharePhoto : NSObject <FBSDKShareMedia>
1801 /// If the photo is resident in memory, this method supplies the data.
1802 @property (nonatomic, strong) UIImage * _Nullable image;
1803 /// URL that points to a network location or the location of the photo on disk
1804 @property (nonatomic, copy) NSURL * _Nullable imageURL;
1805 /// The representation of the photo in the Photos library.
1806 @property (nonatomic, strong) PHAsset * _Nullable photoAsset;
1807 /// Specifies whether the photo represented by the receiver was generated by the user (<code>true</code>)
1808 /// or by the application (<code>false</code>).
1809 @property (nonatomic) BOOL isUserGenerated;
1810 /// The user-generated caption for the photo. Note that the ‘caption’ must come from
1811 /// the user, as pre-filled content is forbidden by the Platform Policies (2.3).
1812 @property (nonatomic, copy) NSString * _Nullable caption;
1813 /// Convenience method to build a new photo object with an image.
1814 /// \param image If the photo is resident in memory, this method supplies the data 
1815 ///
1816 /// \param isUserGenerated Specifies whether the photo represented by the receiver was generated by the user or by the 
1817 /// application
1818 ///
1819 - (nonnull instancetype)initWithImage:(UIImage * _Nonnull)image isUserGenerated:(BOOL)isUserGenerated;
1820 /// Convenience method to build a new photo object with an imageURL.
1821 /// This method should only be used when adding photo content to open graph stories.
1822 /// For example, if you’re trying to share a photo from the web by itself, download the image and use
1823 /// <code>init(image:isUserGenerated:)</code> instead.
1824 /// \param imageURL The URL to the photo 
1825 ///
1826 /// \param isUserGenerated Specifies whether the photo represented by the receiver was generated by the user or by the 
1827 /// application
1828 ///
1829 - (nonnull instancetype)initWithImageURL:(NSURL * _Nonnull)imageURL isUserGenerated:(BOOL)isUserGenerated;
1830 /// Convenience method to build a new photo object with a PHAsset.
1831 /// \param photoAsset The PHAsset that represents the photo in the Photos library.
1832 ///
1833 /// \param isUserGenerated Specifies whether the photo represented by the receiver was generated by the user or by
1834 /// the application
1835 ///
1836 - (nonnull instancetype)initWithPhotoAsset:(PHAsset * _Nonnull)photoAsset isUserGenerated:(BOOL)isUserGenerated;
1837 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1838 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1839 @end
1840
1841
1842
1843 @interface FBSDKSharePhoto (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingValidatable>
1844 /// Asks the receiver to validate that its content or media values are valid.
1845 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
1846 @end
1847
1848
1849
1850 /// A model for photo content to be shared.
1851 SWIFT_CLASS_NAMED("SharePhotoContent")
1852 @interface FBSDKSharePhotoContent : NSObject
1853 /// Photos to be shared.
1854 @property (nonatomic, copy) NSArray<FBSDKSharePhoto *> * _Nonnull photos;
1855 /// URL for the content being shared.
1856 /// This URL will be checked for all link meta tags for linking in platform specific ways.  See documentation
1857 /// for App Links (https://developers.facebook.com/docs/applinks/)
1858 @property (nonatomic, copy) NSURL * _Nullable contentURL;
1859 /// Hashtag for the content being shared.
1860 @property (nonatomic, strong) FBSDKHashtag * _Nullable hashtag;
1861 /// List of IDs for taggable people to tag with this content.
1862 /// See documentation for Taggable Friends
1863 /// (https://developers.facebook.com/docs/graph-api/reference/user/taggable_friends)
1864 @property (nonatomic, copy) NSArray<NSString *> * _Nonnull peopleIDs;
1865 /// The ID for a place to tag with this content.
1866 @property (nonatomic, copy) NSString * _Nullable placeID;
1867 /// A value to be added to the referrer URL when a person follows a link from this shared content on feed.
1868 @property (nonatomic, copy) NSString * _Nullable ref;
1869 /// For shares into Messenger, this pageID will be used to map the app to page and attach attribution to the share.
1870 @property (nonatomic, copy) NSString * _Nullable pageID;
1871 /// A unique identifier for a share involving this content, useful for tracking purposes.
1872 @property (nonatomic, readonly, copy) NSString * _Nullable shareUUID;
1873 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
1874 @end
1875
1876
1877 @interface FBSDKSharePhotoContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingContent>
1878 /// Adds content to an existing dictionary as key/value pairs and returns the
1879 /// updated dictionary
1880 /// @param existingParameters An immutable dictionary of existing values
1881 /// @param bridgeOptions The options for bridging
1882 /// @return A new dictionary with the modified contents
1883 - (NSDictionary<NSString *, id> * _Nonnull)addParameters:(NSDictionary<NSString *, id> * _Nonnull)existingParameters bridgeOptions:(FBSDKShareBridgeOptions)bridgeOptions SWIFT_WARN_UNUSED_RESULT;
1884 @end
1885
1886
1887 @interface FBSDKSharePhotoContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingValidatable>
1888 /// Validate that this content contains valid values
1889 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
1890 @end
1891
1892
1893 @class NSData;
1894
1895 /// A video for sharing.
1896 SWIFT_CLASS_NAMED("ShareVideo")
1897 @interface FBSDKShareVideo : NSObject <FBSDKShareMedia>
1898 /// The raw video data.
1899 @property (nonatomic, copy) NSData * _Nullable data;
1900 /// The representation of the video in the Photos library.
1901 @property (nonatomic, strong) PHAsset * _Nullable videoAsset;
1902 /// The file URL to the video.
1903 @property (nonatomic, copy) NSURL * _Nullable videoURL;
1904 /// The photo that represents the video.
1905 @property (nonatomic, strong) FBSDKSharePhoto * _Nullable previewPhoto;
1906 /// Convenience method to build a new video object from raw data and an optional preview photo.
1907 /// \param data The Data object that holds the raw video data.
1908 ///
1909 /// \param previewPhoto The photo that represents the video.
1910 ///
1911 - (nonnull instancetype)initWithData:(NSData * _Nonnull)data previewPhoto:(FBSDKSharePhoto * _Nullable)previewPhoto;
1912 /// Convenience method to build a new video object from a PHAsset and an optional preview photo.
1913 /// \param videoAsset The PHAsset that represents the video in the Photos library.
1914 ///
1915 /// \param previewPhoto The photo that represents the video.
1916 ///
1917 - (nonnull instancetype)initWithVideoAsset:(PHAsset * _Nonnull)videoAsset previewPhoto:(FBSDKSharePhoto * _Nullable)previewPhoto;
1918 /// Convenience method to build a new video object from a URL and an optional preview photo.
1919 /// \param videoURL The URL to the video.
1920 ///
1921 /// \param previewPhoto The photo that represents the video.
1922 ///
1923 - (nonnull instancetype)initWithVideoURL:(NSURL * _Nonnull)videoURL previewPhoto:(FBSDKSharePhoto * _Nullable)previewPhoto;
1924 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1925 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1926 @end
1927
1928
1929
1930 @interface FBSDKShareVideo (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingValidatable>
1931 /// Asks the receiver to validate that its content or media values are valid.
1932 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
1933 @end
1934
1935
1936
1937 /// A model for video content to be shared.
1938 SWIFT_CLASS_NAMED("ShareVideoContent")
1939 @interface FBSDKShareVideoContent : NSObject
1940 /// The video to be shared
1941 @property (nonatomic, strong) FBSDKShareVideo * _Nonnull video;
1942 /// URL for the content being shared.
1943 /// This URL will be checked for all link meta tags for linking in platform specific ways.  See documentation
1944 /// for App Links (https://developers.facebook.com/docs/applinks/)
1945 @property (nonatomic, copy) NSURL * _Nullable contentURL;
1946 /// Hashtag for the content being shared.
1947 @property (nonatomic, strong) FBSDKHashtag * _Nullable hashtag;
1948 /// List of IDs for taggable people to tag with this content.
1949 /// See documentation for Taggable Friends
1950 /// (https://developers.facebook.com/docs/graph-api/reference/user/taggable_friends)
1951 @property (nonatomic, copy) NSArray<NSString *> * _Nonnull peopleIDs;
1952 /// The ID for a place to tag with this content.
1953 @property (nonatomic, copy) NSString * _Nullable placeID;
1954 /// A value to be added to the referrer URL when a person follows a link from this shared content on feed.
1955 @property (nonatomic, copy) NSString * _Nullable ref;
1956 /// For shares into Messenger, this pageID will be used to map the app to page and attach attribution to the share.
1957 @property (nonatomic, copy) NSString * _Nullable pageID;
1958 /// A unique identifier for a share involving this content, useful for tracking purposes.
1959 @property (nonatomic, readonly, copy) NSString * _Nullable shareUUID;
1960 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
1961 @end
1962
1963
1964 @interface FBSDKShareVideoContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingContent>
1965 /// Adds content to an existing dictionary as key/value pairs and returns the
1966 /// updated dictionary
1967 /// @param existingParameters An immutable dictionary of existing values
1968 /// @param bridgeOptions The options for bridging
1969 /// @return A new dictionary with the modified contents
1970 - (NSDictionary<NSString *, id> * _Nonnull)addParameters:(NSDictionary<NSString *, id> * _Nonnull)existingParameters bridgeOptions:(FBSDKShareBridgeOptions)bridgeOptions SWIFT_WARN_UNUSED_RESULT;
1971 @end
1972
1973
1974 @interface FBSDKShareVideoContent (SWIFT_EXTENSION(FBSDKShareKit)) <FBSDKSharingValidatable>
1975 - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError * _Nullable * _Nullable)error;
1976 @end
1977
1978
1979
1980
1981
1982
1983 /// A delegate for types conforming to the <code>Sharing</code> protocol.
1984 /// The delegate is notified with the results of the sharer as long as the application has permissions to
1985 /// receive the information.  For example, if the person is not signed into the containing app, the sharer may not be able
1986 /// to distinguish between completion of a share and cancellation.
1987 SWIFT_PROTOCOL_NAMED("SharingDelegate")
1988 @protocol FBSDKSharingDelegate
1989 /// Sent to the delegate when sharing completes without error or cancellation.
1990 /// @param sharer The sharer that completed.
1991 /// @param results The results from the sharer.  This may be nil or empty.
1992 - (void)sharer:(id <FBSDKSharing> _Nonnull)sharer didCompleteWithResults:(NSDictionary<NSString *, id> * _Nonnull)results;
1993 /// Sent to the delegate when the sharer encounters an error.
1994 /// @param sharer The sharer that completed.
1995 /// @param error The error.
1996 - (void)sharer:(id <FBSDKSharing> _Nonnull)sharer didFailWithError:(NSError * _Nonnull)error;
1997 /// Sent to the delegate when the sharer is cancelled.
1998 /// @param sharer The sharer that completed.
1999 - (void)sharerDidCancel:(id <FBSDKSharing> _Nonnull)sharer;
2000 @end
2001
2002
2003
2004
2005 #endif
2006 #if defined(__cplusplus)
2007 #endif
2008 #if __has_attribute(external_source_symbol)
2009 # pragma clang attribute pop
2010 #endif
2011 #pragma clang diagnostic pop
2012 #endif
2013
2014 #else
2015 #error unsupported Swift architecture
2016 #endif