interface IDictionary { [key: string]: T; } interface IDeferPromise { isRejected(): boolean; isPending(): boolean; getResult(): any; promise: Promise; resolve(value?: T | PromiseLike): void; reject(reason?: any): void; isResolved(): boolean; } interface IiPhoneSimulator { run(applicationPath: string, applicationIdentifier: string, options: IOptions): Promise; printDeviceTypes(): Promise; printSDKS(): Promise; sendNotification(notification: string, deviceId: string): Promise; createSimulator(): ISimulator; } interface ICommand { execute(args: string[]): void; } interface ICommandExecutor { execute(): void; } interface IDevice { name: string; id: string; fullId: string; runtimeVersion: string; state?: string; rawDevice?: any; platform: string; } interface ISkipErrorComposition { skipError: boolean; } interface ISimctl { launch(deviceId: string, applicationIdentifier: string, options: IOptions): Promise; boot(deviceId: string): Promise; terminate(deviceId: string, appIdentifier: string): Promise; install(deviceId: string, applicationPath: string): Promise; uninstall(deviceId: string, applicationIdentifier: string, opts?: ISkipErrorComposition): Promise; notifyPost(deviceId: string, notification: string): Promise; getDevices(): Promise; getLog(deviceId: string, predicate?: string): any; getAppContainer(deviceId: string, applicationIdentifier: string): Promise; } interface ISimulator extends INameGetter { getDevices(): Promise; getSdks(): Promise; run(applicationPath: string, applicationIdentifier: string, options: IOptions): Promise; sendNotification(notification: string, deviceId: string): Promise; getApplicationPath(deviceId: string, applicationIdentifier: string): Promise; getInstalledApplications(deviceId: string): IApplication[]; installApplication(deviceId: string, applicationPath: string): Promise; uninstallApplication(deviceId: string, appIdentifier: string): Promise; startApplication(deviceId: string, appIdentifier: string, options: IOptions): Promise; stopApplication(deviceId: string, appIdentifier: string, bundleExecutable: string): Promise; getDeviceLogProcess(deviceId: string): Promise; startSimulator(options: IOptions, device?: IDevice): Promise; } interface INameGetter { getSimulatorName(deviceName?: string): string; } interface IApplication { guid: string; appIdentifier: string; path: string; } interface IExecuteOptions { canRunMainLoop: boolean; appPath?: string; applicationIdentifier?: string; } interface ISdk { displayName: string; version: string; rootPath?: string; } interface IXcodeVersionData { major: string; minor: string; build: string; } interface IOptions { skipInstall?: boolean; waitForDebugger?: boolean; args?: any; sdkVersion?: string; sdk?: string; device?: string; platform?: string; }