/** * Converts the JUnit XML TestingBot returns for a Maestro run into Allure * result files (`allure-results/*-result.json`), the input format of * `allure generate` / `allure serve`. * * The XML is produced by Maestro itself (one per flow, with * entries per command and an optional ), so a * small purpose-built reader is enough and avoids pulling in an XML parser. */ export type AllureStatus = 'passed' | 'failed' | 'broken' | 'skipped'; export interface AllureStep { name: string; status: AllureStatus; stage: 'finished'; start?: number; stop?: number; } export interface AllureResult { uuid: string; historyId: string; name: string; fullName: string; status: AllureStatus; stage: 'finished'; start: number; stop: number; labels: { name: string; value: string; }[]; statusDetails?: { message: string; trace?: string; }; steps: AllureStep[]; } export interface AllureContext { runId: number; device?: string; platform?: string; osVersion?: string; /** Fallback when the XML carries no step timestamps. */ startedAt?: string; } /** * Parses TestingBot's Maestro JUnit XML into Allure results. Returns one * result per . Unknown structure yields an empty array rather than * throwing so a report download never fails the run. */ export declare function junitToAllureResults(xml: string, context: AllureContext): AllureResult[]; /** * Writes results into `/allure-results`, one `-result.json` * per test, and returns the directory. Existing files are left in place so * several runs (or shards) can accumulate into one report. */ export declare function writeAllureResults(outputDir: string, results: AllureResult[]): Promise; //# sourceMappingURL=allure.d.ts.map