import type { BaseCDNUrlOptions } from '../api'; import type { ReturnCache } from '../cache'; import { type ApplicationEmojiStructure, type GuildEmojiStructure, type GuildStructure, type UserStructure } from '../client/transformers'; import type { UsingClient } from '../commands'; import { type EmojiShorter, type MethodContext, type ObjectToLower, type When } from '../common'; import type { APIApplicationEmoji, APIEmoji, RESTPatchAPIApplicationEmojiJSONBody, RESTPatchAPIGuildEmojiJSONBody } from '../types'; import { DiscordBase } from './extra/DiscordBase'; export interface Emoji extends DiscordBase, ObjectToLower> { } export declare class Emoji extends DiscordBase { user: When; constructor(client: UsingClient, data: APIEmoji); url(options?: BaseCDNUrlOptions): string; toString(): `<:${string}:${string}>` | ``; toJSON(): { id: string; name: string | null; animated: boolean; }; } export interface GuildEmoji extends Emoji { } export declare class GuildEmoji extends Emoji { readonly guildId: string; constructor(client: UsingClient, data: APIEmoji, guildId: string); guild(mode?: 'rest' | 'flow'): Promise>; guild(mode: 'cache'): ReturnCache | undefined>; edit(body: RESTPatchAPIGuildEmojiJSONBody, reason?: string): Promise; delete(reason?: string): Promise; fetch(force?: boolean): Promise; static methods({ client, guildId }: MethodContext<{ guildId: string; }>): { edit: (emojiId: string, body: RESTPatchAPIGuildEmojiJSONBody, reason?: string) => Promise; create: (body: Parameters[1]) => Promise; fetch: (emojiId: string, force?: boolean) => Promise; list: (force?: boolean) => Promise; }; } export declare class ApplicationEmoji extends Emoji { constructor(client: UsingClient, data: APIApplicationEmoji); fetch(): Promise; edit(body: RESTPatchAPIApplicationEmojiJSONBody): Promise; delete(): Promise; }