discord-tickets
Version:
Discord.js extention library for manage easily tickets
106 lines (105 loc) • 3.51 kB
TypeScript
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
*/