import { type SceneAnimationClipState, type SceneDocumentData, type SceneAnimationCancellationReason } from "@skenora/contracts"; import { SceneAnimationClipController } from "../systems/scene-animation-clip-controller.js"; import { type AnimationPropertyOwners } from "../systems/animation-property-owners.js"; import type { CameraController } from "../systems/camera-controller.js"; import type { RuntimeClock } from "../systems/runtime-clock.js"; import type { SceneAnimationProjection } from "./scene-animation-projection.js"; interface ClipProjectionPorts { document(): Readonly | null; generation(): number; assertWritable(): void; camera(): CameraController | null; } export declare class SceneAnimationClipProjection { #private; readonly tracks: SceneAnimationProjection; readonly ports: ClipProjectionPorts; readonly controller: SceneAnimationClipController; constructor(clock: RuntimeClock, owners: AnimationPropertyOwners, tracks: SceneAnimationProjection, ports: ClipProjectionPorts, onState: (state: SceneAnimationClipState) => void); restoreTouched(document: Readonly | null): void; reset(reason: SceneAnimationCancellationReason): void; dispose(): void; } export {}; //# sourceMappingURL=scene-animation-clip-projection.d.ts.map