import type { ParsedSlashCommand, SlashCommand, SlashCommandHint, SlashCommandMatch, SlashCommandModule } from './types.js';
/**
 * Registers slash-command modules and dispatches parsed command input.
 */
export declare class SlashCommandRegistry<Result, Context> {
    private readonly commandList;
    private readonly hintList;
    constructor(modules: SlashCommandModule<Result, Context>[]);
    commands(): SlashCommand<Result, Context>[];
    hints(): SlashCommandHint[];
    find(input: string | ParsedSlashCommand): SlashCommandMatch<Result, Context> | undefined;
    run(context: Context, input: string | ParsedSlashCommand): Promise<Result | undefined>;
    private static flattenModuleHints;
    private static flattenModules;
    private static validate;
    private static assertUnique;
}
//# sourceMappingURL=registry.d.ts.map