import type { ReturnCache } from '../cache'; import type { GuildRoleStructure, GuildStructure } from '../client'; import type { UsingClient } from '../commands'; import { type MethodContext, type ObjectToLower } from '../common'; import type { APIRole, RESTGetAPIGuildRoleMemberCountsResult, RESTPatchAPIGuildRoleJSONBody, RESTPatchAPIGuildRolePositionsJSONBody, RESTPostAPIGuildRoleJSONBody } from '../types'; import { DiscordBase } from './extra/DiscordBase'; import { PermissionsBitField } from './extra/Permissions'; export interface GuildRole extends DiscordBase, ObjectToLower> { } export declare class GuildRole extends DiscordBase { readonly guildId: string; permissions: PermissionsBitField; constructor(client: UsingClient, data: APIRole, guildId: string); guild(mode?: 'rest' | 'flow'): Promise>; guild(mode: 'cache'): ReturnCache | undefined>; fetch(force?: boolean): Promise; edit(body: RESTPatchAPIGuildRoleJSONBody, reason?: string): Promise; delete(reason?: string): Promise; toString(): `<@&${string}>`; static methods(ctx: MethodContext<{ guildId: string; }>): { create: (body: RESTPostAPIGuildRoleJSONBody) => Promise; list: (force?: boolean) => Promise; edit: (roleId: string, body: RESTPatchAPIGuildRoleJSONBody, reason?: string) => Promise; delete: (roleId: string, reason?: string) => Promise; editPositions: (body: RESTPatchAPIGuildRolePositionsJSONBody) => Promise; memberCounts: () => Promise; }; }