import { DataBanCreate, DataMemberEdit } from "revolt-api"; import { APIMember } from "../api"; import { Client } from "../Client"; import { PermissionFlags } from "../utils/PermissionFlags"; import { Attachment, AttachmentArgs } from "./Attachment"; import { BaseObject } from "./BaseObject"; import { Role } from "./Role"; export declare class Member extends BaseObject { constructor(client: Client, data: APIMember); get joinedAt(): Date; get nickname(): string; /** This member's roles. Automatically sorted. */ get roles(): Role[]; /** This member's hoisted role. (if any) */ get hoistedRole(): Role; /** This member's role defining its color. (if any) */ get colorRole(): Role; /** The Date this member's timeout ends. */ get timeoutEnds(): Date; get serverID(): string; get server(): import("./Server").Server; get user(): import("./User").User; fetchUser(): Promise; get avatar(): Attachment; generateAvatarURL(...args: AttachmentArgs): string; /** This member's permissions. */ get permissions(): PermissionFlags; /** Get member rank. Smaller = Higher Rank */ get ranking(): number; /** Whether you have a higher rank than this member. */ get inferior(): boolean; /** If you can kick this member. */ get kickable(): boolean; /** If you can ban this member. */ get bannable(): boolean; /** If the target's rank is higher than this member. */ inferiorTo(target: Member): boolean; /** Edit this member. */ edit(data: DataMemberEdit): Promise; /** Add a role to this member. */ addRole(role: Role): Promise; /** Remove a role from this member. */ removeRole(role: Role): Promise; /** * Set or remove the timeout for this member. * @param ends Epoch time for timeout to end or `null` to remove. */ timeout(ends: number | null): Promise; /** Kick this member. */ kick(): Promise; /** Ban this member. */ ban(data?: DataBanCreate): Promise; private timeoutClearer; private scheduleTimeoutClear; }