import { z } from "zod"; import type { AnalyzeTraceOptions, SupportStatus } from "../types.js"; export declare const analyzeAppLaunchSchema: z.ZodObject<{ tracePath: z.ZodString; outputFormat: z.ZodOptional>; }, "strip", z.ZodTypeAny, { tracePath: string; outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined; }, { tracePath: string; outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined; }>; export type AnalyzeAppLaunchInput = z.infer; export interface PhaseEntry { /** Mnemonic phase name; matches PHASE_ORDER above when known. */ phase: string; /** Display label as Instruments would render it. */ label: string; durationMs: number; /** Percentage of total launch time spent in this phase. */ percentOfTotal: number; } export interface AnalyzeAppLaunchResult { ok: boolean; tracePath: string; /** Total app launch time as reported by xctrace. */ totalLaunchMs: number; /** "cold" or "warm" launch when discriminable; otherwise "unknown". */ launchType: "cold" | "warm" | "unknown"; /** Per-phase breakdown sorted by Apple's canonical order. */ phases: PhaseEntry[]; /** Phase that took the largest share of launch time. */ slowestPhase?: PhaseEntry; diagnosis: string; /** v1.14+. Unified per-area status. See {@link SupportStatus}. */ supportStatus: SupportStatus[]; } /** Pure: turn parsed XML into the structured result. */ export declare function analyzeAppLaunchFromXml(xml: string, tracePath: string): AnalyzeAppLaunchResult; export declare function analyzeAppLaunch(input: AnalyzeAppLaunchInput, options?: AnalyzeTraceOptions): Promise;