import type { Material } from "@babylonjs/core/Materials/material.js"; import type { TransformNode } from "@babylonjs/core/Meshes/transformNode.js"; import type { Node } from "@babylonjs/core/node.js"; import type { MaterialRuntimeProperty, TransformUpdate, SceneFocusOptions, SceneFocusResult } from "@skenora/contracts"; import type { RuntimeNodeEffects } from "../inspection/node-tools.js"; import type { AnimationController } from "../systems/animation-controller.js"; import type { CameraPathController } from "../systems/camera-path-controller.js"; import type { TextureAnimationController } from "../systems/texture-animation-controller.js"; import type { RuntimeAnimationCapability, RuntimeCameraCapability, RuntimeMaterialCapability, RuntimeNodeCapability, RuntimeParticleCapability, RuntimeTextureAnimationCapability } from "./runtime-capability-registry.js"; export declare function createRuntimeNodeCapability(resolveNode: (entityId: string) => Node | null, effects: RuntimeNodeEffects, commitTransform?: (entityId: string, properties: readonly string[], write: () => void) => void): RuntimeNodeCapability; export declare function createRuntimeMaterialCapability(getMaterial: (materialId: string) => Material | null, setProperty: (materialId: string, property: MaterialRuntimeProperty, value: unknown) => void): RuntimeMaterialCapability; export interface RuntimeCameraCapabilityHandlers { frame(entityIds?: readonly string[]): void; focus(entityIds?: readonly string[], options?: SceneFocusOptions): Promise; activateEntity(entityId: string, controls?: boolean): boolean; restoreViewport(): void; getPaths(): CameraPathController | null; } export declare function createRuntimeCameraCapability(handlers: RuntimeCameraCapabilityHandlers): RuntimeCameraCapability; export declare function createRuntimeAnimationCapability(animations: AnimationController, nodes: RuntimeNodeCapability): RuntimeAnimationCapability; export declare function createRuntimeParticleCapability(setRunning: (entityId: string, running: boolean) => boolean, cloud?: RuntimeParticleCapability["cloud"]): RuntimeParticleCapability; export declare function createRuntimeTextureAnimationCapability(controller: TextureAnimationController): RuntimeTextureAnimationCapability; export declare function prepareTransformUpdate(node: TransformNode, update: TransformUpdate): { properties: readonly string[]; write: () => void; }; //# sourceMappingURL=built-in-runtime-capabilities.d.ts.map