import { BaseManager, FetchManyOptions, FetchOptions } from '../BaseManager';
import { Server } from '../../structures/server/Server';
import { ServerMember } from '../../structures/server/ServerMember';
import { Collection } from '@discordjs/collection';
/**
 * The manager of members that belong to a server.
 * @example new ServerMemberManager(server);
 */
export declare class ServerMemberManager extends BaseManager<string, ServerMember> {
    readonly server: Server;
    /** @param server The server the members belongs to. */
    constructor(server: Server);
    /**
     * Fetch a member from the server, or cache.
     * @param member The member to fetch.
     * @param options The options to fetch the member with.
     * @returns The fetched member.
     * @example members.fetch(member);
     */
    fetch(member: string | ServerMember, options?: FetchOptions): Promise<ServerMember>;
    /**
     * Fetch members from the server.
     * @param options The options to fetch members with.
     * @returns The fetched members.
     * @example members.fetch();
     */
    fetch(options?: FetchManyOptions): Promise<Collection<string, ServerMember>>;
    /** @ignore */
    private fetchSingle;
    /** @ignore */
    private fetchMany;
    /**
     * Fetch a social link from a member in the server.
     * @param member The member to fetch the social link from.
     * @param type The type of social link to fetch.
     * @returns The fetched social link.
     * @example members.fetchSocialLink(member, 'youtube');
     */
    fetchSocialLink(member: string | ServerMember, type: string): Promise<import("guilded-api-typings/dist").APISocialLink>;
    /**
     * Set the nickname of a member in the server.
     * @param member The member to edit.
     * @param nickname The nickname of the member.
     * @returns The nickname of the member.
     * @example members.setNickname(member, 'new nickname');
     */
    setNickname(member: string | ServerMember, nickname: string): Promise<string>;
    /**
     * Remove the nickname of a member in the server.
     * @param member The member to edit.
     * @example members.removeNickname(member);
     */
    removeNickname(member: string | ServerMember): Promise<void>;
    /**
     * Kick a member from the server.
     * @param member The member to kick.
     * @example members.kick(member);
     */
    kick(member: string | ServerMember): Promise<void>;
    /**
     * Ban a member from the server.
     * @param member The member to ban.
     * @param reason The reason of the ban.
     * @returns The created ban.
     * @example members.ban(member);
     */
    ban(member: string | ServerMember, reason?: string): Promise<import("../..").ServerBan>;
    /**
     * Unban a member from the server.
     * @param member The member to unban.
     * @example members.unban(member);
     */
    unban(member: string | ServerMember): Promise<void>;
    /**
     * Award XP to a member in the server.
     * @param member The member to award XP to.
     * @param amount The amount of XP to award to the member.
     * @returns The total amount of XP the server member has.
     * @example members.awardXp(member, 100);
     */
    awardXp(member: string | ServerMember, amount: number): Promise<number>;
    /**
     * Set XP of a member in the server.
     * @param member The member to set XP for.
     * @param amount The total XP of the server member.
     * @returns The total amount of XP the server member has.
     * @example members.setXp(member, 100);
     */
    setXp(member: string | ServerMember, amount: number): Promise<number>;
}
//# sourceMappingURL=ServerMemberManager.d.ts.map