import { BaseManager, FetchManyOptions } from '../BaseManager';
import { ServerRole } from '../../structures/server/ServerRole';
import { Server } from '../../structures/server/Server';
import { Collection } from '@discordjs/collection';
import { ServerMember } from '../../structures/server/ServerMember';
/**
 * A manager of roles that belong to a server.
 * @example new ServerRoleManager(server);
 */
export declare class ServerRoleManager extends BaseManager<number, ServerRole> {
    readonly server: Server;
    /** @param server The server the roles belong to. */
    constructor(server: Server);
    /**
     * Fetch roles that belong to a member.
     * @param member The member the roles belong to.
     * @param options The options to fetch the roles with.
     * @returns The fetched roles that belong to the member.
     * @example roles.fetch(member);
     */
    fetch(member: string | ServerMember, options?: ServerRoleFetchManyOptions): Promise<Collection<number, ServerRole>>;
    /**
     * Assign a role to a member.
     * @param member The member the role belongs to.
     * @param role The role to add to the member.
     * @returns The role that was added to the member.
     * @example roles.assign(member, role);
     */
    assign(member: string | ServerMember, role: number | ServerRole): Promise<ServerRole>;
    /**
     * Unassign a role from a member.
     * @param member The member the role belongs to.
     * @param role The role to remove from the member.
     * @returns The role that was removed from the member.
     * @example roles.unassign(member, role);
     */
    unassign(member: string | ServerMember, role: number | ServerRole): Promise<ServerRole>;
    /**
     * Award XP to a role.
     * @param role The role to award XP to.
     * @param amount The amount of XP to award to the role.
     * @example roles.awardXp(role, 100);
     */
    awardXp(role: number | ServerRole, amount: number): Promise<void>;
}
/** The options for fetching server roles. */
export interface ServerRoleFetchManyOptions extends FetchManyOptions {
    /** Whether to cache the fetched member roles. */
    cacheMemberRoles?: boolean;
}
//# sourceMappingURL=ServerRoleManager.d.ts.map