import type { BackendChoice, RegionOptions, ElectronBuildToolChoice, } from './constants.js'import type { PackageJson as typeFestPackageJson } from 'type-fest'import type { Package as normalizePackage } from 'normalize-package-data'export type NormalizedPackageJson = PackageJson & normalizePackageexport type PackageJson = typeFestPackageJsonexport interface ProgramOpts {info: booleandev: booleanyes: booleannpmTag: string}export interface Questionnair {runner: stringpreset?: stringinstallTestingLibrary?: booleanelectronAppBinaryPath?: stringelectronBuildTool?: ElectronBuildToolChoiceelectronBuilderConfigPath?: stringbackend?: BackendChoicehostname?: stringport?: stringpath?: stringexpEnvAccessKey?: stringexpEnvHostname?: stringexpEnvPort?: stringexpEnvProtocol?: 'http' | 'https'env_user?: stringenv_key?: stringregion?: RegionOptionsuseSauceConnect?: booleanframework: stringspecs?: stringstepDefinitions?: stringgenerateTestFiles: booleanusePageObjects?: booleanpages?: stringisUsingTypeScript: booleanreporters: string[]services: string[]serenityLibPath?: stringplugins: string[]outputDir?: stringincludeVisualTesting: booleannpmInstall: booleancreatePackageJSON?: booleanprojectRootCorrect?: booleanprojectRoot?: stringe2eEnvironment?: 'web' | 'mobile'mobileEnvironment?: 'android' | 'ios'browserEnvironment?: ('chrome' | 'firefox' | 'safari' | 'microsoftedge')[]}export interface ParsedAnswers extends Omit<Questionnair, 'runner' | 'framework' | 'reporters' | 'services' | 'plugins'> {rawAnswers: Questionnairrunner: 'local' | 'browser'projectName: stringframework: stringpurpose: stringreporters: string[]plugins: string[]services: string[]packagesToInstall: string[]isUsingTypeScript: booleanserenityAdapter: string | falseesmSupport: booleanisSync: boolean_async: string_await: stringprojectRootDir: stringdestSpecRootPath: stringdestPageObjectRootPath: stringdestStepRootPath: string;destSerenityLibRootPath: stringrelativePath: stringhasRootTSConfig: booleantsConfigFilePath: stringtsProject: stringwdioConfigPath: string}export interface ConfigCommandArguments {yarn: booleanyes: booleannpmTag: string}export interface SupportedPackage {package: stringshort: stringpurpose: string}export interface ProjectProps {esmSupported: booleanpath: stringpackageJson: NormalizedPackageJson}export interface InstallCommandArguments {config?: stringtype: 'service' | 'reporter' | 'framework' | 'plugin'name: string}