#import #import @protocol TGMediaEditableItem @property (nonatomic, readonly) bool isVideo; @property (nonatomic, readonly) NSString *uniqueIdentifier; @optional @property (nonatomic, readonly) CGSize originalSize; @property (nonatomic, readonly) NSTimeInterval originalDuration; - (SSignal *)thumbnailImageSignal; - (SSignal *)screenImageSignal:(NSTimeInterval)position; - (SSignal *)originalImageSignal:(NSTimeInterval)position; @end @class TGPaintingData; @protocol TGMediaEditAdjustments @property (nonatomic, readonly) CGSize originalSize; @property (nonatomic, readonly) CGRect cropRect; @property (nonatomic, readonly) UIImageOrientation cropOrientation; @property (nonatomic, readonly) CGFloat cropLockedAspectRatio; @property (nonatomic, readonly) bool cropMirrored; @property (nonatomic, readonly) bool sendAsGif; @property (nonatomic, readonly) TGPaintingData *paintingData; - (bool)hasPainting; - (bool)cropAppliedForAvatar:(bool)forAvatar; - (bool)isDefaultValuesForAvatar:(bool)forAvatar; - (bool)isCropEqualWith:(id)adjusments; @end @interface TGMediaEditingContext : NSObject @property (nonatomic, readonly) bool inhibitEditing; + (instancetype)contextForCaptionsOnly; - (SSignal *)imageSignalForItem:(NSObject *)item; - (SSignal *)imageSignalForItem:(NSObject *)item withUpdates:(bool)withUpdates; - (SSignal *)thumbnailImageSignalForItem:(NSObject *)item; - (SSignal *)thumbnailImageSignalForItem:(id)item withUpdates:(bool)withUpdates synchronous:(bool)synchronous; - (SSignal *)fastImageSignalForItem:(NSObject *)item withUpdates:(bool)withUpdates; - (void)setImage:(UIImage *)image thumbnailImage:(UIImage *)thumbnailImage forItem:(id)item synchronous:(bool)synchronous; - (void)setFullSizeImage:(UIImage *)image forItem:(id)item; - (void)setTemporaryRep:(id)rep forItem:(id)item; - (SSignal *)fullSizeImageUrlForItem:(id)item; - (NSString *)captionForItem:(NSObject *)item; - (NSArray *)entitiesForItem:(NSObject *)item; - (SSignal *)captionSignalForItem:(NSObject *)item; - (void)setCaption:(NSString *)caption entities:(NSArray *)entities forItem:(NSObject *)item; - (void)setInitialCaption:(NSString *)caption entities:(NSArray *)entities; - (void)setForcedCaption:(NSString *)caption entities:(NSArray *)entities; - (NSObject *)adjustmentsForItem:(NSObject *)item; - (SSignal *)adjustmentsSignalForItem:(NSObject *)item; - (void)setAdjustments:(NSObject *)adjustments forItem:(NSObject *)item; - (SSignal *)adjustmentsUpdatedSignal; - (NSNumber *)timerForItem:(NSObject *)item; - (SSignal *)timerSignalForItem:(NSObject *)item; - (void)setTimer:(NSNumber *)timer forItem:(NSObject *)item; - (SSignal *)timersUpdatedSignal; - (UIImage *)paintingImageForItem:(NSObject *)item; - (bool)setPaintingData:(NSData *)data image:(UIImage *)image forItem:(NSObject *)item dataUrl:(NSURL **)dataOutUrl imageUrl:(NSURL **)imageOutUrl forVideo:(bool)video; - (void)clearPaintingData; - (SSignal *)facesForItem:(NSObject *)item; - (void)setFaces:(NSArray *)faces forItem:(NSObject *)item; - (SSignal *)cropAdjustmentsUpdatedSignal; - (void)requestOriginalThumbnailImageForItem:(id)item completion:(void (^)(UIImage *))completion; - (void)requestOriginalImageForItem:(id)itemId completion:(void (^)(UIImage *image))completion; - (void)setOriginalImage:(UIImage *)image forItem:(id)item synchronous:(bool)synchronous; @end