import { CommandFn, PluginCommandConfig, MessageCommandSignatureOrArray } from "./messageCommandUtils"; import { BasePluginType } from "../../plugins/pluginTypes"; import { AnyPluginData, GlobalPluginData, GuildPluginData } from "../../plugins/PluginData"; type CommandSource = "guild" | "dm"; export interface MessageCommandBlueprint, _TSignature extends MessageCommandSignatureOrArray> { type: "message"; trigger: string | string[]; signature?: _TSignature; run: CommandFn; config?: PluginCommandConfig; permission: string | null; source?: CommandSource | CommandSource[]; locks?: string | string[]; cooldown?: number | { amount: number; permission: string; }; description?: string; usage?: string; } type CommandBlueprintCreator> = >(blueprint: Omit, "type">) => MessageCommandBlueprint; /** * Helper function that creates a command blueprint for a guild command. * * To specify `TPluginType` for additional type hints, use: * `guildCommand()(blueprint)` */ export declare function guildPluginMessageCommand>(blueprint: Omit, TSignature>, "type">): MessageCommandBlueprint, TSignature>; /** * Specify `TPluginType` for type hints and return self */ export declare function guildPluginMessageCommand(): CommandBlueprintCreator>; /** * Helper function that creates a command blueprint for a global command. * * To specify `TPluginType` for additional type hints, use: * `globalCommand()(blueprint)` */ export declare function globalPluginMessageCommand>(blueprint: Omit, TSignature>, "type">): MessageCommandBlueprint, TSignature>; /** * Specify `TPluginType` for type hints and return self */ export declare function globalPluginMessageCommand(): CommandBlueprintCreator>; export {};