import { AnyPluginData, GlobalPluginData, GuildPluginData } from "../../plugins/PluginData"; import { Locale, Permissions } from "discord-api-types/v10"; import { BaseSlashCommandOption } from "./slashCommandOptions"; import { SlashCommandFn, SlashCommandSignature } from "./slashCommandUtils"; import { BasePluginType } from "../../plugins/pluginTypes"; export type AnySlashCommandSignature = Array>; export type SlashCommandBlueprint, TSignature extends AnySlashCommandSignature> = { type: "slash"; name: string; nameLocalizations?: Record; description: string; descriptionLocalizations?: Record; defaultMemberPermissions?: Permissions; configPermission?: string; allowDms?: boolean; signature: TSignature; run: SlashCommandFn; }; type SlashCommandBlueprintCreator> = (blueprint: Omit, "type">) => SlashCommandBlueprint; /** * Helper function that creates a command blueprint for a guild slash command. * * To specify `TPluginType` for additional type hints, use: * `guildCommand()(blueprint)` */ export declare function guildPluginSlashCommand(blueprint: Omit, TSignature>, "type">): SlashCommandBlueprint, TSignature>; /** * Specify `TPluginType` for type hints and return self */ export declare function guildPluginSlashCommand(): SlashCommandBlueprintCreator>; /** * Helper function that creates a command blueprint for a guild slash command. * * To specify `TPluginType` for additional type hints, use: * `guildCommand()(blueprint)` */ export declare function globalPluginSlashCommand(blueprint: Omit, TSignature>, "type">): SlashCommandBlueprint, TSignature>; /** * Specify `TPluginType` for type hints and return self */ export declare function globalPluginSlashCommand(): SlashCommandBlueprintCreator>; export {};