#import @protocol TGMediaSelectableItem @property (nonatomic, readonly) NSString *uniqueIdentifier; @end @interface TGMediaSelectionContext : NSObject @property (nonatomic, copy) SSignal *(^updatedItemsSignal)(NSArray *items); - (void)setItemSourceUpdatedSignal:(SSignal *)signal; - (void)setItem:(id)item selected:(bool)selected; - (void)setItem:(id)item selected:(bool)selected animated:(bool)animated sender:(id)sender; - (bool)toggleItemSelection:(id)item; - (bool)toggleItemSelection:(id)item animated:(bool)animated sender:(id)sender; - (void)clear; - (bool)isItemSelected:(id)item; - (SSignal *)itemSelectedSignal:(id)item; - (SSignal *)itemInformativeSelectedSignal:(id)item; - (SSignal *)selectionChangedSignal; - (void)enumerateSelectedItems:(void (^)(id))enumerationBlock; - (NSOrderedSet *)selectedItemsIdentifiers; - (NSArray *)selectedItems; - (NSUInteger)count; + (SSignal *)combinedSelectionChangedSignalForContexts:(NSArray *)contexts; @end @interface TGMediaSelectionChange : NSObject @property (nonatomic, readonly) id item; @property (nonatomic, readonly) bool selected; @property (nonatomic, readonly) bool animated; @property (nonatomic, readonly, strong) id sender; @end