import { DiscordBase } from './extra/DiscordBase'; export type GuildMemberData = APIGuildMember | Omit | 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 BanOptions, type GuildMemberResolvable, type ImageOptions, type MessageCreateBodyRequest, type MethodContext, type ObjectToLower } from '../common'; import type { APIGuildMember, APIInteractionDataResolvedGuildMember, APIUser, GatewayGuildMemberAddDispatchData, GatewayGuildMemberUpdateDispatchData, RESTGetAPIGuildMembersQuery, RESTGetAPIGuildMembersSearchQuery, RESTPatchAPIGuildMemberJSONBody, RESTPutAPIGuildMemberJSONBody } from '../types'; import { PermissionsBitField } from './extra/Permissions'; export interface BaseGuildMember extends DiscordBase, ObjectToLower> { } 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>; guild(mode: 'cache'): ReturnCache | undefined>; fetch(force?: boolean): Promise; ban(options?: BanOptions): Promise; kick(reason?: string): Promise; edit(body: RESTPatchAPIGuildMemberJSONBody, reason?: string): Promise; presence(): ReturnCache<(Omit & { id: string; user_id: string; } & { guild_id: string; }) | undefined>; voice(mode?: 'rest' | 'flow'): Promise; voice(mode: 'cache'): ReturnCache; toString(): `<@${string}>`; timeout(time: null | number, reason?: string): Promise; get hasTimeout(): false | number; private patch; get roles(): { keys: readonly string[]; list: (force?: boolean) => Promise; add: (id: string) => Promise; remove: (id: string) => Promise; permissions: (force?: boolean) => Promise; sorted: (force?: boolean) => Promise; highest: (force?: boolean) => Promise; }; static methods({ client, guildId }: MethodContext<{ guildId: string; }>): { resolve: (resolve: GuildMemberResolvable) => Promise; search: (query: RESTGetAPIGuildMembersSearchQuery) => Promise; unban: (id: string, reason?: string) => Promise; ban: (id: string, options?: BanOptions) => Promise; kick: (id: string, reason?: string) => Promise; edit: (id: string, body: RESTPatchAPIGuildMemberJSONBody, reason?: string) => Promise; add: (id: string, body: RESTPutAPIGuildMemberJSONBody) => Promise; addRole: (memberId: string, id: string) => Promise; removeRole: (memberId: string, id: string) => Promise; fetch: (memberId: string, force?: boolean) => Promise; list: (query?: RESTGetAPIGuildMembersQuery, force?: boolean) => Promise; }; } export interface GuildMember extends ObjectToLower> { } /** * 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; write(body: MessageCreateBodyRequest): Promise; 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; manageable(force?: boolean): Promise; bannable(force?: boolean): Promise; kickable(force?: boolean): Promise; moderatable(force?: boolean): Promise; } export interface UnavailableMember { pending: true; } export declare class UnavailableMember extends BaseGuildMember { } export interface InteractionGuildMember extends ObjectToLower> { } /** * 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); }