import { PermissionsBitField } from "../PermissionCalculator";
import { User, Role, APIMember, Client, Guild } from "../index";
import { Base } from "../internal/Base";
/** Member object */
export declare class Member extends Base {
    #private;
    readonly joinedAt: Date;
    readonly id: string;
    nick: string | null;
    constructor(data: any, client: Client);
    toString(): string;
    /**
     * Get the guild of the member
     *
     * @returns A guild object
     */
    get guild(): Guild;
    /**
     * Get the display name of the member
     *
     * @returns The display name of the member
     */
    get displayName(): string;
    /**
     * Get the roles of the member
     *
     * @returns An array of roles
     */
    get roles(): Role[];
    /**
     * Get the user object for the member
     *
     * @returns A user object
     */
    get user(): User;
    /**
     * Get the permissions of the member
     *
     * @returns An array of permissions
     */
    get permissions(): (keyof typeof PermissionsBitField)[];
    /**
     * Update the member
     *
     * @param data New member data
     */
    _patch(data: APIMember): void;
    /**
     * Bans the member from the guild.
     *
     * @param [delete_message_seconds=0] Number of seconds to delete messages for.
     */
    ban(delete_message_seconds?: number): Promise<void>;
    /**
     * Kicks the member from the guild.
     *
     * @param [delete_message_seconds=0] Number of seconds to delete messages for.
     */
    kick(): Promise<void>;
    /**
     * Sets the nickname of the member.
     *
     * @param nickname The new nickname for the member.
     */
    setNick(nickname: string): Promise<void>;
    /**
     * Timeout the member.
     *
     * @param communicationDisabledUntil The date until which the member's communication is re-enabled.
     */
    setCommunicationDisabled(communicationDisabledUntil: Date): Promise<void>;
}
