1import type { ImportMap } from '@gez/import';
2import { type App } from './app';
3import type { ManifestJson } from './manifest-json';
4import { type ModuleConfig, type ParsedModuleConfig } from './module-config';
5import { type PackConfig, type ParsedPackConfig } from './pack-config';
6import { type ProjectPath } from './resolve-path';
7/**
8 * 详细说明,请看文档:https://dp-os.github.io/gez/api/gez.html
9 */
10export interface GezOptions {
11 /**
12 * 项目根目录,默认为当前执行命令的目录。
13 */
14 root?: string;
15 /**
16 * 是否是生产环境。
17 */
18 isProd?: boolean;
19 /**
20 * 动态路径的变量占位符。
21 */
22 basePathPlaceholder?: string | false;
23 /**
24 * 模块链接配置。
25 */
26 modules?: ModuleConfig;
27 /**
28 * 是否启用归档,等同于 npm pack。
29 */
30 packs?: PackConfig;
31 /**
32 * 创建开发应用,在执行 dev、build、preview 命令时调用。
33 */
34 createDevApp?: (gez: Gez) => Promise<App>;
35 /**
36 * 创建服务器,执行 dev、build、preview 命令时调用。
37 */
38 createServer?: (gez: Gez) => Promise<void>;
39 /**
40 * gez build 构建完成后,以生产模式执行的钩子。
41 */
42 postCompileProdHook?: (gez: Gez) => Promise<void>;
43}
44export declare enum COMMAND {
45 dev = "dev",
46 build = "build",
47 preview = "preview",
48 start = "start"
49}
50export declare class Gez {
51 /**
52 * 获取 src/entry.node.ts 文件导出的选项
53 */
54 static getSrcOptions(): Promise<GezOptions>;
55 /**
56 * 获取 dist/node/src/entry.node.js 文件导出的选项
57 */
58 static getDistOptions(): Promise<GezOptions>;
59 private readonly _options;
60 private _app;
61 private _command;
62 /**
63 * 根据传入的 modules 选项解析出来的对象。
64 */
65 readonly moduleConfig: ParsedModuleConfig;
66 readonly packConfig: ParsedPackConfig;
67 constructor(options?: GezOptions);
68 /**
69 * 服务名称,来源于 package.json 文件的 name 字段。
70 */
71 get name(): string;
72 /**
73 * 根据 name 生成的 JS 变量名称。
74 */
75 get varName(): string;
76 /**
77 * 项目根目录。
78 */
79 get root(): string;
80 /**
81 * 是否是生产环境。
82 */
83 get isProd(): boolean;
84 /**
85 * 根据服务名称生成的静态资源基本路径。
86 */
87 get basePath(): string;
88 /**
89 * 动态的 base 地址占位符。
90 */
91 get basePathPlaceholder(): string;
92 /**
93 * 当前执行的命令。
94 */
95 get command(): COMMAND;
96 /**
97 * 全部命令的枚举对象。
98 */
99 get COMMAND(): typeof COMMAND;
100 private get app();
101 /**
102 * 执行下面的命令,会创建服务器。
103 * - gez dev
104 * - gez start
105 * - gez preview
106 */
107 createServer(): Promise<void>;
108 /**
109 * 执行 gez build 命令回调。
110 */
111 postCompileProdHook(): Promise<boolean>;
112 /**
113 * 初始化实例。
114 */
115 init(command: COMMAND): Promise<boolean>;
116 /**
117 * 销毁实例,释放内存。
118 */
119 destroy(): Promise<boolean>;
120 /**
121 * 构建生产代码。
122 */
123 build(): Promise<boolean>;
124 /**
125 * 中间件。
126 */
127 get middleware(): import("./middleware").Middleware;
128 /**
129 * 调用 entry.server.ts 导出的渲染函数。
130 */
131 get render(): (options?: import("./render-context").RenderContextOptions) => Promise<import("./render-context").RenderContext>;
132 /**
133 * 解析项目路径。
134 */
135 resolvePath(projectPath: ProjectPath, ...args: string[]): string;
136 /**
137 * 同步写入一个文件。
138 */
139 writeSync(filepath: string, data: any): void;
140 /**
141 * 异步的读取一个 JSON 文件。
142 */
143 readJsonSync(filename: string): any;
144 /**
145 * 获取全部服务的清单文件。
146 */
147 getManifestList(target: 'client' | 'server'): ManifestJson[];
148 /**
149 * 获取服务端的 importmap 映射文件。
150 */
151 getServerImportMap(): ImportMap;
152}