/** * Utility functions for working with StableIDs * * StableIDs are persistent entity identifiers that remain constant across world saves/loads. * Entity IDs (eids) can change between sessions, but StableIDs do not. * * PATTERN: When storing entity references in entity stores for serialization, * always use StableIDs instead of entity IDs to ensure references persist across saves/loads. */ import { ECSContext } from "../core/ecs"; /** * Convert an entity ID to its StableID * @param ctx ECS context * @param eid Entity ID * @returns StableID or undefined if entity doesn't have StableID component */ export declare function eidToStableId(ctx: ECSContext, eid: number): number | undefined; /** * Convert a StableID to its current entity ID * @param ctx ECS context * @param stableId StableID to look up * @returns Current entity ID or undefined if not found * * NOTE: This function performs a linear search through all entities with StableID components. * For better performance during bulk operations (e.g., world deserialization), consider: * 1. Building a temporary stableId -> eid lookup map before processing * 2. Caching the query result * However, for typical usage (few lookups), this simple approach is sufficient. */ export declare function stableIdToEid(ctx: ECSContext, stableId: number): number | undefined; /** * Convert an array of entity IDs to StableIDs * @param ctx ECS context * @param eids Array of entity IDs * @returns Array of StableIDs (undefined values filtered out) */ export declare function eidsToStableIds(ctx: ECSContext, eids: number[]): number[]; /** * Convert an array of StableIDs to current entity IDs * @param ctx ECS context * @param stableIds Array of StableIDs * @returns Array of entity IDs (undefined values filtered out) */ export declare function stableIdsToEids(ctx: ECSContext, stableIds: number[]): number[]; /** * Convert a Set of entity IDs to StableIDs * @param ctx ECS context * @param eidSet Set of entity IDs * @returns Set of StableIDs */ export declare function eidSetToStableIdSet(ctx: ECSContext, eidSet: Set): Set; /** * Convert a Set of StableIDs to current entity IDs * @param ctx ECS context * @param stableIdSet Set of StableIDs * @returns Set of entity IDs */ export declare function stableIdSetToEidSet(ctx: ECSContext, stableIdSet: Set): Set; //# sourceMappingURL=stableId.d.ts.map