import ForumTopic from "../models/ForumTopic.js"; import { type TransformDataQueryToOptions } from "../util.js"; import Base from "./Base.js"; import type { SearchForumTopicsData } from "../generated/types.js"; /** @category Modules/Types */ export interface ForumTopicOptions { category_id: number; is_locked?: boolean; is_sticky?: boolean; original_post_attributes?: { body?: string; id?: number; }; title: string; } /** @category Modules/Types */ export interface SearchForumTopicsOptions extends TransformDataQueryToOptions { } /** @category Modules */ export default class ForumTopics extends Base { /** * Create Forum Topic * * @requiresApiKeyAuth * * @operationId {@link https://e621.wiki/#operations-Forum_Topics-createForumTopic createForumTopic} * * @see {@link https://e621.wiki/#operations-Forum_Topics-createForumTopic Documentation} for more details. */ create(options: ForumTopicOptions): Promise; /** * Delete Forum Topic * * You must be Admin+. * * @requiresApiKeyAuth * * @operationId {@link https://e621.wiki/#operations-Forum_Topics-deleteForumTopic deleteForumTopic} * * @see {@link https://e621.wiki/#operations-Forum_Topics-deleteForumTopic Documentation} for more details. */ delete(id: number): Promise; /** * Edit Forum Topic * * @requiresApiKeyAuth * * @operationId {@link https://e621.wiki/#operations-Forum_Topics-editForumTopic editForumTopic} * * @see {@link https://e621.wiki/#operations-Forum_Topics-editForumTopic Documentation} for more details. */ edit(id: number, options: ForumTopicOptions): Promise; /** * Get Forum Forum Topic * * If the forum topic is hidden, you must be the creator or Moderator+ to see it. * * @operationId {@link https://e621.wiki/#operations-Forum_Topics-getForumTopic getForumTopic} * * @see {@link https://e621.wiki/#operations-Forum_Topics-getForumTopic Documentation} for more details. */ get(id: number): Promise; /** * Hide Forum Topic * * You must be the creator or Moderator+. * * @requiresApiKeyAuth * * @operationId {@link https://e621.wiki/#operations-Forum_Topics-hideForumTopic hideForumTopic} * * @see {@link https://e621.wiki/#operations-Forum_Topics-hideForumTopic Documentation} for more details. */ hide(id: number): Promise; /** * Mark All Forum Topics As Read * * @requiresApiKeyAuth * * @operationId {@link https://e621.wiki/#operations-Forum_Topics-markAllForumTopicsAsRead markAllForumTopicsAsRead} * * @see {@link https://e621.wiki/#operations-Forum_Topics-markAllForumTopicsAsRead Documentation} for more details. */ markAllRead(): Promise; /** * Search Forum Topics * * @operationId {@link https://e621.wiki/#operations-Forum_Topics-searchForumTopics searchForumTopics} * * @see {@link https://e621.wiki/#operations-Forum_Topics-searchForumTopics Documentation} for more details. */ search(options?: SearchForumTopicsOptions): Promise>; /** * Subscribe To Forum Topic * * @requiresApiKeyAuth * * @operationId {@link https://e621.wiki/#operations-Forum_Topics-subscribeForumTopic subscribeForumTopic} * * @see {@link https://e621.wiki/#operations-Forum_Topics-subscribeForumTopic Documentation} for more details. */ subscribe(id: number): Promise; /** * Unhide Forum Topic * * You must be Moderator+. * * @requiresApiKeyAuth * * @operationId {@link https://e621.wiki/#operations-Forum_Topics-unhideForumTopic unhideForumTopic} * * @see {@link https://e621.wiki/#operations-Forum_Topics-unhideForumTopic Documentation} for more details. */ unhide(id: number): Promise; /** * Unsubscribe From Forum Topic * * @requiresApiKeyAuth * * @operationId {@link https://e621.wiki/#operations-Forum_Topics-unsubscribeForumTopic unsubscribeForumTopic} * * @see {@link https://e621.wiki/#operations-Forum_Topics-unsubscribeForumTopic Documentation} for more details. */ unsubscribe(id: number): Promise; }