/** * #linksandcomments_msg.ts * * Code generated by ts-proto. DO NOT EDIT. * @packageDocumentation */ import type { Any } from "../../../../google/protobuf/any.js"; import type { CustomPostStyles, EntrypointHeight } from "../../../../reddit/devvit/post/v1/post.js"; import type { Comment } from "../../../reddit/comment.js"; import type { DevvitPostData } from "../../../ui/effects/web_view/v1alpha/context.js"; import type { HighlightedPostLabel, PollOption, RunAs, UserGeneratedContent } from "../common/common_msg.js"; /** Request Types */ export type CommentRequest = { /** * Rich-text body of the comment. Serialized RTJSON string. * Note: If `richtext_json` is provided, `text` is ignored. * @example '{"document":[{"e":"par","c":[{"e":"text","t":"Hello, world!","f":[[2, 0, 13]]}]}]}' */ richtextJson?: string | undefined; /** * Markdown body of the comment * @example '_Hello, world!_' */ text: string; /** * Post or Comment thing ID * @example "t3_abc123" */ thingId: string; /** Indicates who the Comment should be created as */ runAs: RunAs; }; export type FollowPostRequest = { /** `true` to follow; `false` to unfollow */ follow: boolean; /** * Post thing ID * @example "t3_abc123" */ fullname: string; }; export type BasicIdRequest = { /** * Thing ID * @example "t1_abc123" */ id: string; }; export type InfoRequest = { /** * List of zero or more Subreddit names to fetch * @example ["AskReddit", "jokes"] */ subreddits: string[]; /** * List of zero or more thing IDs to fetch * Note: Must be a Comment (t1), Post (t3), or Subreddit (t5) ID * @example ["t1_abc123", "t3_abc123", "t5_abc123"] */ thingIds: string[]; /** * Any Link Posts that refer to this URL * Note: Providing `url` overrides `subreddits` and `thing_ids` * @example "https://www.reddit.com/" */ url?: string | undefined; }; export type MoreChildrenRequest = { /** * List of Comment thing IDs without their "t1_" prefixes * @example ["foo123", "bar456", "baz789"] */ children: string[]; /** Maximum comment depth */ depth?: number | undefined; /** Only return the comments explicitly listed in `children`, otherwise return as many as available */ limitChildren?: boolean | undefined; /** * Post thing ID * @example "t3_abc123" */ linkId: string; /** Optional, one of: "confidence", "top", "new", "controversial", "old", "random", "qa", "live" */ sort?: string | undefined; /** Optional, id of the associated MoreChildren object */ id?: string | undefined; }; export type ReportRequest = { /** Additional information attached to the report */ additionalInfo?: string | undefined; /** Additional information attached to the report */ customText?: string | undefined; /** Modmail conversation ID to attach to the report for context */ modmailConvId?: string | undefined; /** * Free-form reason explaining this report * Note: If reporting Subreddit content the subreddit must have * "allow free-form reports by users" enabled * @see {@link Subreddits.SubredditAboutRules} */ otherReason?: string | undefined; /** One of: "rule", "site_reason_selected", "other" */ reason: string; /** The Subreddit rule this thing is violating */ ruleReason?: string | undefined; /** The Reddit rule this thing is violating */ siteReason?: string | undefined; /** * Subreddit name; set if reporting a Post or Comment * @example "AskReddit" */ srName?: string | undefined; /** * The thing ID being reported. Must be a Post (t3), Comment (t1), or Private Message (t4) * @example "t3_abc123" */ thingId: string; /** * List of comma-separated usernames to associate with this report * @example "user1,user2,user3" */ usernames?: string | undefined; }; export type ReportAwardRequest = { /** * Award ID from a Post or Comment * @example "award_813b473a-4d74-4933-ba79-a7f1b8b285ef" */ awardId: string; /** Reason for this report */ reason?: string | undefined; }; export type SaveRequest = { /** * Post or Comment thing ID * @example "t1_abc123" */ id: string; }; export type SendRepliesRequest = { /** * Post or Comment thing ID * @example "t1_abc123" */ id: string; /** Boolean to enable reply notifications */ state: boolean; }; export type SetContestModeRequest = { /** * Post thing ID * @example "t3_abc123" */ id: string; /** Boolean to enable Contest Mode */ state: boolean; }; export type SetSubredditStickyRequest = { /** * Post thing ID * @example "t3_abc123" */ id: string; /** * Which sticky "slot" this Post should take * If the slot is empty or `num` is not set the bottom-most slot will be used * Valid range for subreddits: 1 - 2 * Valid range for user profiles: 1 - 4 */ num?: number | undefined; /** Boolean to set the Post as sticky/pinned */ state: boolean; /** * If the Post is owned by the current user set to `true` to pin * it to their profile instead of the subreddit it was posted in */ toProfile?: boolean | undefined; }; export type SetSuggestedSortRequest = { /** * Post thing ID * @example "t3_abc123" */ id: string; /** * One of: "confidence", "top", "new", "controversial", "old", "random", "qa", "live", "" * Note: If left blank the suggested sort order is cleared */ sort: string; }; export type SubmitRequest = { /** * UUID of the collection to add this Post to * @example "813b473a-4d74-4933-ba79-a7f1b8b285ef" */ collectionId?: string | undefined; /** * Flair template ID to use for this Post * @example "813b473a-4d74-4933-ba79-a7f1b8b285ef" */ flairId?: string | undefined; /** * Custom text to use in the selected flair template if the template * has `text_editable` enabled */ flairText?: string | undefined; /** * What kind of Post is being created * One of: "link", "self", "image", "video", "videogif", "crosspost" */ kind: string; /** Boolean to set the Not-Safe-For-Work tag */ nsfw?: boolean | undefined; /** * Rich-text body of the Post. Serialized RTJSON string. * Note: Only used if `kind` is set to "self" * Note: `text` and `richtext_json` cannot both be set * @example '{"document":[{"e":"par","c":[{"e":"text","t":"Hello, world!","f":[[2, 0, 13]]}]}]}' */ richtextJson?: string | undefined; /** Boolean to enable notifications when a comment is added */ sendreplies?: boolean | undefined; /** Boolean to set the Spoiler tag */ spoiler?: boolean | undefined; /** * Subreddit name * @example "AskReddit" */ sr: string; /** * Markdown body of the Post * Note: Only used if `kind` is set to "self" * Note: `text` and `richtext_json` cannot both be set * @example "_Hello, world!_" */ text?: string | undefined; /** Post title */ title: string; /** * The URL this Post refers to if this is a Link Post * Note: If `kind` is "video", "videogif", or "image" this must be set to * the media URL created when the media was uploaded * Note: If `kind` is "self" this is ignored */ url?: string | undefined; /** If `kind` is "video" or "videogif" this must be set to the thumbnail URL */ videoPosterUrl?: string | undefined; /** If `kind` is "crosspost" this must be set to the ID of the post being crossposted */ crosspostFullname?: string | undefined; /** Fallback option of a developer platform experience as rich-text */ richtextFallback?: string | undefined; /** If `kind` is "image" this must be set to the images URLs */ imageUrls?: Array | undefined; /** Indicates who the Post should be submitted as */ runAs: RunAs; /** The UserGeneratedContent attached to the Post */ userGeneratedContent?: UserGeneratedContent | undefined; /** * DevvitPostData contains all post data set on the custom post, including internal data and developer-provided data. * Example: { "devvit": { "splash": { "tagLine": "my tagline" } }, "developerData": { "riddle": "hello world" } } */ postData?: DevvitPostData | undefined; /** * Custom styles for the post, such as background colors and the post size. Only present on custom posts. * Example: { "background_color": "#FF0000FF", "height": "TALL" } */ customPostStyles?: CustomPostStyles | undefined; }; export type VoteRequest = { /** * One of: -1, 0, 1 * Where: * 1 = Upvote * 0 = Cleared * -1 = Downvote */ dir: number; /** * Post or Comment thing ID * @example "t1_abc123" */ id: string; }; export type EditCustomPostRequest = { /** * Post or Comment thing ID * @example "t3_abc123" */ thingId: string; /** Fallback option of a developer custom experience as rich-text */ richtextFallback?: string | undefined; /** * DevvitPostData contains all post data set on the custom post, including internal data and developer-provided data. * Example: { "devvit": { "splash": { "tagLine": "my tagline" } }, "developerData": { "riddle": "hello world" } } */ postData?: DevvitPostData | undefined; }; export type SetCustomPostPreviewRequest = { /** * Post or Comment thing ID * @example "t3_abc123" */ thingId: string; bodyType: SetCustomPostPreviewRequest_BodyType; /** * For body_type=BLOCKS, this is a base64-encoded Block proto. * See: devvit.ui.block_kit.v1beta.Block */ blocksRenderContent?: string | undefined; }; export declare enum SetCustomPostPreviewRequest_BodyType { /** UNKNOWN - Default value. Should not be used for requests. */ UNKNOWN = 0, /** BLOCKS - Body is a Blocks rendering, and should be present in `blocks_render_content`. */ BLOCKS = 1, UNRECOGNIZED = -1 } export type GetIsPostHighlightedRequest = { /** * Post thing ID. * @example "t3_abc123" */ postId: string; }; export type AddPostToHighlightsRequest = { /** * Post thing ID. * @example "t3_abc123" */ postId: string; /** * Expiration time as a Unix timestamp in seconds. * If left empty, the post will remain in the highlights until explicitly removed. */ expiresAt?: number | undefined; /** * Label to display for the highlighted post. * If left empty, the post will show no label in the community highlights. */ label?: HighlightedPostLabel | undefined; }; export type RemovePostFromHighlightsRequest = { /** * Post thing ID. * @example "t3_abc123" */ postId: string; }; export type GetIsPostHighlightedResponse = { /** Whether the post is highlighted. */ isHighlighted: boolean; }; export type AddPostToHighlightsResponse = {}; export type RemovePostFromHighlightsResponse = {}; export type JsonWrappedComment = { json?: JsonWrappedComment_Json | undefined; }; export type JsonWrappedComment_WrappedComment = { kind: string; data?: Comment | undefined; }; export type JsonWrappedComment_JsonData = { things: JsonWrappedComment_WrappedComment[]; }; export type JsonWrappedComment_Json = { errors: string[]; data?: JsonWrappedComment_JsonData | undefined; }; export type SubmitResponse = { json?: SubmitResponse_JsonType | undefined; }; export type SubmitResponse_JsonType = { errors: Any[]; data?: SubmitResponse_JsonType_JsonData | undefined; }; export type SubmitResponse_JsonType_JsonData = { url?: string | undefined; draftsCount?: number | undefined; id?: string | undefined; name?: string | undefined; }; export type SetCustomPostStylesRequest = { /** * Post thing ID * @example "t3_abc123" */ postId: string; /** * Custom styles for the post, such as background colors and the post size. Only present on custom posts. * If set to `undefined`, all settings will be reset to their default values. * Example: { "background_color": "#FF0000FF", "height": "TALL" } */ customPostStyles?: CustomPostStylesInput | undefined; }; export type GetCustomPostStylesRequest = { /** * Post thing ID * @example "t3_abc123" */ postId: string; }; export type GetUserPollOptionRequest = { /** * Post thing ID * @example "t3_1rvjxj7" */ postId: string; }; export type GetUserPollOptionResponse = { /** The poll option selected by the authenticated user. */ pollOption?: PollOption | undefined; }; /** * This is a variant of CustomPostStyles that is used for input in the SetCustomPostStylesRequest * and makes each field optional. */ export type CustomPostStylesInput = { /** * The default background color shown before an iframe is loaded. Must be in #RRGGBBAA (red, green, blue, alpha transparency) format with a leading hash. * The value is case-insensitive. Defaults to transparent (#00000000). */ backgroundColor?: string | undefined; /** * The dark mode background color shown before an iframe is loaded. Must be in #RRGGBBAA (red, green, blue, alpha transparency) format with a leading hash. * The value is case-insensitive. Defaults to transparent (#00000000). */ backgroundColorDark?: string | undefined; /** * The height of the post in pixels. Must be between 72 and 512 inclusive. When set, takes priority * over the enum-based height field. * @example 320 */ heightPixels?: number | undefined; /** * The height of the post. Defaults to 'tall'. This field is used to create or update the Post height. * Devvit Gateway maps 'tall' or 'regular' to the pixel height and returns both 'height_pixels' and 'height' to GQL. */ height?: EntrypointHeight | undefined; /** * The URL of the preview image to show when being shared (e.x. OpenGraph's `og:image`). * Defaults to `https://i.redd.it/o0h58lzmax6a1.png`, which is the generic image used for any page that doesn't have a preview image. */ shareImageUrl?: string | undefined; }; //# sourceMappingURL=linksandcomments_msg.d.ts.map