/** * 표준 단계. 순서는 대개 이 차례이지만 **강제하지 않는다** — 원본에 따라 없는 자리가 있고, 그때는 그 * 단계를 선언하지도 보내지도 않는다. */ export declare const REFERENCE_STEPS: readonly ["schema", "space", "locations", "equipment", "operations", "materials", "routes", "recipes", "testSpecifications", "persons", "assets", "provision", "start"]; export type ReferenceStep = (typeof REFERENCE_STEPS)[number]; /** 호스트가 마스터 읽기 뒤에 하는 단계 — 어댑터의 선언에 이만큼을 더해 분모를 만든다. */ export declare const HOST_STEPS: ReferenceStep[]; /** * 한 단계의 진행 — 구독으로 흐르는 메시지의 몸통. * * `detail` 은 **그 단계 안에서 사람이 알아야 하는 것**이다(읽은 건수 등). 비어 있어도 된다 — 지어내지 * 않는다. */ export interface ReferenceProgress { /** 어느 사이트를 만드는 중인가. */ siteId: string; step: ReferenceStep; /** 이 사이트에서 끝낸 단계 수. */ done: number; /** 이 사이트의 전체 단계 수 — 어댑터가 선언하지 않으면 없다(그때 퍼센트를 만들지 않는다). */ total?: number; /** 여러 사이트를 한 번에 만들 때, 지금 몇 번째인가. */ siteIndex: number; siteCount: number; /** 그 단계 안의 사실 — 「자리 128건」처럼. */ detail?: string; /** 이 단계에서 실패했는가. 실패해도 화면이 그 자리를 그대로 보여 줄 수 있어야 한다. */ failed?: boolean; /** 실패 이유 — 실패했을 때만. */ error?: string; } /** * 전체 진행률 — **분모를 알 때만 낸다.** * * 사이트가 여럿이면 사이트 사이의 진행도 함께 센다: 앞선 사이트는 끝난 것으로 본다. */ export declare function referencePercent(p: ReferenceProgress): number | undefined;