/**
 * Local reusable-workflow caller resolution for B2 delivery/authority readiness.
 * @module cli/doctor-readiness-reusable-callers
 */
import type { ParsedWorkflow, ParsedWorkflowJob } from "./doctor-readiness-workflows.js";
/** What local caller workflows prove about a reusable workflow invocation. */
export type ReusableCallerValidation = "validated" | "unvalidated" | "unknown";
/** One local workflow job that invokes a reusable workflow. */
export interface ReusableWorkflowCaller {
    /** Workflow declaring the caller job. */
    readonly workflow: ParsedWorkflow;
    /** Job whose `uses:` points at the reusable workflow. */
    readonly job: ParsedWorkflowJob;
}
/**
 * Walk a job's transitive `needs:` closure within its workflow.
 * @param workflow - The workflow declaring the job
 * @param job - The job whose ancestors to resolve
 * @returns Every job the given job transitively depends on
 */
export declare function ancestorJobs(workflow: ParsedWorkflow, job: ParsedWorkflowJob): readonly ParsedWorkflowJob[];
/**
 * Find local jobs that call the given reusable workflow.
 * @param workflow - The reusable workflow being assessed
 * @param allWorkflows - Every parsed workflow in the repository
 * @returns Local caller jobs with their declaring workflows
 */
export declare function reusableWorkflowCallers(workflow: ParsedWorkflow, allWorkflows: readonly ParsedWorkflow[] | undefined): readonly ReusableWorkflowCaller[];
/**
 * Resolve whether known local callers validate before invoking a reusable
 * publishing workflow. Unknown external callers stay unresolved; known local
 * callers without a validating ancestor prove a bypass.
 * @param workflow - The reusable workflow being assessed
 * @param allWorkflows - Every parsed workflow in the repository
 * @param isValidatingJob - Predicate for validation jobs
 * @returns The local caller validation state
 */
export declare function reusableCallerValidation(workflow: ParsedWorkflow, allWorkflows: readonly ParsedWorkflow[] | undefined, isValidatingJob: (job: ParsedWorkflowJob) => boolean): ReusableCallerValidation;
//# sourceMappingURL=doctor-readiness-reusable-callers.d.ts.map