import type { Component } from '@forgeax/engine-ecs'; /** * A single handle-field reference extracted from a SceneAsset entity. * * `entityKey` is the stable keyed SceneAsset identity; `componentName` and `fieldName` * identify the schema field whose `fieldType` starts with `shared\<` or * `array\` fields; for * `array>` fields it is the 0-based index into the array. */ export interface SceneHandleFieldEntry { readonly entityKey: string; readonly componentName: string; readonly fieldName: string; readonly guidString: string; /** 0-based index for `array>` elements; `undefined` for plain `handle` fields. */ readonly arrayIndex?: number; } /** * Shape of one keyed entity passed to {@link extractSceneEntityHandleGuids}. */ interface SceneEntityLike { readonly components: Partial>>; } /** * Walk every `SceneEntityLike` in `entities` and extract all GUID strings * bound to schema fields with `handle<...>` or `array>` fieldType. * * Unknown component names (absent from the supplied World-local catalog) are * silently skipped — the ecs layer's `additionalProperties` check will catch * unknowns at spawn time if appropriate. * * Values that are already numbers (resolved Handles) or non-strings are * skipped (they are not GUID refs). * * @internal Shared by `buildSceneChildContext` as the entity-walk fallback used when the structured * `envelope.refs` edges are unavailable or carry no per-entity detail. */ export declare function extractSceneEntityHandleGuids(components: ReadonlyMap, entities: Readonly>): SceneHandleFieldEntry[]; export {}; //# sourceMappingURL=scene-handle-fields.d.ts.map