import type { ReturnCache } from '../cache'; import type { GuildBanStructure, GuildStructure } from '../client'; import type { UsingClient } from '../commands'; import { type BanOptions, type MethodContext, type ObjectToLower } from '../common'; import type { BanShorter } from '../common/shorters/bans'; import type { ActuallyBan, APIBan, RESTGetAPIGuildBansQuery } from '../types'; import { DiscordBase } from './extra/DiscordBase'; export interface GuildBan extends DiscordBase, ObjectToLower> { } export declare class GuildBan extends DiscordBase { readonly guildId: string; constructor(client: UsingClient, data: APIBan | ActuallyBan, guildId: string); create(options?: BanOptions): Promise; remove(reason?: string): Promise; guild(mode?: 'rest' | 'flow'): Promise>; guild(mode: 'cache'): ReturnCache | undefined>; fetch(force?: boolean): Promise; toString(): `<@${string}>`; static methods({ client, guildId }: MethodContext<{ guildId: string; }>): { fetch: (userId: string, force?: boolean) => Promise; list: (query?: RESTGetAPIGuildBansQuery, force?: boolean) => Promise; create: (memberId: string, options?: Parameters[2]) => Promise; remove: (memberId: string, reason?: string) => Promise; bulkCreate: (body: Parameters[1], reason?: string) => Promise; }; }