/** Shape of a GitHub check-run annotation (subset we use). */
export interface CiAnnotation {
    path?: string;
    start_line?: number;
    annotation_level?: string;
    message?: string;
}
export interface CiFailuresOutput {
    write(text: string): void;
    error(text: string): void;
}
/** Injectable `gh` boundary so the command is unit-testable without the network. */
export interface CiFailuresDeps {
    /** Run a `gh` invocation and return its parsed JSON stdout (or throw). */
    ghJson(args: string[]): Promise<unknown>;
}
export interface DevCiFailuresOptions {
    pr: string;
    repo?: string;
    output?: CiFailuresOutput;
    deps?: CiFailuresDeps;
}
/**
 * Pure: turn a check-run's annotations into actionable failure lines, dropping
 * CI-infrastructure noise that isn't a test failure:
 *  - non-`failure` levels (warnings/notices, e.g. the Node-20 deprecation notice),
 *  - the workflow runner's own `.github/...` annotations,
 *  - the generic `Process completed with exit code N.` step-failure line.
 * Each kept entry is `path:line` + the (truncated) assertion message.
 */
export declare function extractFailureLines(annotations: CiAnnotation[]): string[];
/**
 * Resolve the PR's head SHA, list its FAILED check-runs, and print each one's
 * test-level failure annotations. Returns 0 on success (even when failures are
 * found — this is a diagnostic, not a gate), 1 on an operational error
 * (PR unresolvable / API failure).
 */
export declare function runDevCiFailures(opts: DevCiFailuresOptions): Promise<number>;
//# sourceMappingURL=devCiFailures.d.ts.map