import { Client, Collection } from 'discord.js';
import { CommandDiscovery } from './command.discovery';
import { ContextMenusService } from './context-menus';
import { SlashCommandsService } from './slash-commands';
/**
 * Represents a service that manages commands.
 */
export declare class CommandsService {
    private readonly client;
    private readonly contextMenusService;
    private readonly slashCommandsService;
    private readonly logger;
    constructor(client: Client, contextMenusService: ContextMenusService, slashCommandsService: SlashCommandsService);
    /**
     * Registers all commands.
     *
     */
    registerAllCommands(): Promise<void>;
    /**
     * Registers commands in a guild.
     * @param guildId
     */
    registerInGuild(guildId: string): Promise<void | Collection<string, import("discord.js").ApplicationCommand<{}>>>;
    getCommands(): CommandDiscovery[];
    getCommandsByGuilds(): Collection<string, CommandDiscovery[]>;
    getCommandsByCategoryMap(): Map<string, CommandDiscovery[]>;
    getCommandsMap(): Map<string, CommandDiscovery>;
    getGuildCommandsMap(guildId: string): Map<string, CommandDiscovery<import("./command.discovery").BaseCommandMeta>>;
    getCommandByName(name: string): CommandDiscovery;
    getGlobalCommands(): CommandDiscovery[];
    getGlobalCommandByName(name: string): CommandDiscovery;
    getGuildCommands(guildId: string): CommandDiscovery[];
    getGuildCommandByName(guildId: string, name: string): CommandDiscovery;
    getAllCommandsAndSetDiscordResponseMeta(): void;
}
