seyfert
Version:
The most advanced framework for discord bots
122 lines (121 loc) • 6.07 kB
TypeScript
import { DiscordBase } from './extra/DiscordBase';
export type GuildMemberData = APIGuildMember | Omit<APIGuildMember, 'user'> | GatewayGuildMemberUpdateDispatchData | GatewayGuildMemberAddDispatchData | APIInteractionDataResolvedGuildMember;
import { type DMChannelStructure, type GuildMemberStructure, type GuildStructure, type MessageStructure, type UserStructure, type VoiceStateStructure } from '../client/transformers';
import type { UsingClient } from '../commands';
import { type GuildMemberResolvable, type ImageOptions, type MessageCreateBodyRequest, type MethodContext, type ObjectToLower, type ToClass } from '../common';
import type { APIGuildMember, APIInteractionDataResolvedGuildMember, APIUser, GatewayGuildMemberAddDispatchData, GatewayGuildMemberUpdateDispatchData, RESTGetAPIGuildMembersQuery, RESTGetAPIGuildMembersSearchQuery, RESTPatchAPIGuildMemberJSONBody, RESTPutAPIGuildBanJSONBody, RESTPutAPIGuildMemberJSONBody } from '../types';
import type { GuildRole } from './GuildRole';
import { PermissionsBitField } from './extra/Permissions';
export interface BaseGuildMember extends DiscordBase, ObjectToLower<Omit<APIGuildMember, 'user' | 'roles'>> {
}
export declare class BaseGuildMember extends DiscordBase {
/** the choosen guild id */
readonly guildId: string;
private _roles;
joinedTimestamp?: number;
communicationDisabledUntilTimestamp?: number | null;
constructor(client: UsingClient, data: GuildMemberData, id: string,
/** the choosen guild id */
guildId: string);
guild(force?: boolean): Promise<GuildStructure<'api'>>;
fetch(force?: boolean): Promise<GuildMemberStructure>;
ban(body?: RESTPutAPIGuildBanJSONBody, reason?: string): Promise<void>;
kick(reason?: string): Promise<void>;
edit(body: RESTPatchAPIGuildMemberJSONBody, reason?: string): Promise<GuildMemberStructure>;
presence(): import("..").ReturnCache<(Omit<import("../types").GatewayPresenceUpdate, "user"> & {
id: string;
user_id: string;
} & {
guild_id: string;
}) | undefined>;
voice(force?: boolean): Promise<VoiceStateStructure>;
toString(): `<@${string}>`;
timeout(time: null | number, reason?: string): Promise<GuildMemberStructure>;
get hasTimeout(): false | number;
private patch;
get roles(): {
keys: string[];
list: (force?: boolean) => Promise<GuildRole[]>;
add: (id: string) => Promise<never>;
remove: (id: string) => Promise<never>;
permissions: (force?: boolean) => Promise<PermissionsBitField>;
sorted: (force?: boolean) => Promise<GuildRole[]>;
highest: (force?: boolean) => Promise<GuildRole>;
};
static methods({ client, guildId }: MethodContext<{
guildId: string;
}>): {
resolve: (resolve: GuildMemberResolvable) => Promise<GuildMemberStructure | undefined>;
search: (query?: RESTGetAPIGuildMembersSearchQuery) => Promise<GuildMemberStructure[]>;
unban: (id: string, reason?: string) => Promise<never>;
ban: (id: string, body?: RESTPutAPIGuildBanJSONBody, reason?: string) => Promise<void>;
kick: (id: string, reason?: string) => Promise<void>;
edit: (id: string, body: RESTPatchAPIGuildMemberJSONBody, reason?: string) => Promise<GuildMemberStructure>;
add: (id: string, body: RESTPutAPIGuildMemberJSONBody) => Promise<GuildMemberStructure | undefined>;
addRole: (memberId: string, id: string) => Promise<never>;
removeRole: (memberId: string, id: string) => Promise<never>;
fetch: (memberId: string, force?: boolean) => Promise<GuildMemberStructure>;
list: (query?: RESTGetAPIGuildMembersQuery, force?: boolean) => Promise<GuildMemberStructure[]>;
};
}
export interface GuildMember extends ObjectToLower<Omit<APIGuildMember, 'user' | 'roles'>> {
}
/**
* Represents a guild member
* @link https://discord.com/developers/docs/resources/guild#guild-member-object
*/
export declare class GuildMember extends BaseGuildMember {
/** the choosen guild id */
readonly guildId: string;
user: UserStructure;
private __me?;
constructor(client: UsingClient, data: GuildMemberData, user: APIUser,
/** the choosen guild id */
guildId: string);
get tag(): string;
get bot(): boolean | undefined;
get name(): string;
get username(): string;
get globalName(): string | null;
/** gets the nickname or the username */
get displayName(): string;
dm(force?: boolean): Promise<DMChannelStructure>;
write(body: MessageCreateBodyRequest): Promise<MessageStructure>;
defaultAvatarURL(): string;
avatarURL(options: ImageOptions & {
exclude: true;
}): string | null;
avatarURL(options?: ImageOptions & {
exclude?: false;
}): string;
bannerURL(options: ImageOptions & {
exclude: true;
}): string | undefined | null;
bannerURL(options?: ImageOptions & {
exclude?: false;
}): string | undefined;
fetchPermissions(force?: boolean): Promise<PermissionsBitField>;
manageable(force?: boolean): Promise<boolean>;
bannable(force?: boolean): Promise<boolean>;
kickable(force?: boolean): Promise<boolean>;
moderatable(force?: boolean): Promise<boolean>;
}
export interface UnavailableMember {
pending: true;
}
export declare class UnavailableMember extends BaseGuildMember {
}
export interface InteractionGuildMember extends ObjectToLower<Omit<APIInteractionDataResolvedGuildMember, 'roles' | 'deaf' | 'mute' | 'permissions'>> {
}
declare const InteractionGuildMember_base: ToClass<Omit<GuildMember, "deaf" | "mute">, InteractionGuildMember>;
/**
* Represents a guild member
* @link https://discord.com/developers/docs/resources/guild#guild-member-object
*/
export declare class InteractionGuildMember extends InteractionGuildMember_base {
permissions: PermissionsBitField;
constructor(client: UsingClient, data: APIInteractionDataResolvedGuildMember, user: APIUser,
/** the choosen guild id */
guildId: string);
}
export {};