import { ChatInputCommandInteraction, UserContextMenuCommandInteraction, MessageContextMenuCommandInteraction, ContextMenuCommandInteraction, APIApplicationCommandOption, PermissionResolvable, PermissionFlagsBits } from 'discord.js';
import { RunCommand, RunAutoComplete } from './Run';
export declare enum CommandType {
    ChatInput = 1,
    User = 2,
    Message = 3,
    PrimaryEntryPoint = 4
}
export type CommandInteraction<Type extends CommandType = CommandType> = Type extends CommandType.ChatInput ? ChatInputCommandInteraction : Type extends CommandType.User ? UserContextMenuCommandInteraction : Type extends CommandType.Message ? MessageContextMenuCommandInteraction : Type extends CommandType.PrimaryEntryPoint ? ContextMenuCommandInteraction : never;
export type Command<Type extends CommandType = CommandType> = {
    name: string;
    description: string;
    type: Type;
    cooldown?: number;
    options?: APIApplicationCommandOption[];
    defaultMemberPermission?: PermissionResolvable | null;
    botpermission?: keyof typeof PermissionFlagsBits | null;
    dmPermission?: boolean;
    nsfw?: boolean;
    allowIds?: string[] | null;
    autocomplete?: RunAutoComplete;
    run: RunCommand<Type>;
};
//# sourceMappingURL=Command.d.ts.map