UNPKG

@elara-services/tickets

Version:
166 lines (150 loc) 5.43 kB
declare module "@elara-services/tickets" { import type { Client, MessageOptions, GuildMember, Guild, User, TextBasedChannel, Message, Interaction } from "discord.js"; export type Langs = "en-US"; export interface TicketModalQuestion { label: string; style: 1 | 2; placeholder?: string; value?: string; required?: boolean; min_length?: number; max_length?: number; } export interface TicketOptions { client: Client; prefix: string; encryptToken: string; lang?: Langs; debug?: boolean; suppressPatreon?: boolean; appeals?: { enabled?: boolean; sendBanResults?: boolean; mainserver: { id: string; checkIfBanned?: boolean; }; embeds?: { not_banned: Pick<MessageOptions, "content" | "embeds" | "components"> } }; modal?: { enabled?: boolean; title?: string; questions?: TicketModalQuestion[] }; webhook?: { channelId?: string; id?: string; token?: string; threadId?: string; username?: string; avatar?: string }; support?: { roles?: string[]; users?: string[]; canOnlyCloseTickets?: boolean; ignore?: string[] }; ticket?: { category?: string; closeReason?: boolean; supportCommentThread?: boolean; limitOnePerUser?: boolean; open?: Pick<MessageOptions, "content" | "embeds"> close?: { confirm?: Pick<MessageOptions, "content" | "embeds"> } } } interface LangFile { NO_BAN_PERMS_USER_IN_APPEAL_SERVER(server: Guild): string; NOT_FOUND_IN_APPEAL_SERVER(server: Guild): string; TICKET_LIMIT_ONE_PER_USER(name: string): string; NO_CONSTRUCTOR_OPTIONS(name?: string): string; NO_CHANNEL_FOUND(id: string): string; USER_NOT_BANNED(id: string): string; UNBAN_FAILED(id: string, serverName: string): string; UNBAN_SUCCESS(id: string, serverName: string): string; ID(id?: string): string; OPEN_TICKET_MESSAGE_CONTENT: string; TICKET_CLOSE_CONFIRM_BUTTON: string; OPEN_TICKET_MESSAGE_FOOTER: string; MODAL_CONTENT_PLACEHOLDER: string; CLOSE_TICKET_FIELD_REASON: string; OPEN_TICKET_AUDIT_REASON: string; TICKET_CLOSE_PLACEHOLDER: string; NO_APPEAL_SERVER_FOUND: string; NOT_BANNED_MAIN_SERVER: string; TICKET_CLOSE_CONFIRM: string; NO_MESSAGES_FETCHED: string; OPEN_TICKET_MESSAGE: string; OPEN_TICKET_CREATE: string; CLOSE_TICKET_TITLE: string; OPEN_TICKET_TITLE: string; NO_CHANNEL_CREATE: string; NO_CHANNEL_DELETE: string; NO_BAN_PERMS_USER: string; TICKET_BLOCKED: string; FORM_RESPONSES: string; NO_USER_FOUND: string; CREATE_TICKET: string; CLOSED_TICKET: string; FORM_RESPONSE: string; MODAL_CONTENT: string; ONLY_SUPPORT: string; GO_TO_TICKET: string; CLOSE_TICKET: string; BAN_REASON: string; UNBAN_FROM: string; TRANSCRIPT: string; TICKET_ID: string; VIEW_HERE: string; NO_REASON: string; CLOSED_BY: string; UNBANNED: string; TICKETS: string; CHANNEL: string; REASON: string; UNBAN: string; ERROR: string; USER: string; INFO: string; BY: string; } class Tickets { public constructor(options: TicketOptions); public options: TicketOptions; public prefix: string; private _debug(...args: unknown[]): unknown; public get manage(): { add(channelId: string, userId: string, permType: "member" | "mod"): Promise<{ status: boolean, message: string }>; remove(channelId: string, userId: string): Promise<{ status: boolean, message: string }>; }; public get webhookOptions(): { id: string | undefined; token: string | undefined; threadId: string | undefined; username: string; avatar: string; }; public get getSupportIds(): { roles: string[]; users: string[]; }; public str(name: keyof LangFile, lang?: Langs): string; public button(options: { style: 1 | 2 | 3 | 4 | 5 | number, id?: string, label?: string, emoji?: { name?: string, id?: string } }): { type: number, custom_id: string, style: number, label?: string, emoji?: { name?: string, id?: string } } public closeTicket(options: { member: GuildMember, guild: Guild, user: User, messages: Message[], channel: TextBasedChannel }): Promise<unknown>; public run(int: Interaction): Promise<unknown>; public runMany(interaction: Interaction, tickets: Tickets[]): this; public starterMessage(channelId: string, options?: Pick<MessageOptions, "embeds" | "content" | "components" | "attachments">): Promise<unknown>; }; export = Tickets; }