@devvit/public-api 0.11.12-next-2025-04-03-7973a5cdc.0 → 0.11.12-next-2025-04-03-a7339e9db.0

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.
package/public-api.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /// <reference types="node" />
2
2
 
3
3
  import { BanInfo_BanInfoAction as BanInfo_BanInfoAction_2 } from '../../../reddit/common.js';
4
+ import { BanInfo_BanInfoAction as BanInfo_BanInfoAction_3 } from '../../reddit/common.js';
4
5
  import { BlockActionType as BlockActionType_2 } from '../../../../../index.js';
5
6
  import { BlockAnimationDirection as BlockAnimationDirection_2 } from '../../../../../index.js';
6
7
  import { BlockAnimationLoopMode as BlockAnimationLoopMode_2 } from '../../../../../index.js';
@@ -39,7 +40,8 @@ import _m0 from 'protobufjs/minimal.js';
39
40
  import { Observable } from 'rxjs';
40
41
  import { OrderResultStatus as OrderResultStatus_2 } from '../../../../../payments.js';
41
42
  import { RealtimeSubscriptionStatus as RealtimeSubscriptionStatus_2 } from '../../../../../index.js';
42
- import { RunAs as RunAs_2 } from '../common/common_msg.js';
43
+ import { RunAs as RunAs_3 } from '../common/common_msg.js';
44
+ import { RunAs as RunAs_4 } from '../redditapi/common/common_msg.js';
43
45
  import { SetCustomPostPreviewRequest_BodyType as SetCustomPostPreviewRequest_BodyType_2 } from './linksandcomments_msg.js';
44
46
  import { SubredditRating as SubredditRating_2 } from '../../../reddit/v2alpha/subredditv2.js';
45
47
  import { SubredditType as SubredditType_3 } from '../../../reddit/v2alpha/subredditv2.js';
@@ -3427,7 +3429,7 @@ declare interface CommentRequest {
3427
3429
  */
3428
3430
  thingId: string;
3429
3431
  /** Indicates who the Comment should be created as */
3430
- runAs: RunAs;
3432
+ runAs: RunAs_2;
3431
3433
  }
3432
3434
 
3433
3435
  declare const CommentRequest: {
@@ -3444,8 +3446,10 @@ export declare type CommentSort = 'confidence' | 'top' | 'new' | 'controversial'
3444
3446
 
3445
3447
  export declare type CommentSubmissionOptions = {
3446
3448
  text: string;
3449
+ runAs?: RunAs;
3447
3450
  } | {
3448
3451
  richtext: object | RichTextBuilder;
3452
+ runAs?: RunAs;
3449
3453
  };
3450
3454
 
3451
3455
  /** The event name for when a comment is submitted */
@@ -3539,6 +3543,7 @@ export declare type CommonSubmitPostOptions = {
3539
3543
  spoiler?: boolean;
3540
3544
  flairId?: string;
3541
3545
  flairText?: string;
3546
+ runAs?: RunAs;
3542
3547
  };
3543
3548
 
3544
3549
  export declare class CommunityListWidget extends Widget {
@@ -3704,6 +3709,8 @@ export declare type Configuration = {
3704
3709
  modLog?: PluginSettings | boolean;
3705
3710
  /** Allows your app to use the Realtime Plugin */
3706
3711
  realtime?: PluginSettings | boolean;
3712
+ /** Allows your app to call Reddit APIs on behalf of the User */
3713
+ userActions?: PluginSettings | boolean;
3707
3714
  };
3708
3715
 
3709
3716
  /** The current app context of the event or render */
@@ -4842,7 +4849,7 @@ declare interface CustomPost {
4842
4849
  declare class CustomPostClientImpl implements CustomPost {
4843
4850
  private readonly rpc;
4844
4851
  private readonly service;
4845
- constructor(rpc: Rpc_15, opts?: {
4852
+ constructor(rpc: Rpc_16, opts?: {
4846
4853
  service?: string;
4847
4854
  });
4848
4855
  RenderPost(request: RenderPostRequest, metadata?: Metadata): Promise<RenderPostResponse>;
@@ -13715,13 +13722,13 @@ declare const LinksAndCommentsDefinition: {
13715
13722
  richtextJson?: string | undefined;
13716
13723
  text?: string;
13717
13724
  thingId?: string;
13718
- runAs?: RunAs_2;
13725
+ runAs?: RunAs_3;
13719
13726
  } | undefined): CommentRequest;
13720
13727
  fromPartial(object: {
13721
13728
  richtextJson?: string | undefined;
13722
13729
  text?: string;
13723
13730
  thingId?: string;
13724
- runAs?: RunAs_2;
13731
+ runAs?: RunAs_3;
13725
13732
  }): CommentRequest;
13726
13733
  };
13727
13734
  readonly requestStream: false;
@@ -14107,13 +14114,13 @@ declare const LinksAndCommentsDefinition: {
14107
14114
  richtextJson?: string | undefined;
14108
14115
  text?: string;
14109
14116
  thingId?: string;
14110
- runAs?: RunAs_2;
14117
+ runAs?: RunAs_3;
14111
14118
  } | undefined): CommentRequest;
14112
14119
  fromPartial(object: {
14113
14120
  richtextJson?: string | undefined;
14114
14121
  text?: string;
14115
14122
  thingId?: string;
14116
- runAs?: RunAs_2;
14123
+ runAs?: RunAs_3;
14117
14124
  }): CommentRequest;
14118
14125
  };
14119
14126
  readonly requestStream: false;
@@ -16158,7 +16165,7 @@ declare const LinksAndCommentsDefinition: {
16158
16165
  crosspostFullname?: string | undefined;
16159
16166
  richtextFallback?: string | undefined;
16160
16167
  imageUrls?: any[] | undefined;
16161
- runAs?: RunAs_2;
16168
+ runAs?: RunAs_3;
16162
16169
  userGeneratedContent?: {
16163
16170
  text?: string;
16164
16171
  imageUrls?: string[];
@@ -16181,7 +16188,7 @@ declare const LinksAndCommentsDefinition: {
16181
16188
  crosspostFullname?: string | undefined;
16182
16189
  richtextFallback?: string | undefined;
16183
16190
  imageUrls?: any[] | undefined;
16184
- runAs?: RunAs_2;
16191
+ runAs?: RunAs_3;
16185
16192
  userGeneratedContent?: {
16186
16193
  text?: string;
16187
16194
  imageUrls?: string[];
@@ -16253,7 +16260,7 @@ declare const LinksAndCommentsDefinition: {
16253
16260
  crosspostFullname?: string | undefined;
16254
16261
  richtextFallback?: string | undefined;
16255
16262
  imageUrls?: any[] | undefined;
16256
- runAs?: RunAs_2;
16263
+ runAs?: RunAs_3;
16257
16264
  userGeneratedContent?: {
16258
16265
  text?: string;
16259
16266
  imageUrls?: string[];
@@ -16276,7 +16283,7 @@ declare const LinksAndCommentsDefinition: {
16276
16283
  crosspostFullname?: string | undefined;
16277
16284
  richtextFallback?: string | undefined;
16278
16285
  imageUrls?: any[] | undefined;
16279
- runAs?: RunAs_2;
16286
+ runAs?: RunAs_3;
16280
16287
  userGeneratedContent?: {
16281
16288
  text?: string;
16282
16289
  imageUrls?: string[];
@@ -36325,7 +36332,7 @@ declare namespace protos {
36325
36332
  MediaServiceDefinition,
36326
36333
  ModlogDefinition,
36327
36334
  RedditObject,
36328
- RunAs,
36335
+ RunAs_2 as RunAs,
36329
36336
  FlairDefinition,
36330
36337
  QueryResponse,
36331
36338
  GraphQL,
@@ -36367,6 +36374,7 @@ declare namespace protos {
36367
36374
  Settings,
36368
36375
  SettingsDefinition,
36369
36376
  TimerDefinition,
36377
+ UserActionsDefinition,
36370
36378
  CustomPostDefinition,
36371
36379
  RenderPostResponse,
36372
36380
  LinkedBundle,
@@ -36528,7 +36536,7 @@ declare namespace protos {
36528
36536
  WrappedUserObject,
36529
36537
  ApiClientConfig,
36530
36538
  ApiClientConfig_BodyType,
36531
- UserGeneratedContent,
36539
+ UserGeneratedContent_2 as UserGeneratedContent,
36532
36540
  ClearFlairTemplatesRequest,
36533
36541
  DeleteFlairRequest,
36534
36542
  DeleteFlairTemplateRequest,
@@ -36841,6 +36849,9 @@ declare namespace protos {
36841
36849
  RedisAPI,
36842
36850
  RedisAPIServiceName,
36843
36851
  RedisAPIClientImpl,
36852
+ UserActions,
36853
+ UserActionsServiceName,
36854
+ UserActionsClientImpl,
36844
36855
  Comment_2 as Comment,
36845
36856
  Dimensions,
36846
36857
  RenderPostRequest,
@@ -37323,6 +37334,31 @@ export declare class RedditAPIClient {
37323
37334
  * .build()
37324
37335
  * });
37325
37336
  * ```
37337
+ *
37338
+ * By default, `submitPost()` creates a Post on behalf of the App account, but it may be called on behalf of the User making the request by setting the option `runAs: RunAs.USER`.
37339
+ * When using `runAs: RunAs.USER` to create an experience Post, you must specify the `userGeneratedContent` option. For example:
37340
+ * @example
37341
+ * ```ts
37342
+ * import { RunAs } from '@devvit/public-api';
37343
+ *
37344
+ * const post = await reddit.submitPost({
37345
+ * title: 'My Devvit Post',
37346
+ * runAs: RunAs.USER,
37347
+ * userGeneratedContent: {
37348
+ * text: "hello there",
37349
+ * imageUrls: ["https://styles.redditmedia.com/t5_5wa5ww/styles/communityIcon_wyopomb2xb0a1.png", "https://styles.redditmedia.com/t5_49fkib/styles/bannerBackgroundImage_5a4axis7cku61.png"]
37350
+ },
37351
+ * subredditName: await reddit.getCurrentSubredditName(),
37352
+ * textFallback: {
37353
+ * text: 'This is a Devvit post!',
37354
+ * },
37355
+ * preview: (
37356
+ * <vstack height="100%" width="100%" alignment="middle center">
37357
+ * <text size="large">Loading...</text>
37358
+ * </vstack>
37359
+ * ),
37360
+ * });
37361
+ * ```
37326
37362
  */
37327
37363
  submitPost(options: SubmitPostOptions): Promise<Post>;
37328
37364
  /**
@@ -37450,7 +37486,18 @@ export declare class RedditAPIClient {
37450
37486
  * @param options.id - The ID of the post or comment to comment on. e.g. 't3_1qjpg' for post and 't1_1qgif' for comment
37451
37487
  * @param options.text - The text of the comment
37452
37488
  * @param options.richtext - The rich text of the comment
37489
+ * @param options.runAs - The user type to submit the comment as, eg 'APP' or 'USER'
37453
37490
  * @returns A Promise that resolves to a Comment object.
37491
+ * @example
37492
+ * ```ts
37493
+ * import { RunAs } from '@devvit/public-api';
37494
+ *
37495
+ * const comment = await reddit.submitComment({
37496
+ * id: 't1_1qgif',
37497
+ * text: 'Hello world!',
37498
+ * runAs: RunAs.APP,
37499
+ * })
37500
+ * ```
37454
37501
  */
37455
37502
  submitComment(options: CommentSubmissionOptions & {
37456
37503
  id: string;
@@ -41483,6 +41530,10 @@ declare interface Rpc_15 {
41483
41530
  request(service: string, method: string, data: Uint8Array, metadata?: Metadata): Promise<Uint8Array>;
41484
41531
  }
41485
41532
 
41533
+ declare interface Rpc_16 {
41534
+ request(service: string, method: string, data: Uint8Array, metadata?: Metadata): Promise<Uint8Array>;
41535
+ }
41536
+
41486
41537
  declare interface Rpc_2 {
41487
41538
  request(service: string, method: string, data: Uint8Array, metadata?: Metadata): Promise<Uint8Array>;
41488
41539
  }
@@ -41521,16 +41572,23 @@ declare interface Rpc_9 {
41521
41572
  request(service: string, method: string, data: Uint8Array, metadata?: Metadata): Promise<Uint8Array>;
41522
41573
  }
41523
41574
 
41575
+ export declare const RunAs: {
41576
+ readonly APP: 0;
41577
+ readonly USER: 1;
41578
+ };
41579
+
41580
+ export declare type RunAs = (typeof RunAs)[keyof typeof RunAs];
41581
+
41524
41582
  /** Indicates who the request should be made on behalf of. Currently, only 'APP' or 'USER' types are supported. */
41525
- declare enum RunAs {
41583
+ declare enum RunAs_2 {
41526
41584
  APP = 0,
41527
41585
  USER = 1,
41528
41586
  UNRECOGNIZED = -1
41529
41587
  }
41530
41588
 
41531
- declare function runAsFromJSON(object: any): RunAs;
41589
+ declare function runAsFromJSON(object: any): RunAs_2;
41532
41590
 
41533
- declare function runAsToJSON(object: RunAs): number;
41591
+ declare function runAsToJSON(object: RunAs_2): number;
41534
41592
 
41535
41593
  /**
41536
41594
  * Schedule a new job to run at a specific time or on a cron schedule
@@ -42966,6 +43024,7 @@ declare const StylesheetRequest: {
42966
43024
 
42967
43025
  export declare type SubmitCustomPostOptions = CommonSubmitPostOptions & SubmitCustomPostTextFallbackOptions & {
42968
43026
  preview: JSX.Element;
43027
+ userGeneratedContent?: UserGeneratedContent;
42969
43028
  };
42970
43029
 
42971
43030
  export declare type SubmitCustomPostTextFallbackOptions = {
@@ -43056,9 +43115,9 @@ declare interface SubmitRequest {
43056
43115
  /** If `kind` is "image" this must be set to the images URLs */
43057
43116
  imageUrls?: Array<any> | undefined;
43058
43117
  /** Indicates who the Post should be submited as */
43059
- runAs: RunAs;
43118
+ runAs: RunAs_2;
43060
43119
  /** The UserGeneratedContent attached to the Post */
43061
- userGeneratedContent?: UserGeneratedContent | undefined;
43120
+ userGeneratedContent?: UserGeneratedContent_2 | undefined;
43062
43121
  }
43063
43122
 
43064
43123
  declare const SubmitRequest: {
@@ -51197,6 +51256,574 @@ declare const UserAction: {
51197
51256
  fromPartial(object: DeepPartial_73<UserAction>): UserAction;
51198
51257
  };
51199
51258
 
51259
+ /** Service for performing actions on behalf of the User. */
51260
+ declare interface UserActions {
51261
+ /** Submit a new Comment on behalf of the User */
51262
+ Comment(request: CommentRequest, metadata?: Metadata): Promise<JsonWrappedComment>;
51263
+ /** Create a new Post on behalf of the User */
51264
+ Submit(request: SubmitRequest, metadata?: Metadata): Promise<SubmitResponse>;
51265
+ /** Create a new custom Post on behalf of the User */
51266
+ SubmitCustomPost(request: SubmitRequest, metadata?: Metadata): Promise<SubmitResponse>;
51267
+ }
51268
+
51269
+ declare class UserActionsClientImpl implements UserActions {
51270
+ private readonly rpc;
51271
+ private readonly service;
51272
+ constructor(rpc: Rpc_15, opts?: {
51273
+ service?: string;
51274
+ });
51275
+ Comment(request: CommentRequest, metadata?: Metadata): Promise<JsonWrappedComment>;
51276
+ Submit(request: SubmitRequest, metadata?: Metadata): Promise<SubmitResponse>;
51277
+ SubmitCustomPost(request: SubmitRequest, metadata?: Metadata): Promise<SubmitResponse>;
51278
+ }
51279
+
51280
+ /** Service for performing actions on behalf of the User. */
51281
+ declare type UserActionsDefinition = typeof UserActionsDefinition;
51282
+
51283
+ declare const UserActionsDefinition: {
51284
+ readonly name: "UserActions";
51285
+ readonly fullName: "devvit.plugin.useractions.UserActions";
51286
+ readonly methods: {
51287
+ /** Submit a new Comment on behalf of the User */
51288
+ readonly comment: {
51289
+ readonly name: "Comment";
51290
+ readonly requestType: {
51291
+ $type: "devvit.plugin.redditapi.linksandcomments.CommentRequest";
51292
+ encode(message: CommentRequest, writer?: _m0.Writer): _m0.Writer;
51293
+ decode(input: _m0.Reader | Uint8Array, length?: number | undefined): CommentRequest;
51294
+ fromJSON(object: any): CommentRequest;
51295
+ toJSON(message: CommentRequest): unknown;
51296
+ create(base?: {
51297
+ richtextJson?: string | undefined;
51298
+ text?: string;
51299
+ thingId?: string;
51300
+ runAs?: RunAs_4;
51301
+ } | undefined): CommentRequest;
51302
+ fromPartial(object: {
51303
+ richtextJson?: string | undefined;
51304
+ text?: string;
51305
+ thingId?: string;
51306
+ runAs?: RunAs_4;
51307
+ }): CommentRequest;
51308
+ };
51309
+ readonly requestStream: false;
51310
+ readonly responseType: {
51311
+ $type: "devvit.plugin.redditapi.linksandcomments.JsonWrappedComment";
51312
+ encode(message: JsonWrappedComment, writer?: _m0.Writer): _m0.Writer;
51313
+ decode(input: _m0.Reader | Uint8Array, length?: number | undefined): JsonWrappedComment;
51314
+ fromJSON(object: any): JsonWrappedComment;
51315
+ toJSON(message: JsonWrappedComment): unknown;
51316
+ create(base?: {
51317
+ json?: {
51318
+ errors?: string[];
51319
+ data?: {
51320
+ things?: {
51321
+ kind?: string;
51322
+ data?: {
51323
+ allAwardings?: {
51324
+ awardSubType?: string | undefined;
51325
+ awardType?: string | undefined;
51326
+ awardingsRequiredToGrantBenefits?: number | undefined;
51327
+ coinPrice?: number | undefined;
51328
+ coinReward?: number | undefined;
51329
+ count?: number | undefined;
51330
+ daysOfDripExtension?: number | undefined;
51331
+ daysOfPremium?: number | undefined;
51332
+ description?: string | undefined;
51333
+ endDate?: string | undefined;
51334
+ giverCoinReward?: number | undefined;
51335
+ iconFormat?: string | undefined;
51336
+ iconHeight?: number | undefined;
51337
+ iconUrl?: string | undefined;
51338
+ iconWidth?: number | undefined;
51339
+ id?: string | undefined;
51340
+ isEnabled?: boolean | undefined;
51341
+ isNew?: boolean | undefined;
51342
+ name?: string | undefined;
51343
+ pennyDonate?: number | undefined;
51344
+ pennyPrice?: number | undefined;
51345
+ resizedIcons?: {
51346
+ height?: number | undefined;
51347
+ url?: string | undefined;
51348
+ width?: number | undefined;
51349
+ }[];
51350
+ resizedStaticIcons?: {
51351
+ height?: number | undefined;
51352
+ url?: string | undefined;
51353
+ width?: number | undefined;
51354
+ }[];
51355
+ startDate?: string | undefined;
51356
+ staticIconHeight?: number | undefined;
51357
+ staticIconUrl?: string | undefined;
51358
+ staticIconWidth?: number | undefined;
51359
+ stickyDurationSeconds?: number | undefined;
51360
+ subredditCoinReward?: number | undefined;
51361
+ subredditId?: string | undefined;
51362
+ tiersByRequiredAwardings?: string | undefined;
51363
+ }[];
51364
+ approved?: boolean | undefined;
51365
+ approvedAtUtc?: number | undefined;
51366
+ approvedBy?: string | undefined;
51367
+ archived?: boolean | undefined;
51368
+ associatedAward?: string | undefined;
51369
+ author?: string | undefined;
51370
+ authorFlairBackgroundColor?: string | undefined;
51371
+ authorFlairCssClass?: string | undefined;
51372
+ authorFlairRichtext?: {
51373
+ e?: string | undefined;
51374
+ t?: string | undefined;
51375
+ }[];
51376
+ authorFlairTemplateId?: string | undefined;
51377
+ authorFlairText?: string | undefined;
51378
+ authorFlairTextColor?: string | undefined;
51379
+ authorFlairType?: string | undefined;
51380
+ authorFullname?: string | undefined;
51381
+ authorIsBlocked?: boolean | undefined;
51382
+ authorPatreonFlair?: boolean | undefined;
51383
+ authorPremium?: boolean | undefined;
51384
+ awarders?: string[];
51385
+ bannedAtUtc?: number | undefined;
51386
+ bannedBy?: string | undefined;
51387
+ body?: string | undefined;
51388
+ bodyHtml?: string | undefined;
51389
+ canGild?: boolean | undefined;
51390
+ canModPost?: boolean | undefined;
51391
+ collapsed?: boolean | undefined;
51392
+ collapsedBecauseCrowdControl?: boolean | undefined;
51393
+ collapsedReason?: string | undefined;
51394
+ collapsedReasonCode?: string | undefined;
51395
+ commentType?: string | undefined;
51396
+ controversiality?: number | undefined;
51397
+ created?: number | undefined;
51398
+ createdUtc?: number | undefined;
51399
+ depth?: number | undefined;
51400
+ distinguished?: string | undefined;
51401
+ downs?: number | undefined;
51402
+ edited?: boolean | undefined;
51403
+ gilded?: number | undefined;
51404
+ gildings?: {
51405
+ gid1?: number | undefined;
51406
+ gid2?: number | undefined;
51407
+ gid3?: number | undefined;
51408
+ } | undefined;
51409
+ id?: string | undefined;
51410
+ ignoreReports?: boolean | undefined;
51411
+ isSubmitter?: boolean | undefined;
51412
+ likes?: boolean | undefined;
51413
+ linkId?: string | undefined;
51414
+ locked?: boolean | undefined;
51415
+ modNote?: string | undefined;
51416
+ modReasonBy?: string | undefined;
51417
+ modReasonTitle?: string | undefined;
51418
+ modReports?: any[][];
51419
+ name?: string | undefined;
51420
+ noFollow?: boolean | undefined;
51421
+ numReports?: number | undefined;
51422
+ parentId?: string | undefined;
51423
+ permalink?: string | undefined;
51424
+ removalReason?: string | undefined;
51425
+ removed?: boolean | undefined;
51426
+ replies?: string | undefined;
51427
+ reportReasons?: string[];
51428
+ rteMode?: string | undefined;
51429
+ saved?: boolean | undefined;
51430
+ score?: number | undefined;
51431
+ scoreHidden?: boolean | undefined;
51432
+ sendReplies?: boolean | undefined;
51433
+ spam?: boolean | undefined;
51434
+ stickied?: boolean | undefined;
51435
+ subreddit?: string | undefined;
51436
+ subredditId?: string | undefined;
51437
+ subredditNamePrefixed?: string | undefined;
51438
+ subredditType?: string | undefined;
51439
+ topAwardedType?: string | undefined;
51440
+ totalAwardsReceived?: number | undefined;
51441
+ treatmentTags?: string[];
51442
+ unrepliableReason?: string | undefined;
51443
+ ups?: number | undefined;
51444
+ userReports?: any[][];
51445
+ count?: number | undefined;
51446
+ children?: string[];
51447
+ banInfo?: {
51448
+ auto?: boolean | undefined;
51449
+ bannedAt?: number | undefined;
51450
+ banner?: string | undefined;
51451
+ moderatorBanned?: boolean | undefined;
51452
+ note?: string | undefined;
51453
+ unbanner?: string | undefined;
51454
+ unbannedAt?: number | undefined;
51455
+ resetUsed?: boolean | undefined;
51456
+ reasonId?: string | undefined;
51457
+ reasonTitle?: string | undefined;
51458
+ reasonMessage?: string | undefined;
51459
+ reasonBy?: string | undefined;
51460
+ modNote?: string | undefined;
51461
+ banAllTriggered?: boolean | undefined;
51462
+ subredditMessage?: string | undefined;
51463
+ removeAction?: BanInfo_BanInfoAction_3;
51464
+ } | undefined;
51465
+ markedSpam?: boolean | undefined;
51466
+ verdict?: string | undefined;
51467
+ } | undefined;
51468
+ }[];
51469
+ } | undefined;
51470
+ } | undefined;
51471
+ } | undefined): JsonWrappedComment;
51472
+ fromPartial(object: {
51473
+ json?: {
51474
+ errors?: string[];
51475
+ data?: {
51476
+ things?: {
51477
+ kind?: string;
51478
+ data?: {
51479
+ allAwardings?: {
51480
+ awardSubType?: string | undefined;
51481
+ awardType?: string | undefined;
51482
+ awardingsRequiredToGrantBenefits?: number | undefined;
51483
+ coinPrice?: number | undefined;
51484
+ coinReward?: number | undefined;
51485
+ count?: number | undefined;
51486
+ daysOfDripExtension?: number | undefined;
51487
+ daysOfPremium?: number | undefined;
51488
+ description?: string | undefined;
51489
+ endDate?: string | undefined;
51490
+ giverCoinReward?: number | undefined;
51491
+ iconFormat?: string | undefined;
51492
+ iconHeight?: number | undefined;
51493
+ iconUrl?: string | undefined;
51494
+ iconWidth?: number | undefined;
51495
+ id?: string | undefined;
51496
+ isEnabled?: boolean | undefined;
51497
+ isNew?: boolean | undefined;
51498
+ name?: string | undefined;
51499
+ pennyDonate?: number | undefined;
51500
+ pennyPrice?: number | undefined;
51501
+ resizedIcons?: {
51502
+ height?: number | undefined;
51503
+ url?: string | undefined;
51504
+ width?: number | undefined;
51505
+ }[];
51506
+ resizedStaticIcons?: {
51507
+ height?: number | undefined;
51508
+ url?: string | undefined;
51509
+ width?: number | undefined;
51510
+ }[];
51511
+ startDate?: string | undefined;
51512
+ staticIconHeight?: number | undefined;
51513
+ staticIconUrl?: string | undefined;
51514
+ staticIconWidth?: number | undefined;
51515
+ stickyDurationSeconds?: number | undefined;
51516
+ subredditCoinReward?: number | undefined;
51517
+ subredditId?: string | undefined;
51518
+ tiersByRequiredAwardings?: string | undefined;
51519
+ }[];
51520
+ approved?: boolean | undefined;
51521
+ approvedAtUtc?: number | undefined;
51522
+ approvedBy?: string | undefined;
51523
+ archived?: boolean | undefined;
51524
+ associatedAward?: string | undefined;
51525
+ author?: string | undefined;
51526
+ authorFlairBackgroundColor?: string | undefined;
51527
+ authorFlairCssClass?: string | undefined;
51528
+ authorFlairRichtext?: {
51529
+ e?: string | undefined;
51530
+ t?: string | undefined;
51531
+ }[];
51532
+ authorFlairTemplateId?: string | undefined;
51533
+ authorFlairText?: string | undefined;
51534
+ authorFlairTextColor?: string | undefined;
51535
+ authorFlairType?: string | undefined;
51536
+ authorFullname?: string | undefined;
51537
+ authorIsBlocked?: boolean | undefined;
51538
+ authorPatreonFlair?: boolean | undefined;
51539
+ authorPremium?: boolean | undefined;
51540
+ awarders?: string[];
51541
+ bannedAtUtc?: number | undefined;
51542
+ bannedBy?: string | undefined;
51543
+ body?: string | undefined;
51544
+ bodyHtml?: string | undefined;
51545
+ canGild?: boolean | undefined;
51546
+ canModPost?: boolean | undefined;
51547
+ collapsed?: boolean | undefined;
51548
+ collapsedBecauseCrowdControl?: boolean | undefined;
51549
+ collapsedReason?: string | undefined;
51550
+ collapsedReasonCode?: string | undefined;
51551
+ commentType?: string | undefined;
51552
+ controversiality?: number | undefined;
51553
+ created?: number | undefined;
51554
+ createdUtc?: number | undefined;
51555
+ depth?: number | undefined;
51556
+ distinguished?: string | undefined;
51557
+ downs?: number | undefined;
51558
+ edited?: boolean | undefined;
51559
+ gilded?: number | undefined;
51560
+ gildings?: {
51561
+ gid1?: number | undefined;
51562
+ gid2?: number | undefined;
51563
+ gid3?: number | undefined;
51564
+ } | undefined;
51565
+ id?: string | undefined;
51566
+ ignoreReports?: boolean | undefined;
51567
+ isSubmitter?: boolean | undefined;
51568
+ likes?: boolean | undefined;
51569
+ linkId?: string | undefined;
51570
+ locked?: boolean | undefined;
51571
+ modNote?: string | undefined;
51572
+ modReasonBy?: string | undefined;
51573
+ modReasonTitle?: string | undefined;
51574
+ modReports?: any[][];
51575
+ name?: string | undefined;
51576
+ noFollow?: boolean | undefined;
51577
+ numReports?: number | undefined;
51578
+ parentId?: string | undefined;
51579
+ permalink?: string | undefined;
51580
+ removalReason?: string | undefined;
51581
+ removed?: boolean | undefined;
51582
+ replies?: string | undefined;
51583
+ reportReasons?: string[];
51584
+ rteMode?: string | undefined;
51585
+ saved?: boolean | undefined;
51586
+ score?: number | undefined;
51587
+ scoreHidden?: boolean | undefined;
51588
+ sendReplies?: boolean | undefined;
51589
+ spam?: boolean | undefined;
51590
+ stickied?: boolean | undefined;
51591
+ subreddit?: string | undefined;
51592
+ subredditId?: string | undefined;
51593
+ subredditNamePrefixed?: string | undefined;
51594
+ subredditType?: string | undefined;
51595
+ topAwardedType?: string | undefined;
51596
+ totalAwardsReceived?: number | undefined;
51597
+ treatmentTags?: string[];
51598
+ unrepliableReason?: string | undefined;
51599
+ ups?: number | undefined;
51600
+ userReports?: any[][];
51601
+ count?: number | undefined;
51602
+ children?: string[];
51603
+ banInfo?: {
51604
+ auto?: boolean | undefined;
51605
+ bannedAt?: number | undefined;
51606
+ banner?: string | undefined;
51607
+ moderatorBanned?: boolean | undefined;
51608
+ note?: string | undefined;
51609
+ unbanner?: string | undefined;
51610
+ unbannedAt?: number | undefined;
51611
+ resetUsed?: boolean | undefined;
51612
+ reasonId?: string | undefined;
51613
+ reasonTitle?: string | undefined;
51614
+ reasonMessage?: string | undefined;
51615
+ reasonBy?: string | undefined;
51616
+ modNote?: string | undefined;
51617
+ banAllTriggered?: boolean | undefined;
51618
+ subredditMessage?: string | undefined;
51619
+ removeAction?: BanInfo_BanInfoAction_3;
51620
+ } | undefined;
51621
+ markedSpam?: boolean | undefined;
51622
+ verdict?: string | undefined;
51623
+ } | undefined;
51624
+ }[];
51625
+ } | undefined;
51626
+ } | undefined;
51627
+ }): JsonWrappedComment;
51628
+ };
51629
+ readonly responseStream: false;
51630
+ readonly options: {};
51631
+ };
51632
+ /** Create a new Post on behalf of the User */
51633
+ readonly submit: {
51634
+ readonly name: "Submit";
51635
+ readonly requestType: {
51636
+ $type: "devvit.plugin.redditapi.linksandcomments.SubmitRequest";
51637
+ encode(message: SubmitRequest, writer?: _m0.Writer): _m0.Writer;
51638
+ decode(input: _m0.Reader | Uint8Array, length?: number | undefined): SubmitRequest;
51639
+ fromJSON(object: any): SubmitRequest;
51640
+ toJSON(message: SubmitRequest): unknown;
51641
+ create(base?: {
51642
+ collectionId?: string | undefined;
51643
+ flairId?: string | undefined;
51644
+ flairText?: string | undefined;
51645
+ kind?: string;
51646
+ nsfw?: boolean | undefined;
51647
+ richtextJson?: string | undefined;
51648
+ sendreplies?: boolean | undefined;
51649
+ spoiler?: boolean | undefined;
51650
+ sr?: string;
51651
+ text?: string | undefined;
51652
+ title?: string;
51653
+ url?: string | undefined;
51654
+ videoPosterUrl?: string | undefined;
51655
+ crosspostFullname?: string | undefined;
51656
+ richtextFallback?: string | undefined;
51657
+ imageUrls?: any[] | undefined;
51658
+ runAs?: RunAs_4;
51659
+ userGeneratedContent?: {
51660
+ text?: string;
51661
+ imageUrls?: string[];
51662
+ } | undefined;
51663
+ } | undefined): SubmitRequest;
51664
+ fromPartial(object: {
51665
+ collectionId?: string | undefined;
51666
+ flairId?: string | undefined;
51667
+ flairText?: string | undefined;
51668
+ kind?: string;
51669
+ nsfw?: boolean | undefined;
51670
+ richtextJson?: string | undefined;
51671
+ sendreplies?: boolean | undefined;
51672
+ spoiler?: boolean | undefined;
51673
+ sr?: string;
51674
+ text?: string | undefined;
51675
+ title?: string;
51676
+ url?: string | undefined;
51677
+ videoPosterUrl?: string | undefined;
51678
+ crosspostFullname?: string | undefined;
51679
+ richtextFallback?: string | undefined;
51680
+ imageUrls?: any[] | undefined;
51681
+ runAs?: RunAs_4;
51682
+ userGeneratedContent?: {
51683
+ text?: string;
51684
+ imageUrls?: string[];
51685
+ } | undefined;
51686
+ }): SubmitRequest;
51687
+ };
51688
+ readonly requestStream: false;
51689
+ readonly responseType: {
51690
+ $type: "devvit.plugin.redditapi.linksandcomments.SubmitResponse";
51691
+ encode(message: SubmitResponse, writer?: _m0.Writer): _m0.Writer;
51692
+ decode(input: _m0.Reader | Uint8Array, length?: number | undefined): SubmitResponse;
51693
+ fromJSON(object: any): SubmitResponse;
51694
+ toJSON(message: SubmitResponse): unknown;
51695
+ create(base?: {
51696
+ json?: {
51697
+ errors?: {
51698
+ typeUrl?: string;
51699
+ value?: Uint8Array;
51700
+ }[];
51701
+ data?: {
51702
+ url?: string | undefined;
51703
+ draftsCount?: number | undefined;
51704
+ id?: string | undefined;
51705
+ name?: string | undefined;
51706
+ } | undefined;
51707
+ } | undefined;
51708
+ } | undefined): SubmitResponse;
51709
+ fromPartial(object: {
51710
+ json?: {
51711
+ errors?: {
51712
+ typeUrl?: string;
51713
+ value?: Uint8Array;
51714
+ }[];
51715
+ data?: {
51716
+ url?: string | undefined;
51717
+ draftsCount?: number | undefined;
51718
+ id?: string | undefined;
51719
+ name?: string | undefined;
51720
+ } | undefined;
51721
+ } | undefined;
51722
+ }): SubmitResponse;
51723
+ };
51724
+ readonly responseStream: false;
51725
+ readonly options: {};
51726
+ };
51727
+ /** Create a new custom Post on behalf of the User */
51728
+ readonly submitCustomPost: {
51729
+ readonly name: "SubmitCustomPost";
51730
+ readonly requestType: {
51731
+ $type: "devvit.plugin.redditapi.linksandcomments.SubmitRequest";
51732
+ encode(message: SubmitRequest, writer?: _m0.Writer): _m0.Writer;
51733
+ decode(input: _m0.Reader | Uint8Array, length?: number | undefined): SubmitRequest;
51734
+ fromJSON(object: any): SubmitRequest;
51735
+ toJSON(message: SubmitRequest): unknown;
51736
+ create(base?: {
51737
+ collectionId?: string | undefined;
51738
+ flairId?: string | undefined;
51739
+ flairText?: string | undefined;
51740
+ kind?: string;
51741
+ nsfw?: boolean | undefined;
51742
+ richtextJson?: string | undefined;
51743
+ sendreplies?: boolean | undefined;
51744
+ spoiler?: boolean | undefined;
51745
+ sr?: string;
51746
+ text?: string | undefined;
51747
+ title?: string;
51748
+ url?: string | undefined;
51749
+ videoPosterUrl?: string | undefined;
51750
+ crosspostFullname?: string | undefined;
51751
+ richtextFallback?: string | undefined;
51752
+ imageUrls?: any[] | undefined;
51753
+ runAs?: RunAs_4;
51754
+ userGeneratedContent?: {
51755
+ text?: string;
51756
+ imageUrls?: string[];
51757
+ } | undefined;
51758
+ } | undefined): SubmitRequest;
51759
+ fromPartial(object: {
51760
+ collectionId?: string | undefined;
51761
+ flairId?: string | undefined;
51762
+ flairText?: string | undefined;
51763
+ kind?: string;
51764
+ nsfw?: boolean | undefined;
51765
+ richtextJson?: string | undefined;
51766
+ sendreplies?: boolean | undefined;
51767
+ spoiler?: boolean | undefined;
51768
+ sr?: string;
51769
+ text?: string | undefined;
51770
+ title?: string;
51771
+ url?: string | undefined;
51772
+ videoPosterUrl?: string | undefined;
51773
+ crosspostFullname?: string | undefined;
51774
+ richtextFallback?: string | undefined;
51775
+ imageUrls?: any[] | undefined;
51776
+ runAs?: RunAs_4;
51777
+ userGeneratedContent?: {
51778
+ text?: string;
51779
+ imageUrls?: string[];
51780
+ } | undefined;
51781
+ }): SubmitRequest;
51782
+ };
51783
+ readonly requestStream: false;
51784
+ readonly responseType: {
51785
+ $type: "devvit.plugin.redditapi.linksandcomments.SubmitResponse";
51786
+ encode(message: SubmitResponse, writer?: _m0.Writer): _m0.Writer;
51787
+ decode(input: _m0.Reader | Uint8Array, length?: number | undefined): SubmitResponse;
51788
+ fromJSON(object: any): SubmitResponse;
51789
+ toJSON(message: SubmitResponse): unknown;
51790
+ create(base?: {
51791
+ json?: {
51792
+ errors?: {
51793
+ typeUrl?: string;
51794
+ value?: Uint8Array;
51795
+ }[];
51796
+ data?: {
51797
+ url?: string | undefined;
51798
+ draftsCount?: number | undefined;
51799
+ id?: string | undefined;
51800
+ name?: string | undefined;
51801
+ } | undefined;
51802
+ } | undefined;
51803
+ } | undefined): SubmitResponse;
51804
+ fromPartial(object: {
51805
+ json?: {
51806
+ errors?: {
51807
+ typeUrl?: string;
51808
+ value?: Uint8Array;
51809
+ }[];
51810
+ data?: {
51811
+ url?: string | undefined;
51812
+ draftsCount?: number | undefined;
51813
+ id?: string | undefined;
51814
+ name?: string | undefined;
51815
+ } | undefined;
51816
+ } | undefined;
51817
+ }): SubmitResponse;
51818
+ };
51819
+ readonly responseStream: false;
51820
+ readonly options: {};
51821
+ };
51822
+ };
51823
+ };
51824
+
51825
+ declare const UserActionsServiceName = "devvit.plugin.useractions.UserActions";
51826
+
51200
51827
  /** Enables an actor to be configurable after installation */
51201
51828
  declare type UserConfigurableDefinition = typeof UserConfigurableDefinition;
51202
51829
 
@@ -51447,22 +52074,27 @@ declare const UserFlairV2: {
51447
52074
  fromPartial(object: DeepPartial_19<UserFlairV2>): UserFlairV2;
51448
52075
  };
51449
52076
 
52077
+ declare type UserGeneratedContent = {
52078
+ text: string;
52079
+ imageUrls: string[];
52080
+ };
52081
+
51450
52082
  /** Represents data on the user's content submission */
51451
- declare interface UserGeneratedContent {
52083
+ declare interface UserGeneratedContent_2 {
51452
52084
  /** The text body of the content */
51453
52085
  text: string;
51454
52086
  /** The imageUrls attached to the content, if any */
51455
52087
  imageUrls: string[];
51456
52088
  }
51457
52089
 
51458
- declare const UserGeneratedContent: {
52090
+ declare const UserGeneratedContent_2: {
51459
52091
  $type: "devvit.plugin.redditapi.common.UserGeneratedContent";
51460
- encode(message: UserGeneratedContent, writer?: _m0.Writer): _m0.Writer;
51461
- decode(input: _m0.Reader | Uint8Array, length?: number): UserGeneratedContent;
51462
- fromJSON(object: any): UserGeneratedContent;
51463
- toJSON(message: UserGeneratedContent): unknown;
51464
- create(base?: DeepPartial_9<UserGeneratedContent>): UserGeneratedContent;
51465
- fromPartial(object: DeepPartial_9<UserGeneratedContent>): UserGeneratedContent;
52092
+ encode(message: UserGeneratedContent_2, writer?: _m0.Writer): _m0.Writer;
52093
+ decode(input: _m0.Reader | Uint8Array, length?: number): UserGeneratedContent_2;
52094
+ fromJSON(object: any): UserGeneratedContent_2;
52095
+ toJSON(message: UserGeneratedContent_2): unknown;
52096
+ create(base?: DeepPartial_9<UserGeneratedContent_2>): UserGeneratedContent_2;
52097
+ fromPartial(object: DeepPartial_9<UserGeneratedContent_2>): UserGeneratedContent_2;
51466
52098
  };
51467
52099
 
51468
52100
  declare type UserLink = {