/**
 * Folds the ordered event stream into the 10 step rows. Banner events are
 * never folded into rows (they drive buildBannerModel instead).
 *
 * @param {Array<Record<string, unknown>>} events
 * @returns {StepRowViewModel[]}
 */
export function buildStepRowsModel(events: Array<Record<string, unknown>>): StepRowViewModel[];
/**
 * Extracts the banner events (instructions / warning / resume / done) in order.
 *
 * @param {Array<Record<string, unknown>>} events
 * @returns {BannerViewModel[]}
 */
export function buildBannerModel(events: Array<Record<string, unknown>>): BannerViewModel[];
/**
 * @param {StepRowStatus} status
 * @returns {string}
 */
export function statusToDotClass(status: StepRowStatus): string;
/**
 * @param {StepRowStatus} status
 * @returns {string}
 */
export function statusToLabel(status: StepRowStatus): string;
/**
 * @param {StepRowViewModel} row
 * @returns {string}
 */
export function buildAriaAnnouncement(row: StepRowViewModel): string;
/**
 * @param {StepRowViewModel} row
 * @returns {string}
 */
export function renderStepRow(row: StepRowViewModel): string;
/**
 * @param {BannerViewModel} banner
 * @returns {string}
 */
export function renderBanner(banner: BannerViewModel): string;
/**
 * @typedef {'dependencies' | 'claude-login' | 'daemon' | 'secrets' | 'add-project'
 *        | 'pipeline' | 'generate-files' | 'register-project' | 'validate' | 'next-actions'} StepId
 */
/**
 * @typedef {'pending' | 'in_progress' | 'succeeded' | 'skipped' | 'blocked'
 *        | 'warning' | 'awaiting_input'} StepRowStatus
 */
/**
 * @typedef {Object} StepRowViewModel
 * @property {StepId} id
 * @property {string} label
 * @property {StepRowStatus} status
 * @property {string | null} message
 * @property {string | null} remediation
 * @property {number} position
 * @property {number} total
 */
/**
 * @typedef {Object} BannerViewModel
 * @property {'instructions' | 'warning' | 'resume' | 'done'} kind
 * @property {string | null} message
 * @property {string[]} lines
 * @property {string | null} resumeAt
 * @property {number | null} position
 * @property {number | null} total
 */
/**
 * The 10 SPEC-183 step ids, in execution order. Kept in sync with
 * entities/stepId/stepId.schema.ts (the backend source of truth).
 * @type {StepId[]}
 */
export const STEP_ROW_IDS: StepId[];
export type StepId = "dependencies" | "claude-login" | "daemon" | "secrets" | "add-project" | "pipeline" | "generate-files" | "register-project" | "validate" | "next-actions";
export type StepRowStatus = "pending" | "in_progress" | "succeeded" | "skipped" | "blocked" | "warning" | "awaiting_input";
export type StepRowViewModel = {
    id: StepId;
    label: string;
    status: StepRowStatus;
    message: string | null;
    remediation: string | null;
    position: number;
    total: number;
};
export type BannerViewModel = {
    kind: "instructions" | "warning" | "resume" | "done";
    message: string | null;
    lines: string[];
    resumeAt: string | null;
    position: number | null;
    total: number | null;
};
//# sourceMappingURL=setupWizard.d.ts.map