import type { Logger } from "@akashic/akashic-cli-commons/lib/Logger.js"; export interface TemplateFileEntry { src: string; dst?: string; } export interface TemplateExtensionEntry { /** * モジュールの名前。 */ module: string; /** * モジュールのバージョン。 * 省略された場合、 `latest` 。 */ version?: string; } export interface TemplateConfig { /** * このテンプレートのフォーマット。現在 "0" のみがサポートされている。 * 省略された場合、 `"0"` 。 */ formatVersion?: "0"; /** * コピーするファイルの指定。 * 省略された場合、直下の全て (ただし template.json を除く) がコピーされる。 * 省略された場合、直下に game.json がなければならない。 */ files?: TemplateFileEntry[]; /** * コピーから除外するファイルの指定。glob 形式のワイルドカードがサポートされる。 * 省略した場合は files で指定されたすべてのファイルがコピーさせる。 */ exclude?: string[]; /** * 中に含まれる game.json のパス。 * 省略された場合、 "game.json" 。 */ gameJson?: string; /** * テンプレートからのゲーム生成の後に表示する説明文。 * `null` なら何も表示しない。 * 省略された場合、 `null` 。 */ guideMessage?: string | null; /** * このテンプレートで利用する拡張機能。 * 省略された場合、空配列。 */ extensions?: TemplateExtensionEntry[]; } type IsPrimitive = T extends Array ? never : T extends { [key: string]: any; } ? never : T; type DeepRequired = { [P in keyof T]-?: T[P] extends IsPrimitive ? T[P] : DeepRequired; }; export type NormalizedTemplateConfig = DeepRequired>; export declare function completeTemplateConfig(templateConfig: TemplateConfig, baseDir: string, logger?: Logger): Promise; export {};