interface TrainerOptions { path?: string; outputDirectory?: string; outputFilename?: string; failBuildOnError?: boolean; xcpretty?: boolean; } interface JUnitResult { success: boolean; totalTests: number; failures: number; skipped: number; /** Total number of retried test attempts across all suites. */ retries: number; numberOfRetries: number; /** Count of unique tests after collapsing retries. */ numberOfTestsExcludingRetries: number; /** Count of unique failing tests after collapsing retries (last attempt wins). */ numberOfFailuresExcludingRetries: number; junitPath: string; testSuites: TestSuite[]; } interface TestSuite { name: string; tests: number; failures: number; time: number; testCases: TestCase[]; } interface TestCase { name: string; className: string; time: number; failure: string | null; } /** * Parse test results from either .xcresult bundles or .plist files, * generate JUnit XML, and return structured results. * * Mirrors Fastlane trainer's test_parser.rb logic. */ declare function parseTestResults(options: TrainerOptions): Promise; /** * Generate a JUnit XML string from test suites. * Mirrors Fastlane trainer's junit_generator.rb output format. */ declare function generateJUnitXml(testSuites: TestSuite[]): string; type index_JUnitResult = JUnitResult; type index_TestCase = TestCase; type index_TestSuite = TestSuite; type index_TrainerOptions = TrainerOptions; declare const index_generateJUnitXml: typeof generateJUnitXml; declare const index_parseTestResults: typeof parseTestResults; declare namespace index { export { type index_JUnitResult as JUnitResult, type index_TestCase as TestCase, type index_TestSuite as TestSuite, type index_TrainerOptions as TrainerOptions, index_generateJUnitXml as generateJUnitXml, index_parseTestResults as parseTestResults }; } export { type JUnitResult as J, type TrainerOptions as T, type TestSuite as a, type TestCase as b, generateJUnitXml as g, index as i, parseTestResults as p };