import { UserContextMenuCommandInteraction, MessageContextMenuCommandInteraction, PermissionResolvable, Client } from 'discord.js'; export { ApplicationCommandType } from 'discord.js'; export type UserContextExecutor = (interaction: UserContextMenuCommandInteraction) => Promise | void; export type MessageContextExecutor = (interaction: MessageContextMenuCommandInteraction) => Promise | void; export interface UserContextConfig { type: 'user'; name: string; permissions?: PermissionResolvable[]; execute: UserContextExecutor; } export interface MessageContextConfig { type: 'message'; name: string; permissions?: PermissionResolvable[]; execute: MessageContextExecutor; } export type ContextMenuConfig = UserContextConfig | MessageContextConfig; export interface ContextHandlerConfig { clientId: string; token: string; guildId?: string; } export declare class ContextMenuHandler { private commands; private readonly cfg; constructor(config: ContextHandlerConfig); /** * Register a User or Message context menu command. * @returns `this` for chaining * * @example * ctx.command({ type: 'user', name: 'Get Avatar', execute: async (i) => { * await i.reply(i.targetUser.displayAvatarURL()); * }}); */ command(config: ContextMenuConfig): this; /** Deploy all registered context menus to Discord */ deploy(): Promise; /** Handle an incoming context menu interaction */ handle(interaction: UserContextMenuCommandInteraction | MessageContextMenuCommandInteraction): Promise; /** Attach to a Client — handles context menu interactions automatically */ attach(client: Client): this; } //# sourceMappingURL=context.d.ts.map