+export type ActivityPlaylistSegmentHashesObject = {
+ type: 'Link'
+ name: 'sha256'
+ mediaType: 'application/json'
+ href: string
+}
+
+export type ActivityVideoFileMetadataUrlObject = {
+ type: 'Link'
+ rel: [ 'metadata', any ]
+ mediaType: 'application/json'
+ height: number
+ href: string
+ fps: number
+}
+
+export type ActivityTrackerUrlObject = {
+ type: 'Link'
+ rel: [ 'tracker', 'websocket' | 'http' ]
+ name: string
+ href: string
+}
+
+export type ActivityPlaylistInfohashesObject = {
+ type: 'Infohash'
+ name: string
+}
+
+export type ActivityPlaylistUrlObject = {
+ type: 'Link'
+ mediaType: 'application/x-mpegURL'
+ href: string
+ tag?: ActivityTagObject[]
+}
+
+export type ActivityBitTorrentUrlObject = {
+ type: 'Link'
+ mediaType: 'application/x-bittorrent' | 'application/x-bittorrent;x-scheme-handler/magnet'
+ href: string
+ height: number
+}
+
+export type ActivityMagnetUrlObject = {
+ type: 'Link'
+ mediaType: 'application/x-bittorrent;x-scheme-handler/magnet'
+ href: string
+ height: number
+}
+
+export type ActivityHtmlUrlObject = {
+ type: 'Link'
+ mediaType: 'text/html'
+ href: string
+}
+
+export interface ActivityHashTagObject {
+ type: 'Hashtag'
+ href?: string
+ name: string
+}
+
+export interface ActivityMentionObject {
+ type: 'Mention'
+ href?: string
+ name: string
+}
+
+export interface ActivityFlagReasonObject {
+ type: 'Hashtag'
+ name: AbusePredefinedReasonsString
+}
+
+export type ActivityTagObject =
+ ActivityPlaylistSegmentHashesObject
+ | ActivityPlaylistInfohashesObject
+ | ActivityVideoUrlObject
+ | ActivityHashTagObject
+ | ActivityMentionObject
+ | ActivityBitTorrentUrlObject
+ | ActivityMagnetUrlObject
+ | ActivityVideoFileMetadataUrlObject
+