lpw
2023-06-03 e0ec4235cc7b8d05ec1aaa414ec2d2cac798d74e
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 #else
1009 #error unsupported Swift architecture
1010 #endif