import { type SystemHandle } from '@forgeax/engine-ecs'; /** * Stable system name (locked by `frame-start-scan-system.test.ts`). User * systems reference it through `after: [FRAME_START_SCAN_SYSTEM_NAME]` * to ensure they observe the freshly written snapshot. */ export declare const FRAME_START_SCAN_SYSTEM_NAME = "input-frame-start-scan"; export declare const InputSet: import("@forgeax/engine-ecs").SystemSet; /** * Resource key under which the {@link InputBackend} producer is inserted * (M2 โ€” full resource-ification, D-2 / D-7). The frame-start scan system * declares it in `resources`; the fn body reads it back via * `world.getResource(INPUT_BACKEND_KEY)`. * * Aligns with the `INPUT_SNAPSHOT_RESOURCE_KEY` naming. Consumers import the * constant rather than the bare string so a typo degrades to an import error * (charter P3). */ export declare const INPUT_BACKEND_KEY: "InputBackend"; /** * The frame-start scan system token (M2 โ€” full resource-ification, D-4). * * Module-level `defineSystem` with the real fn body โ€” no factory, no closure. * Each `world.update()` tick: * 1. reads the {@link InputBackend} from `INPUT_BACKEND_KEY` and calls * `backend.sample()` once to atomically drain the per-frame accumulators * (movement delta plus key/code/button press and release edge sets); * 2. derives a fresh `InputSnapshot` via `snapshotFromSample`; * 3. writes it under `INPUT_SNAPSHOT_RESOURCE_KEY` via * `world.insertResource` -- idempotent overwrite, charter P4 * consistent abstraction (consumers always read the same Resource key * regardless of which backend produced the sample). * * Labelled `'input'` (spec ยง6.2 label-anchor map). */ export declare const InputFrameStartScan: SystemHandle; //# sourceMappingURL=frame-start-scan-system.d.ts.map