import { T1, T2, T3, T5 } from '@devvit/shared-types/tid.js'; import type { ModAction } from './ModAction.js'; export type ModNoteType = 'NOTE' | 'APPROVAL' | 'REMOVAL' | 'BAN' | 'MUTE' | 'INVITE' | 'SPAM' | 'CONTENT_CHANGE' | 'MOD_ACTION' | 'ALL'; export type UserNoteLabel = 'BOT_BAN' | 'PERMA_BAN' | 'BAN' | 'ABUSE_WARNING' | 'SPAM_WARNING' | 'SPAM_WATCH' | 'SOLID_CONTRIBUTOR' | 'HELPFUL_USER'; export type UserNote = { note?: string | undefined; redditId?: T1 | T3 | T5 | undefined; label?: UserNoteLabel | undefined; }; export interface ModNote { id: string; operator: { id?: T2 | undefined; name?: string | undefined; }; user: { id?: T2 | undefined; name?: string | undefined; }; subreddit: { id?: T5 | undefined; name?: string | undefined; }; type: ModNoteType; createdAt: Date; userNote?: UserNote | undefined; modAction?: ModAction; } /** Options for retrieving a user's moderation notes from a subreddit. */ export type GetModNotesOptions = { /** The subreddit name without the leading `r/`. */ subreddit: string; /** The username without the leading `u/`. */ user: string; /** The type of moderation notes to return. Defaults to all types. */ filter?: ModNoteType; /** * The maximum total number of moderation notes to return. * * Accepts at most 100 notes per request. Omit this option to allow the * listing to paginate beyond the first 100 notes. */ limit?: number; /** The pagination cursor before which results should be returned. */ before?: string; }; /** Options for adding a moderation note to a user. */ export type CreateModNoteOptions = { /** The subreddit name without the leading `r/`. */ subreddit: string; /** The username without the leading `u/`. */ user: string; /** The text of the moderation note. The maximum length is 250 characters. */ note: string; /** A label that categorizes the moderation note. */ label?: UserNoteLabel; /** The comment or post associated with the moderation note. */ redditId?: T1 | T3; }; /** Options for deleting a moderation note. */ export type DeleteNotesOptions = { /** The subreddit name without the leading `r/`. */ subreddit: string; /** The unique moderation note identifier, including its `ModNote_` prefix. */ noteId: string; /** The username without the leading `u/`. */ user: string; }; /** * Options for adding a note that explains why posts or comments were removed. */ export type AddRemovalNoteOptions = { /** The IDs of the removed posts or comments. */ itemIds: string[]; /** * The removal reason identifier, or an empty string when no removal reason is * used. */ reasonId: string; /** * The note explaining the removal. The maximum length is 100 characters. * * The plugin omits this field when it is `undefined` or an empty string. */ modNote?: string; }; export declare class ModNote { #private; } //# sourceMappingURL=ModNote.d.ts.map