import { RESTPostAPIChatInputApplicationCommandsJSONBody, RESTPostAPIContextMenuApplicationCommandsJSONBody } from "discord.js";
import Artibot from ".";
import { Collection, Snowflake } from "discord.js";
import Localizer from "artibot-localizer";
import { Module } from "./modules.js";
/**
 * Interaction management utility for Artibot
 */
export declare class InteractionManager {
    /** Discord.js REST API utilitie */
    private rest;
    /** Discord bot client ID */
    clientId: Snowflake;
    /** Test guild ID */
    testGuildId: Snowflake;
    /** Dev mode */
    devMode: boolean;
    /** Debug mode */
    debug: boolean;
    /** Localizer instance */
    localizer: Localizer;
    /** JSON data of all slash commands and other interactions */
    commandJSONData: (RESTPostAPIChatInputApplicationCommandsJSONBody | RESTPostAPIContextMenuApplicationCommandsJSONBody)[];
    /**
     * @param config
     * @param config.token - Discord bot token
     * @param config.artibot - Artibot instance
     */
    constructor({ token, artibot: { localizer, client, config: { testGuildId, devMode, debug } } }: {
        token: string;
        artibot: Artibot;
    });
    /**
     * Generate data to send to Discord API to register interactions
     * @param modules - List of the modules to generate data from
     * @method
     */
    readonly generateData: (modules: Collection<string, Module>) => void;
    /**
     * Empty all stored JSON data
     * @method
    */
    readonly resetData: () => void;
    /**
     * Register interactions in Discord API
     * @returns True if everything went good, false if there was a problem.
     * @method
     * @async
     */
    readonly register: () => Promise<boolean>;
}
export default InteractionManager;
