detritus-client
Version:
A Typescript NodeJS library to interact with Discord's API, both Rest and Gateway.
281 lines (280 loc) • 13.2 kB
TypeScript
import { CommandRatelimit, CommandRatelimitItem, CommandRatelimitOptions } from '../commandratelimit';
import { ApplicationCommandOptionTypes, ApplicationCommandTypes } from '../constants';
import { BaseSet } from '../collections/baseset';
import { BaseCollection } from '../collections/basecollection';
import { Structure } from '../structures/basestructure';
import { InteractionDataApplicationCommand, InteractionDataApplicationCommandOption } from '../structures/interaction';
import { InteractionContext } from './context';
export declare type ParsedArgs = Record<string, any>;
export declare type ParsedErrors = Record<string, Error>;
export declare type CommandRatelimitInfo = {
item: CommandRatelimitItem;
ratelimit: CommandRatelimit;
remaining: number;
};
export declare type CommandRatelimitMetadata = {
global: boolean;
now: number;
};
export declare type FailedPermissions = Array<bigint>;
export declare type InteractionCommandInvoker = InteractionCommand | InteractionCommandOption;
/**
* @category InteractionCommand
*/
export declare type ArgumentConverter = (value: any, context: InteractionContext) => Promise<any> | any;
/**
* @category InteractionCommand
*/
export declare type ArgumentDefault = ((context: InteractionContext) => Promise<any> | any) | any;
/**
* @category InteractionCommand
*/
export declare type CommandCallbackDmBlocked = (context: InteractionContext) => Promise<any> | any;
/**
* @category InteractionCommand
*/
export declare type CommandCallbackLoadingTrigger = (context: InteractionContext) => Promise<any> | any;
/**
* @category InteractionCommand
*/
export declare type CommandCallbackBefore = (context: InteractionContext) => Promise<boolean> | boolean;
/**
* @category InteractionCommand
*/
export declare type CommandCallbackBeforeRun = (context: InteractionContext, args: ParsedArgs) => Promise<boolean> | boolean;
/**
* @category InteractionCommand
*/
export declare type CommandCallbackCancel = (context: InteractionContext) => Promise<any> | any;
/**
* @category InteractionCommand
*/
export declare type CommandCallbackCancelRun = (context: InteractionContext, args: ParsedArgs) => Promise<any> | any;
/**
* @category InteractionCommand
*/
export declare type CommandCallbackError = (context: InteractionContext, error: any) => Promise<any> | any;
/**
* @category InteractionCommand
*/
export declare type CommandCallbackPermissionsFail = (context: InteractionContext, permissions: FailedPermissions) => Promise<any> | any;
/**
* @category InteractionCommand
*/
export declare type CommandCallbackRatelimit = (context: InteractionContext, ratelimits: Array<CommandRatelimitInfo>, metadata: CommandRatelimitMetadata) => Promise<any> | any;
/**
* @category InteractionCommand
*/
export declare type CommandCallbackRun = (context: InteractionContext, args: ParsedArgs) => Promise<any> | any;
/**
* @category InteractionCommand
*/
export declare type CommandCallbackRunError = (context: InteractionContext, args: ParsedArgs, error: any) => Promise<any> | any;
/**
* @category InteractionCommand
*/
export declare type CommandCallbackSuccess = (context: InteractionContext) => Promise<any> | any;
/**
* @category InteractionCommand
*/
export declare type CommandCallbackValueError = (context: InteractionContext, args: ParsedArgs, errors: ParsedErrors) => Promise<any> | any;
/**
* Command Options
* @category Command Options
*/
export interface InteractionCommandOptions {
_file?: string;
default_permission?: boolean;
defaultPermission?: boolean;
description?: string;
name?: string;
options?: Array<InteractionCommandOption | InteractionCommandOptionOptions | typeof InteractionCommandOption>;
type?: ApplicationCommandTypes;
disableDm?: boolean;
global?: boolean;
guildIds?: Array<string>;
metadata?: Record<string, any>;
permissions?: Array<bigint | number>;
permissionsClient?: Array<bigint | number>;
permissionsIgnoreClientOwner?: boolean;
ratelimit?: boolean | CommandRatelimitOptions | null;
ratelimits?: Array<CommandRatelimitOptions>;
triggerLoadingAfter?: number;
triggerLoadingAsEphemeral?: boolean;
onDmBlocked?: CommandCallbackDmBlocked;
onLoadingTrigger?: CommandCallbackLoadingTrigger;
onBefore?: CommandCallbackBefore;
onBeforeRun?: CommandCallbackBeforeRun;
onCancel?: CommandCallbackCancel;
onCancelRun?: CommandCallbackCancelRun;
onError?: CommandCallbackError;
onPermissionsFail?: CommandCallbackPermissionsFail;
onPermissionsFailClient?: CommandCallbackPermissionsFail;
onRatelimit?: CommandCallbackRatelimit;
run?: CommandCallbackRun;
onRunError?: CommandCallbackRunError;
onSuccess?: CommandCallbackSuccess;
onValueError?: CommandCallbackValueError;
}
export interface InteractionCommandOptionOptions {
_file?: string;
choices?: Array<InteractionCommandOptionChoice | InteractionCommandOptionChoiceOptions>;
default?: ArgumentDefault;
description?: string;
name?: string;
options?: Array<InteractionCommandOption | InteractionCommandOptionOptions | typeof InteractionCommandOption>;
required?: boolean;
type?: ApplicationCommandOptionTypes | StringConstructor | BooleanConstructor | NumberConstructor | string;
value?: ArgumentConverter;
disableDm?: boolean;
label?: string;
metadata?: Record<string, any>;
permissions?: Array<bigint | number>;
permissionsClient?: Array<bigint | number>;
permissionsIgnoreClientOwner?: boolean;
ratelimit?: boolean | CommandRatelimitOptions | null;
ratelimits?: Array<CommandRatelimitOptions>;
triggerLoadingAfter?: number;
triggerLoadingAsEphemeral?: boolean;
onDmBlocked?: CommandCallbackDmBlocked;
onLoadingTrigger?: CommandCallbackLoadingTrigger;
onBefore?: CommandCallbackBefore;
onBeforeRun?: CommandCallbackBeforeRun;
onCancel?: CommandCallbackCancel;
onCancelRun?: CommandCallbackCancelRun;
onError?: CommandCallbackError;
onPermissionsFail?: CommandCallbackPermissionsFail;
onPermissionsFailClient?: CommandCallbackPermissionsFail;
onRatelimit?: CommandCallbackRatelimit;
run?: CommandCallbackRun;
onRunError?: CommandCallbackRunError;
onSuccess?: CommandCallbackSuccess;
onValueError?: CommandCallbackValueError;
}
export interface InteractionCommandOptionChoiceOptions {
name?: string;
value?: number | string;
}
export declare class InteractionCommand<ParsedArgsFinished = ParsedArgs> extends Structure {
readonly _file?: string;
readonly _keys: BaseSet<string>;
readonly _keysSkipDifference: BaseSet<string>;
_options?: BaseCollection<string, InteractionCommandOption>;
defaultPermission: boolean;
description: string;
ids: BaseCollection<string, string>;
global: boolean;
guildIds?: BaseSet<string>;
name: string;
type: ApplicationCommandTypes;
disableDm?: boolean;
metadata: Record<string, any>;
permissions?: Array<bigint>;
permissionsClient?: Array<bigint>;
permissionsIgnoreClientOwner?: boolean;
ratelimits: Array<CommandRatelimit>;
triggerLoadingAfter?: number;
triggerLoadingAsEphemeral?: boolean;
onDmBlocked?(context: InteractionContext): Promise<any> | any;
onLoadingTrigger?(context: InteractionContext): Promise<any> | any;
onBefore?(context: InteractionContext): Promise<boolean> | boolean;
onBeforeRun?(context: InteractionContext, args: ParsedArgs): Promise<boolean> | boolean;
onCancel?(context: InteractionContext): Promise<any> | any;
onCancelRun?(context: InteractionContext, args: ParsedArgs): Promise<any> | any;
onError?(context: InteractionContext, args: ParsedArgs, error: any): Promise<any> | any;
onPermissionsFail?(context: InteractionContext, permissions: FailedPermissions): Promise<any> | any;
onPermissionsFailClient?(context: InteractionContext, permissions: FailedPermissions): Promise<any> | any;
onRatelimit?(context: InteractionContext, ratelimits: Array<CommandRatelimitInfo>, metadata: CommandRatelimitMetadata): Promise<any> | any;
run?(context: InteractionContext, args: ParsedArgsFinished): Promise<any> | any;
onRunError?(context: InteractionContext, args: ParsedArgsFinished, error: any): Promise<any> | any;
onSuccess?(context: InteractionContext, args: ParsedArgsFinished): Promise<any> | any;
onValueError?(context: InteractionContext, args: ParsedArgs, errors: ParsedErrors): Promise<any> | any;
constructor(data?: InteractionCommandOptions);
get _optionsKey(): string;
get fullName(): string;
get hash(): string;
get hasRun(): boolean;
get isGroup(): boolean;
get isContextCommand(): boolean;
get isContextCommandMessage(): boolean;
get isContextCommandUser(): boolean;
get isSlashCommand(): boolean;
get key(): string;
get length(): number;
get lengthOptions(): number;
get options(): Array<InteractionCommandOption> | undefined;
set options(value: Array<InteractionCommandOption> | undefined);
getInvoker(data: InteractionDataApplicationCommand): InteractionCommandInvoker | null;
getInvokerOption(options: BaseCollection<string, InteractionDataApplicationCommandOption>): InteractionCommandOption | null;
_transferValuesToChildren(): void;
mergeValue(key: string, value: any): void;
}
export declare class InteractionCommandOption<ParsedArgsFinished = ParsedArgs> extends Structure {
readonly parent?: InteractionCommand | InteractionCommandOption;
readonly _file?: string;
readonly _keys: BaseSet<string>;
_options?: BaseCollection<string, InteractionCommandOption>;
choices?: Array<InteractionCommandOptionChoice>;
description: string;
name: string;
required?: boolean;
type: ApplicationCommandOptionTypes;
default?: ArgumentDefault;
disableDm?: boolean;
label?: string;
metadata: Record<string, any>;
permissions?: Array<bigint>;
permissionsClient?: Array<bigint>;
permissionsIgnoreClientOwner?: boolean;
ratelimits?: Array<CommandRatelimit>;
triggerLoadingAfter?: number;
triggerLoadingAsEphemeral?: boolean;
value?: ArgumentConverter;
onDmBlocked?(context: InteractionContext): Promise<any> | any;
onLoadingTrigger?(context: InteractionContext): Promise<any> | any;
onBefore?(context: InteractionContext): Promise<boolean> | boolean;
onBeforeRun?(context: InteractionContext, args: ParsedArgs): Promise<boolean> | boolean;
onCancel?(context: InteractionContext): Promise<any> | any;
onCancelRun?(context: InteractionContext, args: ParsedArgs): Promise<any> | any;
onError?(context: InteractionContext, args: ParsedArgs, error: any): Promise<any> | any;
onPermissionsFail?(context: InteractionContext, permissions: FailedPermissions): Promise<any> | any;
onPermissionsFailClient?(context: InteractionContext, permissions: FailedPermissions): Promise<any> | any;
onRatelimit?(context: InteractionContext, ratelimits: Array<CommandRatelimitInfo>, metadata: CommandRatelimitMetadata): Promise<any> | any;
run?(context: InteractionContext, args: ParsedArgsFinished): Promise<any> | any;
onRunError?(context: InteractionContext, args: ParsedArgsFinished, error: any): Promise<any> | any;
onSuccess?(context: InteractionContext, args: ParsedArgsFinished): Promise<any> | any;
onValueError?(context: InteractionContext, args: ParsedArgs, errors: ParsedErrors): Promise<any> | any;
constructor(data?: InteractionCommandOptionOptions);
get _choicesKey(): string;
get _optionsKey(): string;
get fullName(): string;
get hasRun(): boolean;
get isSubCommand(): boolean;
get isSubCommandGroup(): boolean;
get key(): string;
get length(): number;
get lengthChoices(): number;
get lengthOptions(): number;
get options(): Array<InteractionCommandOption> | undefined;
set options(value: Array<InteractionCommandOption> | undefined);
getInvoker(option: InteractionDataApplicationCommandOption): InteractionCommandOption | null;
addChoice(name: InteractionCommandOptionChoice | InteractionCommandOptionChoiceOptions): InteractionCommandOptionChoice;
addChoice(name: string, value: number | string): InteractionCommandOptionChoice;
addOption(value: InteractionCommandOption | InteractionCommandOptionOptions | typeof InteractionCommandOption): InteractionCommandOption;
setChoices(value?: Array<InteractionCommandOptionChoice | InteractionCommandOptionChoiceOptions>): this;
setDescription(value: string): this;
setName(value: string): this;
setOptions(value?: Array<InteractionCommandOption | InteractionCommandOptionOptions>): this;
setRequired(value: boolean): this;
setType(value: ApplicationCommandOptionTypes): this;
_transferValuesToChildren(parent: InteractionCommand | InteractionCommandOption): void;
mergeValue(key: string, value: any): void;
}
export declare class InteractionCommandOptionChoice extends Structure {
readonly _keys: BaseSet<string>;
name: string;
value: number | string;
constructor(data?: InteractionCommandOptionChoiceOptions);
get key(): string;
get length(): number;
}