import type { PublishPlan, PublishPlanTarget, PublishStep, PublishStepStatus } from './index.js'; /** Collapse ordered steps into the single status shown on the plan. Empty = passed. */ export declare function rollUpPublishPlan(steps: PublishStep[]): PublishStepStatus; /** Order steps by the fixed spine; unknown ids are appended in input order. */ export declare function orderPublishSteps(steps: PublishStep[]): PublishStep[]; /** * For each step that is not yet clear, set `blockedBy` to kinds of earlier * steps that are not clear and that actually gate it (concurrent steps such as * build and policy gates do not gate each other). Premature `in_progress` (e.g. * deploy already QUEUED while policy gates still run) is held as `pending` so * the rail does not show "Publishing…" ahead of unfinished prerequisites. Failed * and other terminal statuses are left alone. Clears blockedBy when the gating * steps clear. */ export declare function applyBlockedByEligibility(steps: PublishStep[]): PublishStep[]; /** Order, apply eligibility, roll up. */ export declare function buildPublishPlan(target: PublishPlanTarget, steps: PublishStep[]): PublishPlan; //# sourceMappingURL=plan.d.ts.map