import { BaseTicket } from "../Base/BaseTicket";
import { ThreadManager } from "./ThreadManager";
import { TicketData } from "../types/types";
/**
 * @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 ThreadChannel
 * @see {@link https://discord.js.org/#/docs/main/stable/class/ThreadChannel}
 */
import { GuildMember, ThreadChannel } from "discord.js";
/**
 * Represents a Thread Ticket
 * @extends {BaseTicket}
 */
export declare class ThreadTicket extends BaseTicket {
    readonly manager: ThreadManager;
    /**
     * @param {ThreadManager} manager The Ticket Manager
     * @param {TicketData} data The ticket data
     */
    constructor(manager: ThreadManager, data: TicketData);
    /**
     * Ticket's Channel
     * @type {ThreadTicket}
     * @readonly
     */
    get channel(): ThreadChannel;
    /**
     * Close Ticket
     * @return {Promise<void>}
     */
    close(): Promise<void>;
    /**
     * Rename Ticket
     * @param {string} name New ticket's name (name-0000)
     * @return {Promise<void>}
     */
    rename(name: string): Promise<void>;
    /**
     * Delete Ticket
     * @return {Promise<void>}
     */
    delete(): Promise<void>;
    /**
     * ReOpen Ticket
     * @return {Promise<void>}
     */
    reopen(): Promise<void>;
    /**
     * Add GuildMember to Thread
     * @param {GuildMember} member Discord Guild Member
     * @return {Promise<any>}
     */
    addMember(member: GuildMember): Promise<any>;
    /**
     * Remove GuildMember from Thread
     * @param {GuildMember} member Discord Guild Member
     * @return {Promise<any>}
     */
    removeMember(member: GuildMember): Promise<any>;
}
