import type { DoctorCheck } from "./doctor.js";
/** One token's migration, exactly as the shipped registry resolves it. */
export interface SkipJobToken {
    /** The token as the caller spells it, including any damaging whitespace. */
    readonly token: string;
    /** One of the registry's `SKIP_JOB_STATUS` values. */
    readonly status: string;
    /** The gate that replaces it, or null when there is none. */
    readonly gate: string | null;
    /** The `quality.yml` jobs the token suppresses. */
    readonly jobs: readonly string[];
    /** Suppressed jobs with no gate — these keep running after the migration. */
    readonly ungated: readonly string[];
    /** The `.lisa.config.json` fragment to write, or null when none exists. */
    readonly declaration: string | null;
}
/** One caller workflow that still passes `skip_jobs`. */
export interface SkipJobCaller {
    /** Workflow file, relative to the project root. */
    readonly file: string;
    /** The moment that caller resolves gates at. */
    readonly moment: string;
    /** Every token it passes, in the order it passes them. */
    readonly tokens: readonly SkipJobToken[];
}
/**
 * Every caller in a project that still passes `skip_jobs`, with its migration.
 * @param targetPath - Project root
 * @returns One entry per `skip_jobs` input carrying at least one token
 */
export declare function skipJobCallers(targetPath: string): Promise<SkipJobCaller[]>;
/**
 * The operator-readable line for one token.
 * @param entry - The token's resolved migration
 * @returns One line naming the edit, or naming why there is none
 */
export declare function describeToken(entry: SkipJobToken): string;
/**
 * Report the gate declarations that replace a caller's `skip_jobs` tokens.
 *
 * Reports only. `ci.yml` ships create-only, so `lisa apply` never refreshes it
 * and the migration is a consumer-side edit either way — but the reason this
 * does not write is the one in the module docstring, not that one.
 * @param targetPath - Project path to inspect
 * @returns Doctor check result
 */
export declare function checkSkipJobsMigration(targetPath: string): Promise<DoctorCheck>;
//# sourceMappingURL=doctor-skip-jobs-migration.d.ts.map