// Native JSB

declare class TMGAudioEffectCtrlBindings {
  constructor(contextBindings: TMGContextBindings);
  startPlayMusic(soundId: number, filePath: string, loopCount: number): number;
  stopPlayMusic(soundId: number): number;
  pausePlayMusic(soundId: number): number;
  resumePlayMusic(soundId: number): number;
  isMusicPlayEnd(soundId: number): boolean;
  setAllMusicVolume(volume: number): number;
  setMusicPublishVolume(soundId: number, volume: number): number;
  getMusicPublishVolume(soundId: number): number;
  setMusicPlayoutVolume(soundId: number, volume: number): number;
  getMusicPlayoutVolume(soundId: number): number;
  setMusicPitch(soundId: number, pitch: number): number;
  getMusicDurationInMS(soundId: number): number;
  getMusicCurrentPosInMS(soundId: number): number;
  seekMusicToPosInTime(soundId: number, time: number): number;
  enableMusicPublish(soundId: number, enable: boolean): number;
  enableMusicPlayout(soundId: number, enable: boolean): number;
  setVoiceType(type: number): number;
  setKaraokeType(type: number): number;
  startRecord(filePath: string, content: number): number;
  stopRecord(): number;
  startSystemAudioLoopback(playerPath: string): number;
  stopSystemAudioLoopback(): number;
  setSystemAudioLoopbackVolume(volume: number): number;
}
