UNPKG

discord-tickets

Version:

Discord.js extention library for manage easily tickets

106 lines (105 loc) 3.51 kB
import { BaseManager } from "../Base/BaseManager"; /** * @external ThreadChannel * @see {@link https://discord.js.org/#/docs/main/stable/class/ThreadChannel} */ /** * @external Client * @see {@link https://discord.js.org/#/docs/main/stable/class/Client} */ /** * @external Collection * @see {@link https://discord.js.org/#/docs/collection/stable/class/Collection} */ /** * @external Guild * @see {@link https://discord.js.org/#/docs/main/stable/class/Guild} */ /** * @external GuildMember * @see {@link https://discord.js.org/#/docs/main/stable/class/GuildMember} */ /** * @external TextChannel * @see {@link https://discord.js.org/#/docs/main/stable/class/TextChannel} */ /** * @external Role * @see {@link https://discord.js.org/#/docs/main/stable/class/Role} */ /** * @external Message * @see {@link https://discord.js.org/#/docs/main/stable/class/Message} */ import { Client, Collection, Guild, GuildMember } from "discord.js"; import { ThreadManagerOptions, ThreadManagerEvents } from "../types/types"; import { ThreadTicket } from "./ThreadTicket"; /** * Thread Ticket Manager * @extends {BaseManager} */ export declare class ThreadManager extends BaseManager { readonly client: Client; readonly options: ThreadManagerOptions; tickets: Collection<string, ThreadTicket>; constructor(client: Client, options?: ThreadManagerOptions); /** * Caching raws tickets into Array * @return {Promise<void>} * @private */ cachingTickets(): Promise<void>; on<U extends keyof ThreadManagerEvents>(event: U, listener: ThreadManagerEvents[U]): this; emit<U extends keyof ThreadManagerEvents>(event: U, ...args: Parameters<ThreadManagerEvents[U]>): boolean; /** * Get options * @private * @param {string} id * @return {ThreadManagerOptions} */ getOptions(id: string): Promise<ThreadManagerOptions>; /** * Create Ticket * @param {Guild} guild Discord Guild * @param {GuildMember} member Discord Guild Member * @return {Promise<TextTicket>} * @example * //Create Thread Ticket * await ticketThread.createTicket(message.guild, message.member) */ createTicket(guild: Guild, member: GuildMember): Promise<ThreadTicket | undefined>; /** * Delete Ticket * @param {TextTicket} ticket Ticket class * @return {Promise<any>} */ deleteTicket(ticket: ThreadTicket): Promise<any>; /** * Close Ticket * @param {TextTicket} ticket Ticket class * @return {Promise<any>} */ closeTicket(ticket: ThreadTicket): Promise<any>; /** * ReOpen ticket * @param {TextTicket} ticket Ticket Resolvable * @return {Promise<any>} */ reOpenTicket(ticket: ThreadTicket): Promise<any>; /** * Rename Ticket * @param {ThreadTicket} ticket ThreadTicket * @param {string} name new Name * @return {Promise<any>} */ renameTicket(ticket: ThreadTicket, name: string): Promise<any>; } /** * Threads Ticket Manager Config Types * @typedef {object} ThreadManagerOptions * @property {boolean} enabled Manager status * @property {string} channelId Discord Channel Id where are created tickets * @property {string} staffRole Discord Role id who can access to tickets * @property {boolean} ticketCache Storing tickets in the cache * @property {StorageType} storage Storage File path */