UNPKG

discord-tickets

Version:

Discord.js extention library for manage easily tickets

104 lines (103 loc) 3.54 kB
import { TextTicket } from "./TextTicket"; import { BaseManager } from "../Base/BaseManager"; /** * @external CategoryChannel * @see {@link https://discord.js.org/#/docs/main/stable/class/CategoryChannel} */ /** * @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 Permissions * @see {@link https://discord.js.org/#/docs/main/stable/class/Permissions} */ import { Client, Collection, Guild, GuildMember } from "discord.js"; import { TicketManagerOptions, TicketManagerEvents } from "../types/types"; /** * Text Ticket Manager * @extends {BaseManager} */ export declare class TicketManager extends BaseManager { readonly client: Client; options: TicketManagerOptions; tickets: Collection<string, TextTicket>; /** * @param {Client} client Discord Client * @param {TicketManagerOptions} [options] TicketManager options */ constructor(client: Client, options?: TicketManagerOptions); /** * Caching raws tickets into Array * @return {Promise<void>} * @private */ cachingTickets(): Promise<void>; on<U extends keyof TicketManagerEvents>(event: U, listener: TicketManagerEvents[U]): this; emit<U extends keyof TicketManagerEvents>(event: U, ...args: Parameters<TicketManagerEvents[U]>): boolean; /** * Get options * @private * @param {string} id * @return {TicketManagerOptions} */ getOptions(id: string): Promise<TicketManagerOptions>; /** * Create Ticket * @param {Guild} guild Discord Guild * @param {GuildMember} member Discord Guild Member * @return {Promise<TextTicket>} * @example * //Create Thread Ticket * await ticketText.createTicket(message.guild, message.member) */ createTicket(guild: Guild, member: GuildMember): Promise<TextTicket | undefined>; /** * Delete Ticket * @param {TextTicket} ticket Ticket class * @return {Promise<any>} */ deleteTicket(ticket: TextTicket): Promise<any>; /** * Close Ticket * @param {TextTicket} ticket Ticket class * @return {Promise<any>} */ closeTicket(ticket: TextTicket): Promise<any>; /** * ReOpen ticket * @param {TextTicket} ticket Ticket Resolvable * @return {Promise<any>} */ reOpenTicket(ticket: TextTicket): Promise<any>; /** * Rename Ticket * @param {ThreadTicket} ticket ThreadTicket * @param {string} name new Name * @return {Promise<any>} */ renameTicket(ticket: TextTicket, name: string): Promise<any>; } /** * Text Ticket Manager Config Types * @typedef {object} TicketManagerOptions * @property {boolean} enabled Manager status * @property {string} parentID Category Id where are created tickets * @property {string} staffRole Discord Role id who can access to tickets * @property {string} closedParentID Category Id where are closed tickets * @property {string} [channelTopic] Ticket's channel topic * @property {boolean} ticketCache Storing tickets in the cache * @property {StorageType} storage Storage File path */