export declare class SlashCommandBuilder { constructor(); readonly name: string; readonly description: string; readonly options: any[]; setName(name: string): this; setDescription(description: string): this; addStringOption(input: inputFunction): this; addUserOption(input: inputFunction): this; addIntegerOption(input: inputFunction): this; addBooleanOption(input: inputFunction): this; addChannelOption(input: inputFunction): this; addRoleOption(input: inputFunction): this; addSubcommand(input: inputFunction): this; private _sharedAddOptionMethod; toJSON(): this; } type inputFunction = (input: T) => T; export declare class CommonBuilder { constructor(); required: boolean; name: string; setDescription(description: string): this; setName(name: string): this; setRequired(required?: boolean): this; toJSON(): this; } export declare enum SlashCommandBuilderOptionType { SUB_COMMAND = 1, SUB_COMMAND_GROUP = 2, STRING = 3, INTEGER = 4, BOOLEAN = 5, USER = 6, CHANNEL = 7, ROLE = 8, MENTIONABLE = 9, NUMBER = 10 } export declare class RoleBuilder extends CommonBuilder { protected readonly type = SlashCommandBuilderOptionType.ROLE; readonly role_types: any[]; readonly autocomplete: boolean; constructor(); addRoleType(roleType: any): this; toJSON(): this; } export declare class StringBuilder extends CommonBuilder { protected readonly type = SlashCommandBuilderOptionType.STRING; readonly choices: any[]; constructor(); addChoices(_choices: { name: string; value: string; }[]): this; addChoice(choice: { name: string; value: string; }): this; toJSON(): this; } export declare class BooleanBuilder extends CommonBuilder { protected readonly type = SlashCommandBuilderOptionType.BOOLEAN; constructor(); toJSON(): this; } export declare class ChannelBuilder extends CommonBuilder { protected readonly type = SlashCommandBuilderOptionType.CHANNEL; readonly channel_types: any[]; constructor(); addChannelType(channelType: any): this; toJSON(): this; } export declare class IntegerBuilder extends CommonBuilder { protected readonly type = SlashCommandBuilderOptionType.INTEGER; readonly choices: any[]; readonly min: number; readonly max: number; constructor(); setMin(min: number): this; setMax(max: number): this; toJSON(): this; } export declare class UserBuilder extends CommonBuilder { protected readonly type = SlashCommandBuilderOptionType.USER; constructor(); toJSON(): this; } export {};