import type { GuildStructure, RawFile, StickerStructure, UsingClient } from '..'; import type { Attachment, AttachmentBuilder } from '../builders'; import type { ReturnCache } from '../cache'; import { type UserStructure } from '../client/transformers'; import type { MethodContext, ObjectToLower } from '../common'; import type { APISticker, RESTPatchAPIGuildStickerJSONBody, RESTPostAPIGuildStickerFormDataBody } from '../types'; import { DiscordBase } from './extra/DiscordBase'; export interface Sticker extends DiscordBase, ObjectToLower> { } export declare class Sticker extends DiscordBase { user?: UserStructure; constructor(client: UsingClient, data: APISticker); guild(mode?: 'rest' | 'flow'): Promise | undefined>; guild(mode: 'cache'): ReturnCache | undefined>; edit(body: RESTPatchAPIGuildStickerJSONBody, reason?: string): Promise; fetch(force?: boolean): Promise; delete(reason?: string): Promise; static methods({ client, guildId }: MethodContext<{ guildId: string; }>): { list: () => Promise; create: (payload: CreateStickerBodyRequest, reason?: string) => Promise; edit: (stickerId: string, body: RESTPatchAPIGuildStickerJSONBody, reason?: string) => Promise; fetch: (stickerId: string, force?: boolean) => Promise; delete: (stickerId: string, reason?: string) => Promise; }; } export interface CreateStickerBodyRequest extends Omit { file: Attachment | AttachmentBuilder | RawFile; }