/**
 * Readiness derivation for the section runtime engine (M7).
 *
 * Canonical home of `createReadinessDetail` and `resolveReadinessPhase`.
 * As of M7 PR 7 the previous duplicates in
 * `packages/section-player/src/components/shared/section-player-readiness.ts`
 * have been deleted; section-player now consumes these helpers via
 * `@pie-players/pie-assessment-toolkit/runtime/internal`.
 *
 * Type duplication note: the public DOM-event detail aliases
 * (`SectionPlayerReadinessChangeDetail` /
 * `SectionPlayerReadinessPhase`) still live in section-player's
 * `contracts/public-events.ts` because that file is part of section-
 * player's published custom-element contract. The toolkit core defines
 * `EngineReadinessPhase` independently so it has zero section-player
 * imports. The two definitions must stay structurally identical;
 * that invariant is covered by the readiness assertions in this
 * package's tests, which mirror the section-player suite.
 */
/**
 * Coarse readiness phase label, derived from the four readiness
 * signals. Surfaced via the kernel's `selectReadiness()` /
 * `getSnapshot().readiness` selectors; M6 stages own the stage-level
 * transitions on `pie-stage-change` and use this phase as a
 * convenience label only. The `readiness-change` DOM
 * event that used to surface this directly was removed in the broad
 * architecture review compat sweep alongside its
 * event bridge.
 */
export type EngineReadinessPhase = "bootstrapping" | "interaction-ready" | "loading" | "ready" | "error";
export type EngineReadinessSignals = {
    sectionReady: boolean;
    interactionReady: boolean;
    allLoadingComplete: boolean;
    runtimeError: boolean;
};
export type EngineReadinessDetail = {
    phase: EngineReadinessPhase;
    interactionReady: boolean;
    allLoadingComplete: boolean;
    reason?: string;
};
export declare function resolveReadinessPhase(signals: EngineReadinessSignals): EngineReadinessPhase;
export declare function createReadinessDetail(args: {
    mode: "progressive" | "strict";
    signals: EngineReadinessSignals;
    reason?: string;
}): EngineReadinessDetail;
