@arkts/image-manager 0.3.4 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,4 +1,6 @@
1
- import { a as OS, c as Stringifiable, i as DeviceType, n as ProductConfigItem, o as PascalCaseDeviceType, r as Arch, s as SnakecaseDeviceType, t as ProductConfig } from "./product-config-2xNDbvax.cjs";
1
+ import { a as ParentEmulatorSnakecaseDeviceType, c as SnakecaseDeviceType, d as isPhoneAllSnakecaseDeviceType, i as PCAllSnakecaseDeviceType, l as Stringifiable, n as DeviceType, o as PascalCaseDeviceType, r as OS, s as PhoneAllSnakecaseDeviceType, t as Arch, u as isPCAllSnakecaseDeviceType } from "./types-CayFonNb.cjs";
2
+ import { a as GroupPhoneAllEmulatorConfigItem, c as PhoneAllEmulatorConfigItem, i as GroupPCAllEmulatorConfigItem, n as EmulatorConfig, o as PCAllEmulatorConfigItem, r as EmulatorConfigItem, s as ParentEmulatorConfigItem, t as BaseEmulatorConfigItem } from "./emulator-config-HeXlMqZ-.cjs";
3
+ import { n as ProductConfigItem, t as ProductConfig } from "./product-config-DuzOJEvZ.cjs";
2
4
  import { AxiosProgressEvent } from "axios";
3
5
  import { Emitter } from "mitt";
4
6
  import * as node_child_process0 from "node:child_process";
@@ -22,6 +24,7 @@ interface LocalImage extends BaseImage, Stringifiable<LocalImage.Stringifiable>
22
24
  stop(device: Device): Promise<node_child_process0.ChildProcess>;
23
25
  buildStartCommand(device: Device): Promise<string>;
24
26
  buildStopCommand(device: Device): Promise<string>;
27
+ getPascalCaseDeviceType(): Promise<PascalCaseDeviceType | undefined>;
25
28
  getProductConfig(): Promise<ProductConfigItem[]>;
26
29
  }
27
30
  declare namespace LocalImage {
@@ -179,6 +182,13 @@ interface ImageManager {
179
182
  * @param existSkip - If the file exists, skip writing. Defaults to `false`.
180
183
  */
181
184
  writeDefaultProductConfig(existSkip?: boolean): Promise<void>;
185
+ /**
186
+ * Get the emulator config.
187
+ *
188
+ * It will automatically read from the `imageBasePath/emulatorConfig.json` file if it exists.
189
+ * If the file does not exist, it will use the default emulator config.
190
+ */
191
+ getEmulatorConfig(): Promise<EmulatorConfig>;
182
192
  /**
183
193
  * Get the operating system.
184
194
  */
@@ -256,35 +266,129 @@ declare namespace BaseImage {
256
266
  type Image = LocalImage | RemoteImage;
257
267
  type ImageType = 'local' | 'remote';
258
268
  //#endregion
259
- //#region src/screens/screen.d.ts
260
- interface Screen {
269
+ //#region src/screens/base-screen.d.ts
270
+ interface BaseScreen<T extends BaseScreen.Options = BaseScreen.Options> extends Stringifiable<T> {
271
+ getWidth(): number;
272
+ setWidth(width: number): this;
273
+ getHeight(): number;
274
+ setHeight(height: number): this;
261
275
  getDiagonal(): number;
262
276
  setDiagonal(diagonal: number): this;
277
+ }
278
+ declare namespace BaseScreen {
279
+ interface Options {
280
+ width: number;
281
+ height: number;
282
+ diagonal: number;
283
+ }
284
+ }
285
+ //#endregion
286
+ //#region src/screens/cover-screen.d.ts
287
+ interface CoverScreen<T extends CoverScreen.Options = CoverScreen.Options> extends BaseScreen<T> {
288
+ getScreen(): Screen;
289
+ }
290
+ declare namespace CoverScreen {
291
+ interface Options extends BaseScreen.Options {}
292
+ interface Stringifiable extends Options {}
293
+ function is(value: unknown): value is CoverScreen;
294
+ }
295
+ declare function createCoverScreen(options: CoverScreen.Options, screen: Screen): CoverScreen;
296
+ //#endregion
297
+ //#region src/screens/double-screen.d.ts
298
+ interface DoubleScreen {
299
+ getScreen(): Screen;
300
+ }
301
+ declare namespace DoubleScreen {
302
+ interface Options extends BaseScreen.Options {}
303
+ interface Stringifiable extends Options {}
304
+ function is(value: unknown): value is DoubleScreen;
305
+ }
306
+ declare function createDoubleScreen(options: DoubleScreen.Options, screen: Screen): DoubleScreen;
307
+ //#endregion
308
+ //#region src/screens/outer-double-screen.d.ts
309
+ interface OuterDoubleScreen extends OuterScreen {
310
+ getOuterScreen(): OuterScreen;
311
+ }
312
+ declare namespace OuterDoubleScreen {
313
+ interface Options extends OuterScreen.Options {}
314
+ interface Stringifiable extends Options {}
315
+ function is(value: unknown): value is OuterDoubleScreen;
316
+ }
317
+ declare function createOuterDoubleScreen(options: OuterDoubleScreen.Options, outerScreen: OuterScreen): OuterDoubleScreen;
318
+ //#endregion
319
+ //#region src/screens/outer-screen.d.ts
320
+ interface OuterScreen<T extends OuterScreen.Options = OuterScreen.Options> extends BaseScreen<T> {
321
+ getScreen(): Screen;
322
+ getOuterDoubleScreen(): OuterDoubleScreen | undefined;
323
+ setOuterDoubleScreen(outerDoubleScreen: OuterDoubleScreen | OuterDoubleScreen.Options): this;
324
+ }
325
+ declare namespace OuterScreen {
326
+ interface Options extends BaseScreen.Options {
327
+ double?: OuterDoubleScreen | OuterDoubleScreen.Options;
328
+ }
329
+ interface Stringifiable extends Options {}
330
+ function is(value: unknown): value is OuterScreen;
331
+ }
332
+ declare function createOuterScreen(options: OuterScreen.Options, screen: Screen): OuterScreen;
333
+ //#endregion
334
+ //#region src/screens/single-screen.d.ts
335
+ interface SingleScreen<T extends SingleScreen.Options = SingleScreen.Options> extends BaseScreen<T> {
336
+ getScreen(): Screen;
337
+ }
338
+ declare namespace SingleScreen {
339
+ interface Options extends BaseScreen.Options {}
340
+ interface Stringifiable extends Options {}
341
+ function is(value: unknown): value is SingleScreen;
342
+ }
343
+ declare function createSingleScreen(options: SingleScreen.Options, screen: Screen): SingleScreen;
344
+ //#endregion
345
+ //#region src/screens/screen.d.ts
346
+ interface Screen<T extends Screen.Options = Screen.Options> extends BaseScreen<T> {
347
+ getScreen(): this;
348
+ getApiVersion(): number;
349
+ getSnakecaseDeviceType(): SnakecaseDeviceType;
350
+ getOuterScreen(): OuterScreen | undefined;
351
+ setOuterScreen(outerScreen: OuterScreen | OuterScreen.Options): this;
352
+ getCoverScreen(): CoverScreen | undefined;
353
+ setCoverScreen(coverScreen: CoverScreen | CoverScreen.Options): this;
354
+ getSingleScreen(): SingleScreen | undefined;
355
+ setSingleScreen(singleScreen: SingleScreen | SingleScreen.Options): this;
356
+ getDoubleScreen(): DoubleScreen | undefined;
357
+ setDoubleScreen(doubleScreen: DoubleScreen | DoubleScreen.Options): this;
263
358
  getDensity(): number;
264
359
  setDensity(density: number): this;
265
- getHeight(): number;
266
- setHeight(height: number): this;
267
- getWidth(): number;
268
- setWidth(width: number): this;
269
- toJSON(): Screen.Options;
270
360
  }
271
361
  declare namespace Screen {
272
- interface Options {
273
- diagonal: number;
362
+ interface Options extends BaseScreen.Options {
274
363
  density: number;
275
- height: number;
276
- width: number;
364
+ apiVersion: number;
365
+ deviceType: SnakecaseDeviceType;
366
+ outer?: OuterScreen | OuterScreen.Options;
367
+ cover?: CoverScreen | CoverScreen.Options;
368
+ single?: SingleScreen | SingleScreen.Options;
369
+ double?: DoubleScreen | DoubleScreen.Options;
277
370
  }
278
371
  interface Stringifiable extends Options {}
372
+ function is(value: unknown): value is Screen;
279
373
  }
280
374
  declare function createScreen(options: Screen.Options): Screen;
281
375
  //#endregion
376
+ //#region src/screens/emulator-preset.d.ts
377
+ interface EmulatorPreset extends Stringifiable<EmulatorPreset.Stringifiable> {
378
+ getScreenPreset(): ScreenPreset;
379
+ getEmulatorConfig(): EmulatorConfigItem;
380
+ }
381
+ declare namespace EmulatorPreset {
382
+ interface Stringifiable {
383
+ emulatorConfig: EmulatorConfigItem;
384
+ }
385
+ }
386
+ //#endregion
282
387
  //#region src/screens/product-preset.d.ts
283
- interface ProductPreset {
388
+ interface ProductPreset extends Stringifiable<ProductPreset.Stringifiable> {
389
+ getScreenPreset(): ScreenPreset;
284
390
  getProductConfig(): ProductConfigItem;
285
391
  getDeviceType(): PascalCaseDeviceType;
286
- toScreen(): Screen;
287
- toJSON(): ProductPreset.Stringifiable;
288
392
  }
289
393
  declare namespace ProductPreset {
290
394
  interface Stringifiable {
@@ -292,7 +396,43 @@ declare namespace ProductPreset {
292
396
  deviceType: PascalCaseDeviceType;
293
397
  }
294
398
  }
295
- declare function createProductPreset(productConfig: ProductConfigItem, deviceType: PascalCaseDeviceType): Promise<ProductPreset>;
399
+ //#endregion
400
+ //#region src/screens/screen-preset.d.ts
401
+ interface ScreenPreset extends Stringifiable<ScreenPreset.Stringifiable> {
402
+ getScreen(): Screen;
403
+ getEmulatorPreset(): EmulatorPreset | undefined;
404
+ getProductPreset(): ProductPreset | undefined;
405
+ }
406
+ declare namespace ScreenPreset {
407
+ interface ScreenOptions {
408
+ screen: Screen;
409
+ productConfig?: Partial<ProductConfig>;
410
+ emulatorConfig?: EmulatorConfig;
411
+ }
412
+ interface ProductOptions {
413
+ image: LocalImage;
414
+ productConfig: ProductConfigItem;
415
+ pascalCaseDeviceType: PascalCaseDeviceType;
416
+ }
417
+ type Options = ScreenOptions | ProductOptions;
418
+ interface Stringifiable {
419
+ emulatorPreset?: EmulatorPreset.Stringifiable;
420
+ productPreset?: ProductPreset.Stringifiable;
421
+ }
422
+ function is(value: unknown): value is ScreenPreset;
423
+ }
424
+ /**
425
+ * Create a screen preset with screen.
426
+ *
427
+ * @param options - The options to create a screen preset.
428
+ */
429
+ declare function createScreenPreset(options: ScreenPreset.ScreenOptions): ScreenPreset;
430
+ /**
431
+ * Create a screen preset with product options and local image.
432
+ *
433
+ * @param options - The options to create a screen preset.
434
+ */
435
+ declare function createScreenPreset(options: ScreenPreset.ProductOptions): ScreenPreset;
296
436
  //#endregion
297
437
  //#region src/devices/list.d.ts
298
438
  declare enum DevModel {
@@ -415,7 +555,7 @@ interface FullDeployedImageOptions extends DeployedImageOptions {
415
555
  *
416
556
  * @example 'wearable', 'phone', 'tablet'
417
557
  */
418
- 'type': 'wearable' | 'phone' | 'tablet' | '2in1' | 'tv' | (string & {});
558
+ 'type': SnakecaseDeviceType;
419
559
  /**
420
560
  * Architecture.
421
561
  *
@@ -493,6 +633,8 @@ interface FullDeployedImageOptions extends DeployedImageOptions {
493
633
  //#region src/devices/device.d.ts
494
634
  interface Device {
495
635
  getOptions(): Device.Options;
636
+ getScreen(): Screen;
637
+ getScreenPreset(): ScreenPreset | undefined;
496
638
  getImage(): LocalImage;
497
639
  setUuid(uuid: Device.UUID): this;
498
640
  getUuid(): Device.UUID;
@@ -511,7 +653,7 @@ declare namespace Device {
511
653
  cpuNumber: number;
512
654
  diskSize: number;
513
655
  memorySize: number;
514
- screen: Screen | ProductPreset;
656
+ screen: Screen | ScreenPreset;
515
657
  }
516
658
  interface IniOptions {
517
659
  /** @default CN */
@@ -527,4 +669,4 @@ declare namespace Device {
527
669
  }
528
670
  }
529
671
  //#endregion
530
- export { Arch, DeployError, DeployedDevModel, DeployedImageConfig, DeployedImageConfigWithProductName, DeployedImageOptions, DevModel, Device, DeviceType, FullDeployedImageOptions, Image, type ImageManager, type ImageManagerOptions, ImageType, LocalImage, OS, PascalCaseDeviceType, type ProductConfig, type ProductConfigItem, ProductNameable, ProductPreset, RemoteImage, RequestUrlError, Screen, SnakecaseDeviceType, Stringifiable, createImageManager, createProductPreset, createScreen, version };
672
+ export { Arch, BaseEmulatorConfigItem, CoverScreen, DeployError, DeployedDevModel, DeployedImageConfig, DeployedImageConfigWithProductName, DeployedImageOptions, DevModel, Device, DeviceType, DoubleScreen, EmulatorConfig, EmulatorConfigItem, EmulatorPreset, FullDeployedImageOptions, GroupPCAllEmulatorConfigItem, GroupPhoneAllEmulatorConfigItem, Image, type ImageManager, type ImageManagerOptions, ImageType, LocalImage, OS, OuterDoubleScreen, OuterScreen, PCAllEmulatorConfigItem, PCAllSnakecaseDeviceType, ParentEmulatorConfigItem, ParentEmulatorSnakecaseDeviceType, PascalCaseDeviceType, PhoneAllEmulatorConfigItem, PhoneAllSnakecaseDeviceType, type ProductConfig, type ProductConfigItem, ProductNameable, ProductPreset, RemoteImage, RequestUrlError, Screen, ScreenPreset, SingleScreen, SnakecaseDeviceType, Stringifiable, createCoverScreen, createDoubleScreen, createImageManager, createOuterDoubleScreen, createOuterScreen, createScreen, createScreenPreset, createSingleScreen, isPCAllSnakecaseDeviceType, isPhoneAllSnakecaseDeviceType, version };
package/dist/index.d.mts CHANGED
@@ -1,4 +1,6 @@
1
- import { a as OS, c as Stringifiable, i as DeviceType, n as ProductConfigItem, o as PascalCaseDeviceType, r as Arch, s as SnakecaseDeviceType, t as ProductConfig } from "./product-config-CDvEXtfy.mjs";
1
+ import { a as ParentEmulatorSnakecaseDeviceType, c as SnakecaseDeviceType, d as isPhoneAllSnakecaseDeviceType, i as PCAllSnakecaseDeviceType, l as Stringifiable, n as DeviceType, o as PascalCaseDeviceType, r as OS, s as PhoneAllSnakecaseDeviceType, t as Arch, u as isPCAllSnakecaseDeviceType } from "./types-DD8_iqBV.mjs";
2
+ import { a as GroupPhoneAllEmulatorConfigItem, c as PhoneAllEmulatorConfigItem, i as GroupPCAllEmulatorConfigItem, n as EmulatorConfig, o as PCAllEmulatorConfigItem, r as EmulatorConfigItem, s as ParentEmulatorConfigItem, t as BaseEmulatorConfigItem } from "./emulator-config-DbI3FRE5.mjs";
3
+ import { n as ProductConfigItem, t as ProductConfig } from "./product-config-ByDVg0-5.mjs";
2
4
  import { AxiosProgressEvent } from "axios";
3
5
  import { Emitter } from "mitt";
4
6
  import progress from "progress-stream";
@@ -22,6 +24,7 @@ interface LocalImage extends BaseImage, Stringifiable<LocalImage.Stringifiable>
22
24
  stop(device: Device): Promise<node_child_process0.ChildProcess>;
23
25
  buildStartCommand(device: Device): Promise<string>;
24
26
  buildStopCommand(device: Device): Promise<string>;
27
+ getPascalCaseDeviceType(): Promise<PascalCaseDeviceType | undefined>;
25
28
  getProductConfig(): Promise<ProductConfigItem[]>;
26
29
  }
27
30
  declare namespace LocalImage {
@@ -179,6 +182,13 @@ interface ImageManager {
179
182
  * @param existSkip - If the file exists, skip writing. Defaults to `false`.
180
183
  */
181
184
  writeDefaultProductConfig(existSkip?: boolean): Promise<void>;
185
+ /**
186
+ * Get the emulator config.
187
+ *
188
+ * It will automatically read from the `imageBasePath/emulatorConfig.json` file if it exists.
189
+ * If the file does not exist, it will use the default emulator config.
190
+ */
191
+ getEmulatorConfig(): Promise<EmulatorConfig>;
182
192
  /**
183
193
  * Get the operating system.
184
194
  */
@@ -256,35 +266,129 @@ declare namespace BaseImage {
256
266
  type Image = LocalImage | RemoteImage;
257
267
  type ImageType = 'local' | 'remote';
258
268
  //#endregion
259
- //#region src/screens/screen.d.ts
260
- interface Screen {
269
+ //#region src/screens/base-screen.d.ts
270
+ interface BaseScreen<T extends BaseScreen.Options = BaseScreen.Options> extends Stringifiable<T> {
271
+ getWidth(): number;
272
+ setWidth(width: number): this;
273
+ getHeight(): number;
274
+ setHeight(height: number): this;
261
275
  getDiagonal(): number;
262
276
  setDiagonal(diagonal: number): this;
277
+ }
278
+ declare namespace BaseScreen {
279
+ interface Options {
280
+ width: number;
281
+ height: number;
282
+ diagonal: number;
283
+ }
284
+ }
285
+ //#endregion
286
+ //#region src/screens/cover-screen.d.ts
287
+ interface CoverScreen<T extends CoverScreen.Options = CoverScreen.Options> extends BaseScreen<T> {
288
+ getScreen(): Screen;
289
+ }
290
+ declare namespace CoverScreen {
291
+ interface Options extends BaseScreen.Options {}
292
+ interface Stringifiable extends Options {}
293
+ function is(value: unknown): value is CoverScreen;
294
+ }
295
+ declare function createCoverScreen(options: CoverScreen.Options, screen: Screen): CoverScreen;
296
+ //#endregion
297
+ //#region src/screens/double-screen.d.ts
298
+ interface DoubleScreen {
299
+ getScreen(): Screen;
300
+ }
301
+ declare namespace DoubleScreen {
302
+ interface Options extends BaseScreen.Options {}
303
+ interface Stringifiable extends Options {}
304
+ function is(value: unknown): value is DoubleScreen;
305
+ }
306
+ declare function createDoubleScreen(options: DoubleScreen.Options, screen: Screen): DoubleScreen;
307
+ //#endregion
308
+ //#region src/screens/outer-double-screen.d.ts
309
+ interface OuterDoubleScreen extends OuterScreen {
310
+ getOuterScreen(): OuterScreen;
311
+ }
312
+ declare namespace OuterDoubleScreen {
313
+ interface Options extends OuterScreen.Options {}
314
+ interface Stringifiable extends Options {}
315
+ function is(value: unknown): value is OuterDoubleScreen;
316
+ }
317
+ declare function createOuterDoubleScreen(options: OuterDoubleScreen.Options, outerScreen: OuterScreen): OuterDoubleScreen;
318
+ //#endregion
319
+ //#region src/screens/outer-screen.d.ts
320
+ interface OuterScreen<T extends OuterScreen.Options = OuterScreen.Options> extends BaseScreen<T> {
321
+ getScreen(): Screen;
322
+ getOuterDoubleScreen(): OuterDoubleScreen | undefined;
323
+ setOuterDoubleScreen(outerDoubleScreen: OuterDoubleScreen | OuterDoubleScreen.Options): this;
324
+ }
325
+ declare namespace OuterScreen {
326
+ interface Options extends BaseScreen.Options {
327
+ double?: OuterDoubleScreen | OuterDoubleScreen.Options;
328
+ }
329
+ interface Stringifiable extends Options {}
330
+ function is(value: unknown): value is OuterScreen;
331
+ }
332
+ declare function createOuterScreen(options: OuterScreen.Options, screen: Screen): OuterScreen;
333
+ //#endregion
334
+ //#region src/screens/single-screen.d.ts
335
+ interface SingleScreen<T extends SingleScreen.Options = SingleScreen.Options> extends BaseScreen<T> {
336
+ getScreen(): Screen;
337
+ }
338
+ declare namespace SingleScreen {
339
+ interface Options extends BaseScreen.Options {}
340
+ interface Stringifiable extends Options {}
341
+ function is(value: unknown): value is SingleScreen;
342
+ }
343
+ declare function createSingleScreen(options: SingleScreen.Options, screen: Screen): SingleScreen;
344
+ //#endregion
345
+ //#region src/screens/screen.d.ts
346
+ interface Screen<T extends Screen.Options = Screen.Options> extends BaseScreen<T> {
347
+ getScreen(): this;
348
+ getApiVersion(): number;
349
+ getSnakecaseDeviceType(): SnakecaseDeviceType;
350
+ getOuterScreen(): OuterScreen | undefined;
351
+ setOuterScreen(outerScreen: OuterScreen | OuterScreen.Options): this;
352
+ getCoverScreen(): CoverScreen | undefined;
353
+ setCoverScreen(coverScreen: CoverScreen | CoverScreen.Options): this;
354
+ getSingleScreen(): SingleScreen | undefined;
355
+ setSingleScreen(singleScreen: SingleScreen | SingleScreen.Options): this;
356
+ getDoubleScreen(): DoubleScreen | undefined;
357
+ setDoubleScreen(doubleScreen: DoubleScreen | DoubleScreen.Options): this;
263
358
  getDensity(): number;
264
359
  setDensity(density: number): this;
265
- getHeight(): number;
266
- setHeight(height: number): this;
267
- getWidth(): number;
268
- setWidth(width: number): this;
269
- toJSON(): Screen.Options;
270
360
  }
271
361
  declare namespace Screen {
272
- interface Options {
273
- diagonal: number;
362
+ interface Options extends BaseScreen.Options {
274
363
  density: number;
275
- height: number;
276
- width: number;
364
+ apiVersion: number;
365
+ deviceType: SnakecaseDeviceType;
366
+ outer?: OuterScreen | OuterScreen.Options;
367
+ cover?: CoverScreen | CoverScreen.Options;
368
+ single?: SingleScreen | SingleScreen.Options;
369
+ double?: DoubleScreen | DoubleScreen.Options;
277
370
  }
278
371
  interface Stringifiable extends Options {}
372
+ function is(value: unknown): value is Screen;
279
373
  }
280
374
  declare function createScreen(options: Screen.Options): Screen;
281
375
  //#endregion
376
+ //#region src/screens/emulator-preset.d.ts
377
+ interface EmulatorPreset extends Stringifiable<EmulatorPreset.Stringifiable> {
378
+ getScreenPreset(): ScreenPreset;
379
+ getEmulatorConfig(): EmulatorConfigItem;
380
+ }
381
+ declare namespace EmulatorPreset {
382
+ interface Stringifiable {
383
+ emulatorConfig: EmulatorConfigItem;
384
+ }
385
+ }
386
+ //#endregion
282
387
  //#region src/screens/product-preset.d.ts
283
- interface ProductPreset {
388
+ interface ProductPreset extends Stringifiable<ProductPreset.Stringifiable> {
389
+ getScreenPreset(): ScreenPreset;
284
390
  getProductConfig(): ProductConfigItem;
285
391
  getDeviceType(): PascalCaseDeviceType;
286
- toScreen(): Screen;
287
- toJSON(): ProductPreset.Stringifiable;
288
392
  }
289
393
  declare namespace ProductPreset {
290
394
  interface Stringifiable {
@@ -292,7 +396,43 @@ declare namespace ProductPreset {
292
396
  deviceType: PascalCaseDeviceType;
293
397
  }
294
398
  }
295
- declare function createProductPreset(productConfig: ProductConfigItem, deviceType: PascalCaseDeviceType): Promise<ProductPreset>;
399
+ //#endregion
400
+ //#region src/screens/screen-preset.d.ts
401
+ interface ScreenPreset extends Stringifiable<ScreenPreset.Stringifiable> {
402
+ getScreen(): Screen;
403
+ getEmulatorPreset(): EmulatorPreset | undefined;
404
+ getProductPreset(): ProductPreset | undefined;
405
+ }
406
+ declare namespace ScreenPreset {
407
+ interface ScreenOptions {
408
+ screen: Screen;
409
+ productConfig?: Partial<ProductConfig>;
410
+ emulatorConfig?: EmulatorConfig;
411
+ }
412
+ interface ProductOptions {
413
+ image: LocalImage;
414
+ productConfig: ProductConfigItem;
415
+ pascalCaseDeviceType: PascalCaseDeviceType;
416
+ }
417
+ type Options = ScreenOptions | ProductOptions;
418
+ interface Stringifiable {
419
+ emulatorPreset?: EmulatorPreset.Stringifiable;
420
+ productPreset?: ProductPreset.Stringifiable;
421
+ }
422
+ function is(value: unknown): value is ScreenPreset;
423
+ }
424
+ /**
425
+ * Create a screen preset with screen.
426
+ *
427
+ * @param options - The options to create a screen preset.
428
+ */
429
+ declare function createScreenPreset(options: ScreenPreset.ScreenOptions): ScreenPreset;
430
+ /**
431
+ * Create a screen preset with product options and local image.
432
+ *
433
+ * @param options - The options to create a screen preset.
434
+ */
435
+ declare function createScreenPreset(options: ScreenPreset.ProductOptions): ScreenPreset;
296
436
  //#endregion
297
437
  //#region src/devices/list.d.ts
298
438
  declare enum DevModel {
@@ -415,7 +555,7 @@ interface FullDeployedImageOptions extends DeployedImageOptions {
415
555
  *
416
556
  * @example 'wearable', 'phone', 'tablet'
417
557
  */
418
- 'type': 'wearable' | 'phone' | 'tablet' | '2in1' | 'tv' | (string & {});
558
+ 'type': SnakecaseDeviceType;
419
559
  /**
420
560
  * Architecture.
421
561
  *
@@ -493,6 +633,8 @@ interface FullDeployedImageOptions extends DeployedImageOptions {
493
633
  //#region src/devices/device.d.ts
494
634
  interface Device {
495
635
  getOptions(): Device.Options;
636
+ getScreen(): Screen;
637
+ getScreenPreset(): ScreenPreset | undefined;
496
638
  getImage(): LocalImage;
497
639
  setUuid(uuid: Device.UUID): this;
498
640
  getUuid(): Device.UUID;
@@ -511,7 +653,7 @@ declare namespace Device {
511
653
  cpuNumber: number;
512
654
  diskSize: number;
513
655
  memorySize: number;
514
- screen: Screen | ProductPreset;
656
+ screen: Screen | ScreenPreset;
515
657
  }
516
658
  interface IniOptions {
517
659
  /** @default CN */
@@ -527,4 +669,4 @@ declare namespace Device {
527
669
  }
528
670
  }
529
671
  //#endregion
530
- export { Arch, DeployError, DeployedDevModel, DeployedImageConfig, DeployedImageConfigWithProductName, DeployedImageOptions, DevModel, type Device, DeviceType, FullDeployedImageOptions, type Image, type ImageManager, type ImageManagerOptions, type ImageType, type LocalImage, OS, PascalCaseDeviceType, type ProductConfig, type ProductConfigItem, ProductNameable, ProductPreset, type RemoteImage, RequestUrlError, Screen, SnakecaseDeviceType, Stringifiable, createImageManager, createProductPreset, createScreen, version };
672
+ export { Arch, BaseEmulatorConfigItem, type CoverScreen, DeployError, DeployedDevModel, DeployedImageConfig, DeployedImageConfigWithProductName, DeployedImageOptions, DevModel, type Device, DeviceType, type DoubleScreen, EmulatorConfig, EmulatorConfigItem, type EmulatorPreset, FullDeployedImageOptions, GroupPCAllEmulatorConfigItem, GroupPhoneAllEmulatorConfigItem, type Image, type ImageManager, type ImageManagerOptions, type ImageType, type LocalImage, OS, type OuterDoubleScreen, type OuterScreen, PCAllEmulatorConfigItem, PCAllSnakecaseDeviceType, ParentEmulatorConfigItem, ParentEmulatorSnakecaseDeviceType, PascalCaseDeviceType, PhoneAllEmulatorConfigItem, PhoneAllSnakecaseDeviceType, type ProductConfig, type ProductConfigItem, ProductNameable, type ProductPreset, type RemoteImage, RequestUrlError, type Screen, type ScreenPreset, type SingleScreen, SnakecaseDeviceType, Stringifiable, createCoverScreen, createDoubleScreen, createImageManager, createOuterDoubleScreen, createOuterScreen, createScreen, createScreenPreset, createSingleScreen, isPCAllSnakecaseDeviceType, isPhoneAllSnakecaseDeviceType, version };