import { type JsonObject } from '../depot/shape.js'; /** * Depot's status enums arrive as RUN_STATUS_FAILED, JOB_CONCLUSION_FAILURE, and so on. Every * reader strips the same prefixes so a status reads as "failed", never "run_status_failed". */ export declare const STATUS_PREFIXES: string[]; export interface AttemptNode { attemptId: string | undefined; attempt: number | undefined; status: string | undefined; conclusion: string | undefined; } export interface JobNode { jobId: string | undefined; key: string | undefined; displayName: string | undefined; status: string | undefined; conclusion: string | undefined; attempts: AttemptNode[]; } export interface WorkflowNode { workflowId: string | undefined; name: string | undefined; path: string | undefined; status: string | undefined; jobs: JobNode[]; } export interface RunTree { runId: string | undefined; status: string | undefined; workflows: WorkflowNode[]; } export declare function isFailureState(state: string | undefined): boolean; /** `GetRunStatus` returns the workflow -> job -> attempt tree; the run itself may be nested or flat. */ export declare function parseRunTree(response: JsonObject): RunTree; export interface TreeSelection { readonly workflow: WorkflowNode; readonly job: JobNode; readonly attempt: AttemptNode | undefined; } /** * Pick the job an agent most likely means: a failed one if there is one, otherwise the last job. * Mirrors how `depot ci logs` resolves a run ID down to a single attempt. */ export declare function selectInterestingJob(tree: RunTree): TreeSelection | undefined; export interface RunSummary { runId: string | undefined; repo: string | undefined; ref: string | undefined; sha: string | undefined; trigger: string | undefined; pr: number | undefined; status: string | undefined; createdAt: string | undefined; startedAt: string | undefined; finishedAt: string | undefined; durationSeconds: number | undefined; } export declare function parseRunSummary(source: JsonObject): RunSummary; export declare function countJobs(tree: RunTree): { total: number; failed: number; }; //# sourceMappingURL=ci-tree.d.ts.map