export interface MaestroConfig { flows?: string[]; includeTags?: string[]; excludeTags?: string[]; executionOrder?: 'continue' | 'stop'; } export type Orientation = 'PORTRAIT' | 'LANDSCAPE'; export type ThrottleNetwork = '4G' | '3G' | 'Edge' | 'airplane' | 'disable'; export type ReportFormat = 'html' | 'html-detailed' | 'junit' | 'allure'; export type ArtifactDownloadMode = 'all' | 'failed'; export interface RunMetadata { commitSha?: string; pullRequestId?: string; pullRequestUrl?: string; repoName?: string; repoOwner?: string; branch?: string; /** Free-form key/value pairs from --metadata, shown on the dashboard. */ custom?: Record; } export interface MaestroCapabilities { platformName?: 'Android' | 'iOS'; version?: string; deviceName: string; name?: string; orientation?: Orientation; locale?: string; timeZone?: string; throttle_network?: ThrottleNetwork; 'testingbot.geoCountryCode'?: string; tunnelIdentifier?: string; realDevice?: string; groups?: string[]; googlePlayStore?: boolean; } export interface MaestroRunOptions { includeTags?: string[]; excludeTags?: string[]; env?: Record; version?: string; } /** One device of a --device-matrix run. */ export interface DeviceMatrixCell { device: string; version?: string; realDevice?: boolean; } export declare const MAX_OTHER_APPS = 4; export declare const MAX_RETRY = 2; export default class MaestroOptions { private static isIpaFile; /** * Options for commands that act on an already-created project (`status`, * `artifacts`): no app or flows are uploaded, so only output-related * settings apply. */ static forExistingProject(options: { quiet?: boolean; report?: ReportFormat; reportOutputDir?: string; downloadArtifacts?: ArtifactDownloadMode; artifactsOutputDir?: string; debug?: boolean; }): MaestroOptions; private _app; private _appBinaryId?; private _appUrl?; private _flows; private _otherApps; private _device?; private _deviceMatrix?; private _includeTags?; private _excludeTags?; private _excludeFlows?; private _platformName?; private _version?; private _name?; private _orientation?; private _locale?; private _timeZone?; private _throttleNetwork?; private _geoCountryCode?; private _env?; private _maestroVersion?; private _tunnel; private _tunnelIdentifier?; private _quiet; private _async; private _dryRun; private _report?; private _reportOutputDir?; private _realDevice; private _downloadArtifacts?; private _artifactsOutputDir?; private _ignoreChecksumCheck; private _shardSplit?; private _retry; private _debug; private _configFile?; private _groups?; private _googlePlayStore; private _metadata?; constructor(app: string, flows: string | string[], device?: string, options?: { includeTags?: string[]; excludeTags?: string[]; excludeFlows?: string[]; platformName?: 'Android' | 'iOS'; version?: string; deviceMatrix?: DeviceMatrixCell[]; name?: string; orientation?: Orientation; locale?: string; timeZone?: string; throttleNetwork?: ThrottleNetwork; geoCountryCode?: string; env?: Record; maestroVersion?: string; tunnel?: boolean; tunnelIdentifier?: string; quiet?: boolean; async?: boolean; dryRun?: boolean; report?: ReportFormat; reportOutputDir?: string; realDevice?: boolean; downloadArtifacts?: ArtifactDownloadMode; artifactsOutputDir?: string; ignoreChecksumCheck?: boolean; shardSplit?: number; retry?: number; debug?: boolean; configFile?: string; groups?: string[]; googlePlayStore?: boolean; metadata?: RunMetadata; otherApps?: string[]; appBinaryId?: number; appUrl?: string; }); get app(): string; /** * ID of an existing project whose uploaded app should be reused instead of * uploading `app`. Set by --app-binary-id. */ get appBinaryId(): number | undefined; /** Download URL for the app under test (--app-url), used instead of `app`. */ get appUrl(): string | undefined; get flows(): string[]; get otherApps(): string[]; get device(): string | undefined; /** Devices of a --device-matrix run; undefined for a single-device run. */ get deviceMatrix(): DeviceMatrixCell[] | undefined; get includeTags(): string[] | undefined; /** Flow files, directories or globs to leave out of the bundle (--exclude-flows). */ get excludeFlows(): string[] | undefined; get excludeTags(): string[] | undefined; get platformName(): 'Android' | 'iOS' | undefined; get version(): string | undefined; get name(): string | undefined; get orientation(): Orientation | undefined; get locale(): string | undefined; get timeZone(): string | undefined; get throttleNetwork(): ThrottleNetwork | undefined; get geoCountryCode(): string | undefined; get env(): Record | undefined; get maestroVersion(): string | undefined; get tunnel(): boolean; get tunnelIdentifier(): string | undefined; get quiet(): boolean; get async(): boolean; get dryRun(): boolean; get report(): ReportFormat | undefined; get reportOutputDir(): string | undefined; get realDevice(): boolean; get downloadArtifacts(): ArtifactDownloadMode | undefined; get artifactsOutputDir(): string | undefined; get ignoreChecksumCheck(): boolean; get shardSplit(): number | undefined; get retry(): number; get debug(): boolean; get configFile(): string | undefined; get metadata(): RunMetadata | undefined; get groups(): string[] | undefined; get googlePlayStore(): boolean; getMaestroOptions(): MaestroRunOptions | undefined; /** * One capability set per device: the matrix cells when --device-matrix was * given, otherwise the single device from --device/--deviceVersion. */ getCapabilitiesList(detectedPlatform?: 'Android' | 'iOS'): MaestroCapabilities[]; getCapabilities(detectedPlatform?: 'Android' | 'iOS', cell?: DeviceMatrixCell): MaestroCapabilities; } //# sourceMappingURL=maestro_options.d.ts.map