import { TSerializableResourceService } from '../../Abstract'; import { TDelta } from '../../Loop'; import { TWithLoadResourcesAsyncService, TWithResourcesMetaInfoRegistryService, TWithResourcesRegistryService } from '../../Mixins'; import { TModel3d, TRawModel3d } from '../../Models3d'; import { Observable } from 'rxjs'; import { AnimationClip, AnimationMixer } from 'three'; import { TAnimationActionsPack } from './TAnimationActionsPack'; import { TAnimations } from './TAnimations'; import { TAnimationsResourceAsyncRegistry } from './TAnimationsResourceAsyncRegistry'; import { TAnimationsResourceConfig } from './TAnimationsResourceConfig'; import { TModel3dAnimations } from './TModel3dAnimations'; export type TAnimationsService = TSerializableResourceService & Readonly<{ createActions: (model: TRawModel3d, animations?: ReadonlyArray, mixer?: AnimationMixer) => TAnimationActionsPack; added$: Observable; startAutoUpdateMixer: (model3d: TModel3d, updateTick$?: Observable) => TAnimationActionsPack | never; stopAutoUpdateMixer: (mixer: AnimationMixer) => void | never; }> & TWithResourcesRegistryService & TWithResourcesMetaInfoRegistryService & TWithLoadResourcesAsyncService;