import EspressoOptions from '../models/espresso_options'; import Credentials from '../models/credentials'; import BaseProvider, { ProviderResult } from './base_provider'; export interface EspressoRunEnvironment { device?: string; name?: string; version?: string; } export interface EspressoRunInfo { id: number; status: 'WAITING' | 'READY' | 'DONE' | 'FAILED'; capabilities: { deviceName: string; platformName: string; version?: string; }; environment?: EspressoRunEnvironment; success: number | boolean; report?: string; } export interface EspressoStatusResponse { runs: EspressoRunInfo[]; success: boolean; completed: boolean; } export type EspressoResult = ProviderResult; export interface EspressoSocketMessage { id: number; payload: string; } export default class Espresso extends BaseProvider { protected readonly URL = "https://api.testingbot.com/v1/app-automate/espresso"; protected readonly jsonProvider: "espresso"; private socket; private updateServer; private updateKey; private socketFallbackWarned; constructor(credentials: Credentials, options: EspressoOptions); private validate; run(): Promise; private uploadApp; private uploadTestApp; private runTests; private getStatus; private waitForCompletion; private displayRunStatus; /** * Get the display name for a run, preferring environment.name over capabilities.deviceName * This shows the actual device used when a wildcard (*) was specified */ private getRunDisplayName; private getStatusInfo; private fetchReports; private connectToUpdateServer; private disconnectFromUpdateServer; private handleEspressoData; private handleEspressoError; } //# sourceMappingURL=espresso.d.ts.map