// This file was automatically generated by protocompiler
// DO NOT EDIT!
// Compiled from OTBottleContents.proto

#import <Foundation/Foundation.h>
#import <ProtocolBuffer/PBCodable.h>

@class OTPrivateKey;
@class OTPrivateKey;

#ifdef __cplusplus
#define OTBOTTLECONTENTS_FUNCTION extern "C" __attribute__((visibility("hidden")))
#else
#define OTBOTTLECONTENTS_FUNCTION extern __attribute__((visibility("hidden")))
#endif

__attribute__((visibility("hidden")))
@interface OTBottleContents : PBCodable <NSCopying>
{
    OTPrivateKey *_peerEncryptionPrivKey;
    OTPrivateKey *_peerSigningPrivKey;
    NSData *_reserved1;
    NSData *_reserved2;
}


@property (nonatomic, readonly) BOOL hasReserved1;
/** tags 1 and 2 were briefly used during development for the raw private key data, with nothing to specify the key type. */
@property (nonatomic, retain) NSData *reserved1;

@property (nonatomic, readonly) BOOL hasReserved2;
@property (nonatomic, retain) NSData *reserved2;

@property (nonatomic, readonly) BOOL hasPeerSigningPrivKey;
@property (nonatomic, retain) OTPrivateKey *peerSigningPrivKey;

@property (nonatomic, readonly) BOOL hasPeerEncryptionPrivKey;
@property (nonatomic, retain) OTPrivateKey *peerEncryptionPrivKey;

// Performs a shallow copy into other
- (void)copyTo:(OTBottleContents *)other;

// Performs a deep merge from other into self
// If set in other, singular values in self are replaced in self
// Singular composite values are recursively merged
// Repeated values from other are appended to repeated values in self
- (void)mergeFrom:(OTBottleContents *)other;

OTBOTTLECONTENTS_FUNCTION BOOL OTBottleContentsReadFrom(__unsafe_unretained OTBottleContents *self, __unsafe_unretained PBDataReader *reader);

@end

