discord-api-types
Version:
Discord API typings that are kept up to date for use in bot library creation.
123 lines • 3.18 kB
TypeScript
/**
* Types extracted from https://discord.com/developers/docs/topics/permissions
*/
import type { Permissions, Snowflake } from '../../globals';
/**
* @see {@link https://discord.com/developers/docs/topics/permissions#role-object}
*/
export interface APIRole {
/**
* Role id
*/
id: Snowflake;
/**
* Role name
*/
name: string;
/**
* Integer representation of hexadecimal color code
*
* @remarks `color` will still be returned by the API, but using the `colors` field is recommended when doing requests.
*/
color: number;
/**
* The role's colors
*/
colors?: APIRoleColors;
/**
* If this role is pinned in the user listing
*/
hoist: boolean;
/**
* The role icon hash
*/
icon?: string | null;
/**
* The role unicode emoji as a standard emoji
*/
unicode_emoji?: string | null;
/**
* Position of this role
*/
position: number;
/**
* Permission bit set
*
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
permissions: Permissions;
/**
* Whether this role is managed by an integration
*/
managed: boolean;
/**
* Whether this role is mentionable
*/
mentionable: boolean;
/**
* The tags this role has
*/
tags?: APIRoleTags;
/**
* Role flags
*/
flags: RoleFlags;
}
/**
* @see {@link https://discord.com/developers/docs/topics/permissions#role-object-role-tags-structure}
*/
export interface APIRoleTags {
/**
* The id of the bot this role belongs to
*/
bot_id?: Snowflake;
/**
* Whether this is the guild's premium subscriber role
*/
premium_subscriber?: null;
/**
* The id of the integration this role belongs to
*/
integration_id?: Snowflake;
/**
* The id of this role's subscription sku and listing
*/
subscription_listing_id?: Snowflake;
/**
* Whether this role is available for purchase
*/
available_for_purchase?: null;
/**
* Whether this role is a guild's linked role
*/
guild_connections?: null;
}
/**
* @see {@link https://discord.com/developers/docs/topics/permissions#role-object-role-flags}
*/
export declare enum RoleFlags {
/**
* Role can be selected by members in an onboarding prompt
*/
InPrompt = 1
}
/**
* @see {@link https://discord.com/developers/docs/topics/permissions#role-colors-object}
*/
export interface APIRoleColors {
/**
* The primary color for the role
*/
primary_color: number;
/**
* The secondary color for the role, this will make the role a gradient between the other provided colors
*/
secondary_color: number | null;
/**
* The tertiary color for the role, this will turn the gradient into a holographic style
*
* @remarks When sending `tertiary_color` the API enforces the role color to be a holographic style with values of `primary_color = 11127295`, `secondary_color = 16759788`, and `tertiary_color = 16761760`.
*/
tertiary_color: number | null;
}
//# sourceMappingURL=permissions.d.ts.map