import type { Entity, World } from 'koota';
import type { Snapshot } from './buf/draw/v1/snapshot_pb';
import type { Settings } from './hooks/useSettings.svelte';
import { type SceneMetadata } from './buf/draw/v1/scene_pb';
/**
 * Merges scene-level metadata (grid, camera, point/line settings) into the
 * current viewer settings. Millimetre values from the proto are converted
 * to metres.
 */
export declare const applySceneMetadata: (settings: Settings, metadata: SceneMetadata) => Settings;
/**
 * Spawns ECS entities for every transform and drawing in a {@link Snapshot}.
 *
 * Each transform produces one entity with Name, Pose, Parent, Geometry, and
 * optional Color/Opacity traits. Each drawing produces one or more entities
 * depending on the geometry type (arrows, points, line, nurbs, model, or
 * simple shapes like box/sphere/capsule).
 *
 * @returns The spawned entities — pass them to {@link destroyEntities} to
 *          clean up before loading a new snapshot.
 */
export declare const spawnSnapshotEntities: (world: World, snapshot: Snapshot) => Entity[];
/**
 * Destroys a list of entities that are still alive in the given world.
 * Silently skips entities that have already been removed.
 */
export declare const destroyEntities: (world: World, entities: Entity[]) => void;
