@ifunny/ifunny-api-types 0.4.3 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/dist/payloads/activity.js +50 -0
  3. package/dist/payloads/activity.js.map +1 -0
  4. package/dist/payloads/ban.js +17 -17
  5. package/dist/payloads/ban.js.map +1 -1
  6. package/dist/payloads/client.js.map +1 -1
  7. package/dist/payloads/comment.js +15 -0
  8. package/dist/payloads/comment.js.map +1 -0
  9. package/dist/payloads/content.js +138 -0
  10. package/dist/payloads/content.js.map +1 -0
  11. package/dist/payloads/index.js +3 -1
  12. package/dist/payloads/index.js.map +1 -1
  13. package/dist/payloads/post.js +122 -10
  14. package/dist/payloads/post.js.map +1 -1
  15. package/dist/payloads/user.js +34 -34
  16. package/dist/payloads/user.js.map +1 -1
  17. package/dist/rest/content.js +68 -0
  18. package/dist/rest/content.js.map +1 -0
  19. package/dist/rest/explore.js +2 -0
  20. package/dist/rest/explore.js.map +1 -1
  21. package/dist/rest/index.js +1 -0
  22. package/dist/rest/index.js.map +1 -1
  23. package/dist/rest/oauth2.js +6 -6
  24. package/dist/rest/oauth2.js.map +1 -1
  25. package/dist/rest/post.js +63 -0
  26. package/dist/rest/post.js.map +1 -0
  27. package/dist/utils/errors.js +33 -0
  28. package/dist/utils/errors.js.map +1 -1
  29. package/package.json +1 -1
  30. package/types/payloads/activity.d.ts +90 -0
  31. package/types/payloads/activity.d.ts.map +1 -0
  32. package/types/payloads/ban.d.ts +17 -17
  33. package/types/payloads/ban.d.ts.map +1 -1
  34. package/types/payloads/client.d.ts +28 -1
  35. package/types/payloads/client.d.ts.map +1 -1
  36. package/types/payloads/comment.d.ts +79 -0
  37. package/types/payloads/comment.d.ts.map +1 -0
  38. package/types/payloads/content.d.ts +570 -0
  39. package/types/payloads/content.d.ts.map +1 -0
  40. package/types/payloads/index.d.ts +3 -1
  41. package/types/payloads/index.d.ts.map +1 -1
  42. package/types/payloads/post.d.ts +338 -178
  43. package/types/payloads/post.d.ts.map +1 -1
  44. package/types/payloads/user.d.ts +11 -11
  45. package/types/payloads/user.d.ts.map +1 -1
  46. package/types/rest/content.d.ts +63 -0
  47. package/types/rest/content.d.ts.map +1 -0
  48. package/types/rest/explore.d.ts +5 -3
  49. package/types/rest/explore.d.ts.map +1 -1
  50. package/types/rest/index.d.ts +1 -0
  51. package/types/rest/index.d.ts.map +1 -1
  52. package/types/rest/oauth2.d.ts +14 -7
  53. package/types/rest/oauth2.d.ts.map +1 -1
  54. package/types/rest/post.d.ts +58 -0
  55. package/types/rest/post.d.ts.map +1 -0
  56. package/types/utils/errors.d.ts +40 -48
  57. package/types/utils/errors.d.ts.map +1 -1
  58. package/types/utils/util.d.ts +23 -0
  59. package/types/utils/util.d.ts.map +1 -1
@@ -1,200 +1,162 @@
1
1
  import { APIUser, APIUserNums } from "./user";
2
2
  import { HexCode, Size, Timestamp } from "../utils/util";
3
- import { APIBasePayload } from "./base";
4
3
  /**
5
- * JSON data of an iFunny Post
4
+ * Post visibility types
6
5
  */
7
- export interface APIPostBase<Type extends APIPostType = APIPostType> extends APIBasePayload {
8
- /**
9
- * Unique id of the post.\
10
- * Typically 9 characters long
11
- */
12
- id: string;
13
- /**
14
- * The type of the post.
15
- */
16
- type: Type;
17
- /**
18
- * Content url of the post.
19
- */
20
- url: string;
21
- /**
22
- * If the post uses the old watermark or the new one
23
- */
24
- old_watermark: boolean;
25
- /**
26
- * In-app share url.
27
- * @example
28
- * `https://ifunny.co/picture/${post.id}`
29
- * `https://ifunny.co/video/${post.id}`
30
- */
31
- link: string;
32
- /**
33
- * The title of the post
34
- */
35
- title: string;
36
- /**
37
- * Fixed title of the post
38
- * @example
39
- * `Gif memes ${post.id} by ${post.creator.nick}`
40
- * `Picture memes ${post.id} by ${post.creator.nick}: ${post.num.comments} comments`
41
- */
42
- fixed_title: string;
6
+ export declare enum POST_VISIBILITIES {
43
7
  /**
44
- * Array of tags on the post
8
+ * Anyone can see the post
45
9
  */
46
- tags: string[];
10
+ PUBLIC = "public",
47
11
  /**
48
- * The publish state of the post
12
+ * Post is hidden from collective and explore
49
13
  */
50
- state: APIPostState;
14
+ SUBSCRIBERS = "subscribers",
51
15
  /**
52
- * {@link Timestamp} of when the post was created
16
+ * Only the creator can see the post
53
17
  */
54
- date_create: Timestamp;
18
+ CLOSED = "closed"
19
+ }
20
+ export declare type APIContentVisibility = `${POST_VISIBILITIES}`;
21
+ /**
22
+ * Post shot status types
23
+ */
24
+ export declare enum SHOT_STATUSES {
55
25
  /**
56
- * {@link Timestamp} of when the Post was published
26
+ * The post was approved for upload
57
27
  */
58
- publish_at: Timestamp;
28
+ APPROVED = "approved",
59
29
  /**
60
- * Is the post smiled by the Client
30
+ * The post was uploaded but immediately deleted by the auto moderation system
61
31
  */
62
- is_smiled: boolean;
32
+ HARD_SHOT = "hardShot",
63
33
  /**
64
- * Is the post unsmiled by the Client
34
+ * TODO: Find a post with shot status and document difference.
65
35
  */
66
- is_unsmiled: boolean;
36
+ SHOT = "shot"
37
+ }
38
+ /**
39
+ * Possible shot statuses
40
+ */
41
+ export declare type APIContentShotStatus = `${SHOT_STATUSES}`;
42
+ /**
43
+ * All currently known post types
44
+ */
45
+ export declare enum POST_TYPES {
67
46
  /**
68
- * Is the post removed by iFunny
47
+ * Most common video post type\
48
+ * Data key: `video_clip`
69
49
  */
70
- is_abused: boolean;
50
+ VIDEO_CLIP = "video_clip",
71
51
  /**
72
- * Is the post featured by iFunny
52
+ * A video uploaded from a url like YouTube\
53
+ * Data key: `video`
73
54
  */
74
- is_featured: boolean;
55
+ VIDEO = "video",
75
56
  /**
76
- * Is the post republished by the Client
57
+ * A video uploaded from vine\
58
+ * Data key: `vine`
77
59
  */
78
- is_republished: boolean;
60
+ VINE = "vine",
79
61
  /**
80
- * Is the post pinned by the creator
62
+ * Video meme from {@link https://coub.com Coub}\
63
+ * Data key: `coub`
81
64
  */
82
- is_pinned: boolean;
65
+ COUB = "coub",
83
66
  /**
84
- * Background color of the post.
67
+ * Gif uploaded to ifunny\
68
+ * Data key: `gif`
85
69
  */
86
- bg_color: HexCode;
70
+ GIF = "gif",
87
71
  /**
88
- * The {@link APIPostThumbnail thumbnail} of the post
72
+ * Gif with a caption\
73
+ * Data key: `gif`
89
74
  */
90
- thumb: APIPostThumbnail;
75
+ GIF_CAPTION = "gif_caption",
91
76
  /**
92
- * A post's {@link APIPostCopyright copyright} data
77
+ * An image post with a custom caption\
78
+ * Data key: `caption`
93
79
  */
94
- copyright: APIPostCopyright;
80
+ CAPTION = "caption",
95
81
  /**
96
- * The {@link APIPostNums numbers} on the post.
82
+ * Image upload\
83
+ * Data key: `pic`
97
84
  */
98
- num: APIPostNums;
85
+ PIC = "pic",
99
86
  /**
100
- * The author of the post
87
+ * Image uploaded from iFunny's old "Meme" upload system.\
88
+ * This is no longer in iFunny
101
89
  */
102
- creator: APIPostCreator;
90
+ MEME = "mem",
103
91
  /**
104
- * Size of the post
92
+ * An image uploaded from ifunny's comic creator
105
93
  */
106
- size: Size;
94
+ COMICS = "comics",
107
95
  /**
108
- * The post's visibility
96
+ * An interactive post from iFunny
97
+ * @deprecated These posts have been removed from the database and will not be available
109
98
  */
110
- visibility: APIPostVisibility;
99
+ APP = "app",
111
100
  /**
112
- * ? Don't know what this is
101
+ * Unknown post type\
102
+ * TODO: Document what POST_TYPES.OLD is
113
103
  */
114
- shot_status: APIPostShotStatus;
104
+ OLD = "old",
115
105
  /**
116
- * ? Don't know what this does
106
+ * Unknown post type\
107
+ * TODO: Document what POST_TYPES.DEM is
117
108
  */
118
- fast_start: boolean;
109
+ DEM = "dem"
110
+ }
111
+ /**
112
+ * Possible post types
113
+ */
114
+ export declare type APIContentType = `${Exclude<POST_TYPES, POST_TYPES.APP>}`;
115
+ export declare enum POST_STATES {
119
116
  /**
120
- * @example
121
- * `https://ifunny.co/picture/${post.id}`
117
+ * The post is published
122
118
  */
123
- canonical_url: string;
119
+ PUBLISHED = "published",
124
120
  /**
125
- * Can the post be boosted still
121
+ * A post that was scheduled to be published later
126
122
  */
127
- can_be_boosted: boolean;
128
- }
129
- export declare enum POST_VISIBILITIES {
130
- PUBLIC = "public",
131
- subscribers = "subscribers",
132
- closed = "closed"
133
- }
134
- export declare type APIPostVisibility = `${POST_VISIBILITIES}`;
135
- export declare enum SHOT_STATUSES {
136
- APPROVED = "approved",
137
- HARD_SHOT = "hardShot",
138
- SHOT = "shot"
123
+ DELAYED = "delayed"
139
124
  }
140
- export declare type APIPostShotStatus = `${SHOT_STATUSES}`;
141
125
  /**
142
- * All currently known post types
126
+ * Possible post states
143
127
  */
144
- export declare enum POST_TYPES {
145
- CAPTION = "caption",
146
- VIDEO = "video",
147
- VINE = "vine",
148
- COUB = "coub",
149
- PIC = "pic",
150
- OLD = "old",
151
- MEM = "mem",
152
- GIF = "gif",
153
- APP = "app",
154
- DEM = "dem",
155
- GIF_CAPTION = "gif_caption",
156
- COMICS = "comics",
157
- VIDEO_CLIP = "video_clip"
158
- }
159
- /**
160
- * Possible post types
161
- */
162
- export declare type APIPostType = `${POST_TYPES}`;
163
- export declare enum POST_STATES {
164
- PUBLISHED = "published"
165
- }
166
- export declare type APIPostState = `${POST_STATES}`;
128
+ export declare type APIContentState = `${POST_STATES}`;
167
129
  /**
168
130
  * Author of a Post\
169
131
  * Only includes info also in the user object
170
132
  */
171
- export declare type APIPostCreatorBase = Pick<APIUser, "id" | "nick" | "photo" | "is_verified" | "is_banned" | "is_deleted" | "is_in_subscriptions" | "is_in_subscribers" | "is_blocked" | "nick_color" | "original_nick">;
133
+ export declare type APIContentCreatorBase = Pick<APIUser, "id" | "nick" | "photo" | "is_verified" | "is_banned" | "is_deleted" | "is_in_subscriptions" | "is_in_subscribers" | "is_blocked" | "nick_color" | "original_nick">;
172
134
  /**
173
135
  * The creator object for a post
174
136
  */
175
- export interface APIPostCreator extends APIPostCreatorBase {
137
+ export interface APIContentCreator extends APIContentCreatorBase {
176
138
  /**
177
139
  * Only includes subscription and subscriber count
178
140
  */
179
- num: APIPostCreatorNum;
141
+ num: APIContentCreatorNum;
180
142
  /**
181
143
  * Total amount of posts the creator has. For some reason this is not in the nums object for creators
182
144
  */
183
145
  total_posts: number;
184
146
  }
185
147
  /**
186
- * Alias for {@link APIPostCreator}
148
+ * Alias for {@link APIContentCreator}
187
149
  */
188
- export declare type APIPostAuthor = APIPostCreator;
150
+ export declare type APIContentAuthor = APIContentCreator;
189
151
  /**
190
152
  * Num object for Post Creator.\
191
153
  * total_posts is in the creator object for some reason
192
154
  */
193
- export declare type APIPostCreatorNum = Pick<APIUserNums, "subscribers" | "subscriptions">;
155
+ export declare type APIContentCreatorNum = Pick<APIUserNums, "subscribers" | "subscriptions">;
194
156
  /**
195
157
  * Numbers attatched to a post
196
158
  */
197
- export interface APIPostNums {
159
+ export interface APIContentNums {
198
160
  /**
199
161
  * The amount of smiles the post has
200
162
  */
@@ -220,15 +182,14 @@ export interface APIPostNums {
220
182
  */
221
183
  republished: number;
222
184
  /**
223
- * How many shares the post has.\
224
- * ? Increases from the share url if the share url is different from the web_url
185
+ * How many shares the post has
225
186
  */
226
187
  shares: number;
227
188
  }
228
189
  /**
229
190
  * Copyright data for a post.
230
191
  */
231
- export interface APIPostCopyright {
192
+ export interface APIContentCopyright {
232
193
  /**
233
194
  * Note about the copyright
234
195
  */
@@ -242,21 +203,21 @@ export interface APIPostCopyright {
242
203
  * The Thumbnail object returned from the API\
243
204
  * @example
244
205
  * ```ts
245
- * APIPostThumbnail.url = `https://imageproxy.ifunny.co/${params}/images/${content_id}.jpg`
246
- * APIPostThumbnail.webp_url = `https://imageproxy.ifunny.co/${params}/images/${content_id}.webp
206
+ * APIContentThumbnail.url = `https://imageproxy.ifunny.co/${params}/images/${content_id}.jpg`
207
+ * APIContentThumbnail.webp_url = `https://imageproxy.ifunny.co/${params}/images/${content_id}.webp
247
208
  * ```
248
209
  * Content URL params:\
249
210
  * `crop:x-{number}` crops `number` pixels from bottom of the image\
250
211
  * `crop:x+{number}` leaves `number` pixels at the top, and crops the rest\
251
212
  * `crop:square` makes the image a square aspect ratio\
252
213
  * `resize:{number}` changes the size of the image\
253
- * `quality:{number}` changes the image quality\
214
+ * `quality:{number}` changes the image quality
254
215
  *
255
216
  *
256
217
  * ? Bottom iFunny watermarks are 20 pixels tall\
257
- * ? `crop:x-20` crops the watermakr from an image
218
+ * ? `crop:x-20` crops the watermark from an image
258
219
  */
259
- export interface APIPostThumbnail {
220
+ export interface APIContentThumbnail {
260
221
  /**
261
222
  * crop:x-20,crop:square,resize:65x,quality:90x75\
262
223
  * `jpg`
@@ -302,62 +263,72 @@ export interface APIPostThumbnail {
302
263
  */
303
264
  proportional_size: Size;
304
265
  }
305
- export interface APIPicturePost extends APIPostBase<"pic"> {
306
- pic: {
307
- /**
308
- * webp format url of the post
309
- */
310
- webp_url: string;
311
- };
312
- }
313
- /**
314
- * A video post object
315
- */
316
- export interface APIVideoPost extends APIPostBase<"video_clip"> {
317
- video_clip: APIPostVideoData;
318
- }
319
- /**
320
- * A gif post
321
- */
322
- export interface APIGifPost extends APIPostBase<"gif"> {
323
- gif: APIPostGifData;
324
- }
325
- /**
326
- * A gif caption post
327
- */
328
- export interface APIGifCaptionPost extends APIPostBase<"gif_caption"> {
329
- gif: APIPostGifCaptionData;
330
- }
331
- /**
332
- * A caption post
333
- */
334
- export interface APICaptionPost extends APIPostBase<"caption"> {
335
- caption: APIPostCaptionData;
266
+ interface WebP {
267
+ /**
268
+ * webp format url of the post
269
+ */
270
+ webp_url: string;
336
271
  }
337
- export interface APIVinePost extends APIPostBase<"vine"> {
272
+ export declare enum VIDEO_SOURCE_TYPES {
273
+ USER = "user",
274
+ INSTAGRAM = "instagram"
338
275
  }
339
- export interface APIComicsPost extends APIPostBase<"comics"> {
276
+ export declare type APIVideoSourceType = `${VIDEO_SOURCE_TYPES}`;
277
+ export interface APICoubContentData {
278
+ /**
279
+ * WebP thumbnail of the Coub
280
+ */
281
+ screen_url: string;
282
+ bytes: number;
283
+ /**
284
+ * Original Coub source
285
+ */
286
+ traceback_url: string;
287
+ /**
288
+ * Length in seconds
289
+ */
290
+ duration: number;
340
291
  }
341
- export interface APIMemePost extends APIPostBase<"mem"> {
292
+ export interface APIVideoContentData {
293
+ /**
294
+ * Url of original video
295
+ */
296
+ url: string;
297
+ /**
298
+ * Length in seconds
299
+ */
300
+ duration: number;
301
+ /**
302
+ * Length in seconds
303
+ */
304
+ length: number;
342
305
  }
343
- export interface APIPostVideoData {
306
+ export interface APIVideoClipContentData {
307
+ /**
308
+ * JPEG image of the video clip
309
+ */
344
310
  screen_url: string;
345
311
  bytes: number;
346
- source_type: "user";
347
- duration: 0;
312
+ source_type: APIVideoSourceType;
313
+ /**
314
+ * In seconds
315
+ */
316
+ duration: Timestamp;
348
317
  }
349
- export declare enum VIDEO_SOURCE_TYPES {
350
- USER = "user"
318
+ export interface APIVineContentData {
319
+ screen_url: string;
320
+ bytes: number;
351
321
  }
352
- export declare type APIVideoPostSourceType = `${VIDEO_SOURCE_TYPES}`;
353
- export declare type APIPostGifCaptionData = APIPostGifData & APIPostCaptionData;
354
- export interface APIPostCaptionData {
322
+ export interface APICaptionContentData {
355
323
  /**
356
324
  * The caption of the post
357
325
  */
358
- caption: string;
326
+ caption_text: string;
359
327
  }
360
- export interface APIPostGifData {
328
+ export declare type APIComicsContentData = WebP;
329
+ export declare type APIMemeContentData = WebP;
330
+ export declare type APIPicContentData = WebP;
331
+ export interface APIGifContentData {
361
332
  /**
362
333
  * JPEG url of the post
363
334
  */
@@ -375,8 +346,197 @@ export interface APIPostGifData {
375
346
  */
376
347
  mp4_bytes: number;
377
348
  }
349
+ export declare type APIGifCaptionContentData = APIGifContentData & APICaptionContentData;
350
+ export interface UnknownContentData extends JSON {
351
+ }
352
+ /**
353
+ * JSON data of an iFunny Post
354
+ */
355
+ export interface APIContentBase {
356
+ /**
357
+ * Unique id of the post.\
358
+ * Typically 9 characters long
359
+ */
360
+ id: string;
361
+ /**
362
+ * The type of the post.
363
+ */
364
+ type: APIContentType;
365
+ /**
366
+ * Content url of the post.
367
+ */
368
+ url: string;
369
+ /**
370
+ * If the post uses the old watermark or the new one
371
+ */
372
+ old_watermark: boolean;
373
+ /**
374
+ * In-app share url.
375
+ * @example
376
+ * `https://ifunny.co/picture/${post.id}`
377
+ * `https://ifunny.co/video/${post.id}`
378
+ */
379
+ link: string;
380
+ /**
381
+ * The title of the post
382
+ */
383
+ title: string;
384
+ /**
385
+ * Fixed title of the post
386
+ * @example
387
+ * `Gif memes ${post.id} by ${post.creator.nick}`
388
+ * `Picture memes ${post.id} by ${post.creator.nick}: ${post.num.comments} comments`
389
+ */
390
+ fixed_title: string;
391
+ /**
392
+ * Array of tags on the post
393
+ */
394
+ tags: string[];
395
+ /**
396
+ * The publish state of the post
397
+ */
398
+ state: APIContentState;
399
+ /**
400
+ * {@link Timestamp} of when the post was created
401
+ */
402
+ date_create: Timestamp;
403
+ /**
404
+ * {@link Timestamp} of when the Post was published
405
+ */
406
+ publish_at: Timestamp;
407
+ /**
408
+ * Is the post smiled by the Client
409
+ */
410
+ is_smiled: boolean;
411
+ /**
412
+ * Is the post unsmiled by the Client
413
+ */
414
+ is_unsmiled: boolean;
415
+ /**
416
+ * Is the post removed by iFunny
417
+ */
418
+ is_abused: boolean;
419
+ /**
420
+ * Is the post featured by iFunny
421
+ */
422
+ is_featured: boolean;
423
+ /**
424
+ * Is the post republished by the Client
425
+ */
426
+ is_republished: boolean;
427
+ /**
428
+ * Is the post pinned by the creator
429
+ */
430
+ is_pinned: boolean;
431
+ /**
432
+ * Background color of the post.
433
+ */
434
+ bg_color: HexCode;
435
+ /**
436
+ * The {@link APIContentThumbnail thumbnail} of the post
437
+ */
438
+ thumb: APIContentThumbnail;
439
+ /**
440
+ * A post's {@link APIContentCopyright copyright} data
441
+ */
442
+ copyright: APIContentCopyright;
443
+ /**
444
+ * The {@link APIContentNums numbers} on the post.
445
+ */
446
+ num: APIContentNums;
447
+ /**
448
+ * The author of the post
449
+ */
450
+ creator?: APIContentCreator;
451
+ /**
452
+ * Size of the post
453
+ */
454
+ size: Size;
455
+ /**
456
+ * Url of the original source
457
+ */
458
+ traceback_url?: string;
459
+ /**
460
+ * The post's visibility
461
+ */
462
+ visibility: APIContentVisibility;
463
+ /**
464
+ * TODO: shot_status description
465
+ */
466
+ shot_status: APIContentShotStatus;
467
+ /**
468
+ * TODO: fast_start description
469
+ */
470
+ fast_start: boolean;
471
+ /**
472
+ * The risk level of the post
473
+ */
474
+ risk: number;
475
+ /**
476
+ * @example
477
+ * `https://ifunny.co/picture/${post.id}`
478
+ */
479
+ canonical_url: string;
480
+ /**
481
+ * Text generated from iFunny's OCR
482
+ */
483
+ ocr_text?: string;
484
+ /**
485
+ * Can the post be boosted still
486
+ */
487
+ can_be_boosted: boolean;
488
+ /**
489
+ * The source of the post if it's a republish
490
+ */
491
+ source?: APIContentSource;
492
+ }
493
+ export interface APICoubContent extends APIContentBase {
494
+ type: POST_TYPES.COUB;
495
+ coub: APICoubContentData;
496
+ }
497
+ export interface APIVideoClipContent extends APIContentBase {
498
+ type: POST_TYPES.VIDEO_CLIP;
499
+ video_clip: APIVideoClipContentData;
500
+ }
501
+ export interface APIVideoContent extends APIContentBase {
502
+ type: POST_TYPES.VIDEO;
503
+ video: APIVideoContentData;
504
+ }
505
+ export interface APIVineContent extends APIContentBase {
506
+ type: POST_TYPES.VINE;
507
+ vine: APIVineContentData;
508
+ }
509
+ export interface APICaptionContent extends APIContentBase {
510
+ type: POST_TYPES.CAPTION;
511
+ caption: APICaptionContentData;
512
+ }
513
+ export interface APIComicsContent extends APIContentBase {
514
+ type: POST_TYPES.COMICS;
515
+ comics: APIComicsContentData;
516
+ }
517
+ export interface APIMemeContent extends APIContentBase {
518
+ type: POST_TYPES.MEME;
519
+ meme: APIMemeContentData;
520
+ }
521
+ export interface APIPicContent extends APIContentBase {
522
+ type: POST_TYPES.PIC;
523
+ pic: APIPicContentData;
524
+ }
525
+ export interface APIGifContent extends APIContentBase {
526
+ type: POST_TYPES.GIF;
527
+ gif: APIGifContentData;
528
+ }
529
+ export interface APIGifCaptionContent extends APIContentBase {
530
+ type: POST_TYPES.GIF_CAPTION;
531
+ gif: APIGifCaptionContentData;
532
+ }
378
533
  /**
379
- * All possible Post Objects
534
+ * The original source of the content
380
535
  */
381
- export declare type APIPost = APIPicturePost | APIVideoPost | APIGifPost | APIGifCaptionPost | APICaptionPost | APIVinePost | APIComicsPost | APIMemePost;
536
+ export declare type APIContentSource = Partial<APIContent> & Pick<APIContent, "id" | "date_create">;
537
+ export declare type APIContent = APIContentVideo | APIContentPic | APIContentGif;
538
+ export declare type APIContentVideo = APICoubContent | APIVideoClipContent | APIVideoContent | APIVineContent;
539
+ export declare type APIContentPic = APICaptionContent | APIPicContent | APIComicsContent | APIMemeContent;
540
+ export declare type APIContentGif = APIGifContent | APIGifCaptionContent;
541
+ export {};
382
542
  //# sourceMappingURL=post.d.ts.map