import { TWrapper } from '../../Abstract'; import { BehaviorSubject, Subject } from 'rxjs'; import { AudioListener } from 'three'; import { TAnyAudio } from './TAnyAudio'; import { TAnyAudioConfig } from './TAnyAudioConfig'; import { TAudioConfigToParamsDependencies } from './TAudioConfigToParamsDependencies'; export type TAbstractAudioWrapper = Omit, 'serialize'> & Readonly<{ play$: Subject; pause$: BehaviorSubject; speed$: BehaviorSubject; seek$: BehaviorSubject; loop$: BehaviorSubject; isPlaying: () => boolean; getDuration: () => number | undefined; volume$: BehaviorSubject; listener$: BehaviorSubject; serialize: (dependencies: TAudioConfigToParamsDependencies) => TAnyAudioConfig; }>;