import type { EntityHandle, World } from '@forgeax/engine-ecs'; import type { MobilityDiagnostic, MobilityDiagnosticSubject } from './errors'; /** Producer-supplied facts for one violation; scene derives entity location and text. */ export type MobilityViolation = MobilityDiagnostic extends infer D ? D extends MobilityDiagnostic ? { readonly code: D['code']; } & Omit : never : never; export type MobilityDiagnosticListener = (world: World, diagnostic: Readonly) => void; /** Observe Mobility violations. Each `(World, code, entity)` is reported once. */ export declare function subscribeMobilityDiagnostics(listener: MobilityDiagnosticListener): () => void; /** * Report one Mobility violation found by its detecting owner. Returns false when * the same `(code, entity)` was already reported for this World. */ export declare function emitMobilityDiagnostic(world: World, entity: EntityHandle, violation: MobilityViolation): boolean; //# sourceMappingURL=mobility-diagnostics.d.ts.map