@arkts/image-manager 0.3.5 → 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";
@@ -180,6 +182,13 @@ interface ImageManager {
180
182
  * @param existSkip - If the file exists, skip writing. Defaults to `false`.
181
183
  */
182
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>;
183
192
  /**
184
193
  * Get the operating system.
185
194
  */
@@ -257,35 +266,129 @@ declare namespace BaseImage {
257
266
  type Image = LocalImage | RemoteImage;
258
267
  type ImageType = 'local' | 'remote';
259
268
  //#endregion
260
- //#region src/screens/screen.d.ts
261
- 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;
262
275
  getDiagonal(): number;
263
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;
264
358
  getDensity(): number;
265
359
  setDensity(density: number): this;
266
- getHeight(): number;
267
- setHeight(height: number): this;
268
- getWidth(): number;
269
- setWidth(width: number): this;
270
- toJSON(): Screen.Options;
271
360
  }
272
361
  declare namespace Screen {
273
- interface Options {
274
- diagonal: number;
362
+ interface Options extends BaseScreen.Options {
275
363
  density: number;
276
- height: number;
277
- 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;
278
370
  }
279
371
  interface Stringifiable extends Options {}
372
+ function is(value: unknown): value is Screen;
280
373
  }
281
374
  declare function createScreen(options: Screen.Options): Screen;
282
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
283
387
  //#region src/screens/product-preset.d.ts
284
- interface ProductPreset {
388
+ interface ProductPreset extends Stringifiable<ProductPreset.Stringifiable> {
389
+ getScreenPreset(): ScreenPreset;
285
390
  getProductConfig(): ProductConfigItem;
286
391
  getDeviceType(): PascalCaseDeviceType;
287
- toScreen(): Screen;
288
- toJSON(): ProductPreset.Stringifiable;
289
392
  }
290
393
  declare namespace ProductPreset {
291
394
  interface Stringifiable {
@@ -293,7 +396,43 @@ declare namespace ProductPreset {
293
396
  deviceType: PascalCaseDeviceType;
294
397
  }
295
398
  }
296
- 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;
297
436
  //#endregion
298
437
  //#region src/devices/list.d.ts
299
438
  declare enum DevModel {
@@ -416,7 +555,7 @@ interface FullDeployedImageOptions extends DeployedImageOptions {
416
555
  *
417
556
  * @example 'wearable', 'phone', 'tablet'
418
557
  */
419
- 'type': 'wearable' | 'phone' | 'tablet' | '2in1' | 'tv' | (string & {});
558
+ 'type': SnakecaseDeviceType;
420
559
  /**
421
560
  * Architecture.
422
561
  *
@@ -494,6 +633,8 @@ interface FullDeployedImageOptions extends DeployedImageOptions {
494
633
  //#region src/devices/device.d.ts
495
634
  interface Device {
496
635
  getOptions(): Device.Options;
636
+ getScreen(): Screen;
637
+ getScreenPreset(): ScreenPreset | undefined;
497
638
  getImage(): LocalImage;
498
639
  setUuid(uuid: Device.UUID): this;
499
640
  getUuid(): Device.UUID;
@@ -512,7 +653,7 @@ declare namespace Device {
512
653
  cpuNumber: number;
513
654
  diskSize: number;
514
655
  memorySize: number;
515
- screen: Screen | ProductPreset;
656
+ screen: Screen | ScreenPreset;
516
657
  }
517
658
  interface IniOptions {
518
659
  /** @default CN */
@@ -528,4 +669,4 @@ declare namespace Device {
528
669
  }
529
670
  }
530
671
  //#endregion
531
- 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";
@@ -180,6 +182,13 @@ interface ImageManager {
180
182
  * @param existSkip - If the file exists, skip writing. Defaults to `false`.
181
183
  */
182
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>;
183
192
  /**
184
193
  * Get the operating system.
185
194
  */
@@ -257,35 +266,129 @@ declare namespace BaseImage {
257
266
  type Image = LocalImage | RemoteImage;
258
267
  type ImageType = 'local' | 'remote';
259
268
  //#endregion
260
- //#region src/screens/screen.d.ts
261
- 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;
262
275
  getDiagonal(): number;
263
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;
264
358
  getDensity(): number;
265
359
  setDensity(density: number): this;
266
- getHeight(): number;
267
- setHeight(height: number): this;
268
- getWidth(): number;
269
- setWidth(width: number): this;
270
- toJSON(): Screen.Options;
271
360
  }
272
361
  declare namespace Screen {
273
- interface Options {
274
- diagonal: number;
362
+ interface Options extends BaseScreen.Options {
275
363
  density: number;
276
- height: number;
277
- 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;
278
370
  }
279
371
  interface Stringifiable extends Options {}
372
+ function is(value: unknown): value is Screen;
280
373
  }
281
374
  declare function createScreen(options: Screen.Options): Screen;
282
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
283
387
  //#region src/screens/product-preset.d.ts
284
- interface ProductPreset {
388
+ interface ProductPreset extends Stringifiable<ProductPreset.Stringifiable> {
389
+ getScreenPreset(): ScreenPreset;
285
390
  getProductConfig(): ProductConfigItem;
286
391
  getDeviceType(): PascalCaseDeviceType;
287
- toScreen(): Screen;
288
- toJSON(): ProductPreset.Stringifiable;
289
392
  }
290
393
  declare namespace ProductPreset {
291
394
  interface Stringifiable {
@@ -293,7 +396,43 @@ declare namespace ProductPreset {
293
396
  deviceType: PascalCaseDeviceType;
294
397
  }
295
398
  }
296
- 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;
297
436
  //#endregion
298
437
  //#region src/devices/list.d.ts
299
438
  declare enum DevModel {
@@ -416,7 +555,7 @@ interface FullDeployedImageOptions extends DeployedImageOptions {
416
555
  *
417
556
  * @example 'wearable', 'phone', 'tablet'
418
557
  */
419
- 'type': 'wearable' | 'phone' | 'tablet' | '2in1' | 'tv' | (string & {});
558
+ 'type': SnakecaseDeviceType;
420
559
  /**
421
560
  * Architecture.
422
561
  *
@@ -494,6 +633,8 @@ interface FullDeployedImageOptions extends DeployedImageOptions {
494
633
  //#region src/devices/device.d.ts
495
634
  interface Device {
496
635
  getOptions(): Device.Options;
636
+ getScreen(): Screen;
637
+ getScreenPreset(): ScreenPreset | undefined;
497
638
  getImage(): LocalImage;
498
639
  setUuid(uuid: Device.UUID): this;
499
640
  getUuid(): Device.UUID;
@@ -512,7 +653,7 @@ declare namespace Device {
512
653
  cpuNumber: number;
513
654
  diskSize: number;
514
655
  memorySize: number;
515
- screen: Screen | ProductPreset;
656
+ screen: Screen | ScreenPreset;
516
657
  }
517
658
  interface IniOptions {
518
659
  /** @default CN */
@@ -528,4 +669,4 @@ declare namespace Device {
528
669
  }
529
670
  }
530
671
  //#endregion
531
- 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 };