import { type EntityNamesRecord } from "../entity/entity-manager"; import { type TemplateKey, type TemplateOptions } from "../types/types"; export type RenderedTemplate = { target: string; path: string; body: string; importKeys: string[]; customHeaders?: string[]; preTemplates?: { key: TemplateKey; options: TemplateOptions[TemplateKey]; }[]; }; /** * 템플릿을 나타내는 베이스 클래스입니다. */ export declare abstract class Template { key: TemplateKey; private static templates; constructor(key: TemplateKey); /** * 템플릿 구현체가 있는 디렉토리의 모든 템플릿을 로드합니다. * 템플릿이 필요(Template.find)해지기 전에 최소 한 번 호출해주셔야 합니다. * @deprecated TemplateManager.autoload() 사용 권장 */ static autoload(): Promise; /** * 템플릿 **인스턴스**를 key로 찾아옵니다. * 만약 템플릿이 로드(autoload)되지 않았거나 찾는 템플릿이 없다면 에러를 던집니다. * @deprecated TemplateManager.get() 사용 권장 * @param key * @returns */ static find(key: TemplateKey): Template; /** * 내부용: TemplateManager에서 사용 */ static _getTemplatesMap(): Map; /** * 내부용: TemplateManager에서 사용 */ static _clearTemplates(): void; abstract render(options: TemplateOptions[TemplateKey], ...extra: unknown[]): RenderedTemplate | Promise; abstract getTargetAndPath(names?: EntityNamesRecord, ...extra: unknown[]): { target: string; path: string; }; /** * 이 템플릿이 필요로 하는 i18n dict 키를 반환합니다. * 스캐폴딩 시 여러 템플릿의 키를 모아서 한 번에 처리합니다. * * @param options - 템플릿 옵션 * @returns 필요한 dict 키 배열 또는 null (i18n 불필요 시) */ getRequiredDictKeys(): string[] | null; } //# sourceMappingURL=template.d.ts.map