import type { EntityHandle } from '@forgeax/engine-ecs'; import type { SceneEntityAddress, SceneEntityRef } from '@forgeax/engine-types'; import { type Result } from '@forgeax/engine-types'; export type { SceneEntityRef } from '@forgeax/engine-types'; export type SceneBindingError = { readonly code: 'scene-binding-missing' | 'scene-binding-wrong-instance'; readonly expected: string; readonly hint: string; readonly detail: { readonly sceneSourceKey: string; readonly address: SceneEntityAddress; }; }; export type SceneBindingDeclarationError = { readonly code: 'scene-binding-duplicate' | 'scene-binding-source-missing'; readonly expected: string; readonly hint: string; readonly detail: { readonly sceneSourceKey?: string; readonly address?: SceneEntityAddress; }; }; export declare function validateSceneEntityKeys(sceneSourceKey: string, entityKeys: readonly string[]): Result; export declare function sceneEntity(sceneSourceKey: string, address: SceneEntityAddress): SceneEntityRef; /** Stable map key shared by direct and nested SceneEntityRef addresses. */ export declare function sceneEntityAddressKey(address: SceneEntityAddress): string; /** Inverse of {@link sceneEntityAddressKey}. */ export declare function sceneEntityAddressFromKey(key: string): SceneEntityAddress; export declare function resolveSceneEntity(ref: SceneEntityRef, instance: { readonly sceneSourceKey: string; readonly bindings: ReadonlyMap; }): Result; //# sourceMappingURL=binding.d.ts.map