text: ///
  /// Copyright (c) 2016 Dropbox, Inc. All rights reserved.
  ///
  /// Auto-generated by Stone, do not modify.
  ///
  
  #import <Foundation/Foundation.h>
  
  #import "DBSerializableProtocol.h"
  
  @class DBSHARINGLinkAudience;
  @class DBSHARINGLinkExpiry;
  @class DBSHARINGLinkPassword;
  @class DBSHARINGLinkSettings;
  
  #pragma mark - API Object
  
  ///
  /// The `LinkSettings` struct.
  ///
  /// Settings that apply to a link.
  ///
  /// This class implements the `DBSerializable` protocol (serialize and
  /// deserialize instance methods), which is required for all Obj-C SDK API route
  /// objects.
  ///
  @interface DBSHARINGLinkSettings : NSObject <DBSerializable, NSCopying>
  
  #pragma mark - Instance fields
  
  /// The type of audience on the link for this file.
  @property (nonatomic, readonly) DBSHARINGLinkAudience * _Nullable audience;
  
  /// An expiry timestamp to set on a link.
  @property (nonatomic, readonly) DBSHARINGLinkExpiry * _Nullable expiry;
  
  /// The password for the link.
  @property (nonatomic, readonly) DBSHARINGLinkPassword * _Nullable password;
  
  #pragma mark - Constructors
  
  ///
  /// Full constructor for the struct (exposes all instance variables).
  ///
  /// @param audience The type of audience on the link for this file.
  /// @param expiry An expiry timestamp to set on a link.
  /// @param password The password for the link.
  ///
  /// @return An initialized instance.
  ///
  - (nonnull instancetype)initWithAudience:(DBSHARINGLinkAudience * _Nullable)audience
                                    expiry:(DBSHARINGLinkExpiry * _Nullable)expiry
                                  password:(DBSHARINGLinkPassword * _Nullable)password;
  
  ///
  /// Convenience constructor (exposes only non-nullable instance variables with
  /// no default value).
  ///
  ///
  /// @return An initialized instance.
  ///
  - (nonnull instancetype)initDefault;
  
  - (nonnull instancetype)init NS_UNAVAILABLE;
  
  @end
  
  #pragma mark - Serializer Object
  
  ///
  /// The serialization class for the `LinkSettings` struct.
  ///
  @interface DBSHARINGLinkSettingsSerializer : NSObject
  
  ///
  /// Serializes `DBSHARINGLinkSettings` instances.
  ///
  /// @param instance An instance of the `DBSHARINGLinkSettings` API object.
  ///
  /// @return A json-compatible dictionary representation of the
  /// `DBSHARINGLinkSettings` API object.
  ///
  + (NSDictionary * _Nonnull)serialize:(DBSHARINGLinkSettings * _Nonnull)instance;
  
  ///
  /// Deserializes `DBSHARINGLinkSettings` instances.
  ///
  /// @param dict A json-compatible dictionary representation of the
  /// `DBSHARINGLinkSettings` API object.
  ///
  /// @return An instantiation of the `DBSHARINGLinkSettings` object.
  ///
  + (DBSHARINGLinkSettings * _Nonnull)deserialize:(NSDictionary * _Nonnull)dict;
  
  @end
  