seyfert
Version:
The most advanced framework for discord bots
122 lines (121 loc) • 6.14 kB
TypeScript
import { DiscordBase } from './extra/DiscordBase';
export type GuildMemberData = APIGuildMember | Omit<APIGuildMember, 'user'> | GatewayGuildMemberUpdateDispatchData | GatewayGuildMemberAddDispatchData | APIInteractionDataResolvedGuildMember;
import type { GuildRoleStructure, ReturnCache } from '../';
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 } from '../common';
import type { APIGuildMember, APIInteractionDataResolvedGuildMember, APIUser, GatewayGuildMemberAddDispatchData, GatewayGuildMemberUpdateDispatchData, RESTGetAPIGuildMembersQuery, RESTGetAPIGuildMembersSearchQuery, RESTPatchAPIGuildMemberJSONBody, RESTPutAPIGuildBanJSONBody, RESTPutAPIGuildMemberJSONBody } from '../types';
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(mode?: 'rest' | 'flow'): Promise<GuildStructure<'cached' | 'api'>>;
guild(mode: 'cache'): ReturnCache<GuildStructure<'cached'> | undefined>;
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(): ReturnCache<(Omit<import("../types").GatewayPresenceUpdate, "user"> & {
id: string;
user_id: string;
} & {
guild_id: string;
}) | undefined>;
voice(mode?: 'rest' | 'flow'): Promise<VoiceStateStructure>;
voice(mode: 'cache'): ReturnCache<VoiceStateStructure | undefined>;
toString(): `<@${string}>`;
timeout(time: null | number, reason?: string): Promise<GuildMemberStructure>;
get hasTimeout(): false | number;
private patch;
get roles(): {
keys: string[];
list: (force?: boolean) => Promise<GuildRoleStructure[]>;
add: (id: string) => Promise<undefined>;
remove: (id: string) => Promise<undefined>;
permissions: (force?: boolean) => Promise<PermissionsBitField>;
sorted: (force?: boolean) => Promise<GuildRoleStructure[]>;
highest: (force?: boolean) => Promise<GuildRoleStructure>;
};
static methods({ client, guildId }: MethodContext<{
guildId: string;
}>): {
resolve: (resolve: GuildMemberResolvable) => Promise<GuildMemberStructure | undefined>;
search: (query?: RESTGetAPIGuildMembersSearchQuery) => Promise<GuildMemberStructure[]>;
unban: (id: string, reason?: string) => Promise<undefined>;
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<undefined>;
removeRole: (memberId: string, id: string) => Promise<undefined>;
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'>> {
}
/**
* Represents a guild member
* @link https://discord.com/developers/docs/resources/guild#guild-member-object
*/
export declare class InteractionGuildMember extends GuildMember {
permissions: PermissionsBitField;
constructor(client: UsingClient, data: APIInteractionDataResolvedGuildMember, user: APIUser,
/** the choosen guild id */
guildId: string);
}