import type { ReturnCache } from '../cache'; import type { GuildStructure, GuildTemplateStructure } from '../client'; import type { UsingClient } from '../commands'; import type { MethodContext, ObjectToLower } from '../common'; import type { APITemplate, RESTPatchAPIGuildTemplateJSONBody, RESTPostAPIGuildTemplatesJSONBody } from '../types'; import { Base } from './extra/Base'; export interface GuildTemplate extends Base, ObjectToLower { } export declare class GuildTemplate extends Base { constructor(client: UsingClient, data: APITemplate); guild(mode?: 'rest' | 'flow'): Promise>; guild(mode: 'cache'): ReturnCache | undefined>; fetch(): Promise; sync(): Promise; edit(body: RESTPatchAPIGuildTemplateJSONBody): Promise; delete(): Promise; static methods(ctx: MethodContext<{ guildId: string; }>): { fetch: (code: string) => Promise; list: () => Promise; create: (body: RESTPostAPIGuildTemplatesJSONBody) => Promise; sync: (code: string) => Promise; edit: (code: string, body: RESTPatchAPIGuildTemplateJSONBody) => Promise; delete: (code: string) => Promise; }; }