import { TAbstractAudioWrapper, TAnyAudio, TAnyAudioConfig, TAnyAudioParams, TAnyAudioWrapper, TAudio3dConfig, TAudio3dParams, TAudio3dWrapper, TAudioParams } from '../Models'; import { TReadonlyVector3 } from '../../ThreeLib'; import { BehaviorSubject, Observable } from 'rxjs'; import { Audio, PositionalAudio } from 'three'; export declare const isAudio3dConfig: (config: TAnyAudioConfig) => config is TAudio3dConfig; export declare const isAudio3dParams: (config: TAnyAudioParams) => config is TAudio3dParams; export declare const isAudio3dWrapper: (wrapper: TAnyAudioWrapper | TAbstractAudioWrapper) => wrapper is TAudio3dWrapper; export declare function seekAudio(entity: TAnyAudio, time: number, shouldPlay: boolean): void; export declare function createPositionalAudio(audioSource: AudioBuffer, params: TAudio3dParams): PositionalAudio | never; export declare function createAudio(audioSource: AudioBuffer, params: TAudioParams): Audio; export declare function onAudioPositionUpdate(position$: BehaviorSubject, noiseThreshold?: number): Observable; export declare function disposeAudio(audio: TAnyAudio): void;