import { AutocompleteInteraction, ButtonInteraction, ChatInputCommandInteraction, ClientEventTypes, ContextMenuCommandInteraction, ModalSubmitInteraction, StringSelectMenuInteraction } from 'discord.js';
import { Logger } from '@sodacore/core';
export default class Router {
    private logger;
    private controllers;
    constructor(logger: Logger);
    init(): Promise<void>;
    onCommand(interaction: ChatInputCommandInteraction): Promise<import("discord.js").Message<boolean> | import("discord.js").InteractionCallbackResponse<boolean> | undefined>;
    onSubCommand(interaction: ChatInputCommandInteraction): Promise<import("discord.js").Message<boolean> | import("discord.js").InteractionCallbackResponse<boolean> | undefined>;
    onButton(interaction: ButtonInteraction): Promise<import("discord.js").Message<boolean> | import("discord.js").InteractionCallbackResponse<boolean> | undefined>;
    onSelectMenu(interaction: StringSelectMenuInteraction): Promise<import("discord.js").Message<boolean> | import("discord.js").InteractionCallbackResponse<boolean> | undefined>;
    onContextMenu(interaction: ContextMenuCommandInteraction): Promise<import("discord.js").Message<boolean> | import("discord.js").InteractionCallbackResponse<boolean> | undefined>;
    onAutocomplete(interaction: AutocompleteInteraction): Promise<void>;
    onModalSubmit(interaction: ModalSubmitInteraction): Promise<import("discord.js").Message<boolean> | import("discord.js").InteractionCallbackResponse<boolean> | undefined>;
    onEvent(event: keyof ClientEventTypes, ...data: unknown[]): Promise<void>;
    private getMethodArguments;
    private getController;
    private getControllerMethod;
    private getControllerMethodByMultiple;
    private getControllerbyUnique;
    private sendResponse;
    private getReplyMethod;
    private verifyAuthentication;
}
//# sourceMappingURL=router.d.ts.map