/**
 * Pure transition function for the section runtime engine (M7 — Variant
 * C, layered core).
 *
 * `transition(state, input)` is total over `(state, input)` pairs and
 * returns:
 *   - the next `SectionEngineState` (immutable; the input state object
 *     is never mutated);
 *   - the ordered list of `SectionEngineOutput`s the adapter must
 *     dispatch (DOM events, framework-error fan-out, etc.).
 *
 * The function imports nothing from Svelte, the DOM, or the
 * coordinator. The `core/` constraint is enforced by the per-PR audit
 * step in the M7 implementation plan.
 *
 * Phase machine (per `engine-state.ts`):
 *   idle → booting-section → engine-ready → interactive → disposed
 *   (cohort-change rolls back to booting-section for the new cohort
 *    after emitting `disposed` for the outgoing cohort)
 *
 * Output ordering invariants:
 *   1. `stage-change` for stage advancement fires before any
 *      `loading-complete` triggered by the same input.
 *   2. `loading-complete` fires once per cohort, gated on
 *      `state.loadingCompleteEmitted`.
 *   3. `framework-error` outputs are independent of the stage chain
 *      and do not move the phase.
 *
 * Readiness alias output kinds (`readiness-change`,
 * `interaction-ready`, `ready`) and their DOM-event bridge were
 * removed in the broad architecture review compat sweep. Hosts that
 * need the readiness detail read it via the kernel's `selectReadiness`
 * / `getSnapshot` selectors or via `SectionEngineCore.getState()`.
 */
import type { SectionEngineInput } from "./engine-input.js";
import type { SectionEngineOutput } from "./engine-output.js";
import { type SectionEngineState } from "./engine-state.js";
export interface TransitionResult {
    state: SectionEngineState;
    outputs: SectionEngineOutput[];
}
/**
 * Pure transition. Total over `(state, input)`; never mutates inputs;
 * never throws. Unhandled inputs after `disposed` fall through to a
 * no-op (the adapter is responsible for not feeding them in, but the
 * core stays safe by design).
 */
export declare function transition(state: SectionEngineState, input: SectionEngineInput): TransitionResult;
