/**@class android.media.AudioAttributes.Builder
@extends java.lang.Object

 Builder class for {@link android.media.AudioAttributes} objects.
 <p> Here is an example where <code>Builder</code> is used to define the
 {@link android.media.AudioAttributes} to be used by a new <code>AudioTrack</code> instance:

 <pre class="prettyprint">
 AudioTrack myTrack = new AudioTrack(
         new AudioAttributes.Builder()
             .setUsage(AudioAttributes.USAGE_MEDIA)
             .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
             .build(),
         myFormat, myBuffSize, AudioTrack.MODE_STREAM, mySession);
 </pre>

 <p>By default all types of information (usage, content type, flags) conveyed by an
 <code>AudioAttributes</code> instance are set to "unknown". Unknown information will be
 interpreted as a default value that is dependent on the context of use, for instance a
 {@link android.media.MediaPlayer} will use a default usage of {@link android.media.AudioAttributes#USAGE_MEDIA}.
*/
var Builder = {

/**Combines all of the attributes that have been set and return a new
 {@link android.media.AudioAttributes} object.
@return {Object {android.media.AudioAttributes}} a new {@link AudioAttributes} object
*/
build : function(  ) {},

/**Sets the attribute describing what is the intended use of the the audio signal,
 such as alarm or ringtone.
@param {Number} usage one of {@link AudioAttributes#USAGE_UNKNOWN},
     {@link AudioAttributes#USAGE_MEDIA},
     {@link AudioAttributes#USAGE_VOICE_COMMUNICATION},
     {@link AudioAttributes#USAGE_VOICE_COMMUNICATION_SIGNALLING},
     {@link AudioAttributes#USAGE_ALARM}, {@link AudioAttributes#USAGE_NOTIFICATION},
     {@link AudioAttributes#USAGE_NOTIFICATION_RINGTONE},
     {@link AudioAttributes#USAGE_NOTIFICATION_COMMUNICATION_REQUEST},
     {@link AudioAttributes#USAGE_NOTIFICATION_COMMUNICATION_INSTANT},
     {@link AudioAttributes#USAGE_NOTIFICATION_COMMUNICATION_DELAYED},
     {@link AudioAttributes#USAGE_NOTIFICATION_EVENT},
     {@link AudioAttributes#USAGE_ASSISTANT},
     {@link AudioAttributes#USAGE_ASSISTANCE_ACCESSIBILITY},
     {@link AudioAttributes#USAGE_ASSISTANCE_NAVIGATION_GUIDANCE},
     {@link AudioAttributes#USAGE_ASSISTANCE_SONIFICATION},
     {@link AudioAttributes#USAGE_GAME}.
@return {Object {android.media.AudioAttributes.Builder}} the same Builder instance.
*/
setUsage : function(  ) {},

/**Sets the attribute describing the content type of the audio signal, such as speech,
 or music.
@param {Number} contentType the content type values, one of
     {@link AudioAttributes#CONTENT_TYPE_MOVIE},
     {@link AudioAttributes#CONTENT_TYPE_MUSIC},
     {@link AudioAttributes#CONTENT_TYPE_SONIFICATION},
     {@link AudioAttributes#CONTENT_TYPE_SPEECH},
     {@link AudioAttributes#CONTENT_TYPE_UNKNOWN}.
@return {Object {android.media.AudioAttributes.Builder}} the same Builder instance.
*/
setContentType : function(  ) {},

/**Sets the combination of flags.

 This is a bitwise OR with the existing flags.
@param {Number} flags a combination of {@link AudioAttributes#FLAG_AUDIBILITY_ENFORCED},
    {@link AudioAttributes#FLAG_HW_AV_SYNC}.
@return {Object {android.media.AudioAttributes.Builder}} the same Builder instance.
*/
setFlags : function(  ) {},

/**Specifies whether the audio may or may not be captured by other apps or the system.

 The default is {@link android.media.AudioAttributes#ALLOW_CAPTURE_BY_ALL}.

 There are multiple ways to set this policy:
 <ul>
 <li> for each track independently, with this method </li>
 <li> application-wide at runtime, with
      {@link android.media.AudioManager#setAllowedCapturePolicy(int)} </li>
 <li> application-wide at build time, see {@code allowAudioPlaybackCapture} in the
      application manifest. </li>
 </ul>
 The most restrictive policy is always applied.

 See {@link android.media.AudioPlaybackCaptureConfiguration} for more details on
 which audio signals can be captured.
@return {Object {android.media.AudioAttributes.Builder}} the same Builder instance
@throws IllegalArgumentException if the argument is not a valid value.
*/
setAllowedCapturePolicy : function(  ) {},

/**
@param {Number} flags any combination of {@link AudioAttributes#FLAG_ALL}.
@param flags any combination of {@link AudioAttributes#FLAG_ALL}.
@return {Object {android.media.AudioAttributes.Builder}} the same Builder instance.
*/
replaceFlags : function(  ) {},

/**
@param {Object {Bundle}} bundle a non-null Bundle
@param bundle a non-null Bundle
@return {Object {android.media.AudioAttributes.Builder}} the same builder instance
*/
addBundle : function(  ) {},

/**
@param {String} tag
@param tag
@return {Object {android.media.AudioAttributes.Builder}} the same Builder instance.
*/
addTag : function(  ) {},

/**Sets attributes as inferred from the legacy stream types.
 Warning: do not use this method in combination with setting any other attributes such as
 usage, content type, flags or haptic control, as this method will overwrite (the more
 accurate) information describing the use case previously set in the <code>Builder</code>.
 In general, avoid using it and prefer setting usage and content type directly
 with {@link #setUsage}(int) and {@link #setContentType}(int).
 <p>Use this method when building an {@link android.media.AudioAttributes} instance to initialize some
 of the attributes by information derived from a legacy stream type.
@param {Number} streamType one of {@link AudioManager#STREAM_VOICE_CALL},
   {@link AudioManager#STREAM_SYSTEM}, {@link AudioManager#STREAM_RING},
   {@link AudioManager#STREAM_MUSIC}, {@link AudioManager#STREAM_ALARM},
    or {@link AudioManager#STREAM_NOTIFICATION}.
@return {Object {android.media.AudioAttributes.Builder}} the same Builder instance.
*/
setLegacyStreamType : function(  ) {},

/**
@param {Number} streamType
@param streamType
@return {Object {android.media.AudioAttributes.Builder}} the same Builder instance.
*/
setInternalLegacyStreamType : function(  ) {},

/**
@param {Number} preset one of {@link MediaRecorder.AudioSource#DEFAULT},
     {@link MediaRecorder.AudioSource#MIC}, {@link MediaRecorder.AudioSource#CAMCORDER},
     {@link MediaRecorder.AudioSource#VOICE_RECOGNITION},
     {@link MediaRecorder.AudioSource#VOICE_COMMUNICATION},
     {@link MediaRecorder.AudioSource#UNPROCESSED} or
     {@link MediaRecorder.AudioSource#VOICE_PERFORMANCE}
@param preset one of {@link MediaRecorder.AudioSource#DEFAULT},
     {@link MediaRecorder.AudioSource#MIC}, {@link MediaRecorder.AudioSource#CAMCORDER},
     {@link MediaRecorder.AudioSource#VOICE_RECOGNITION},
     {@link MediaRecorder.AudioSource#VOICE_COMMUNICATION},
     {@link MediaRecorder.AudioSource#UNPROCESSED} or
     {@link MediaRecorder.AudioSource#VOICE_PERFORMANCE}
@return {Object {android.media.AudioAttributes.Builder}} the same Builder instance.
*/
setCapturePreset : function(  ) {},

/**
@param {Number} preset
@param preset
@return {Object {android.media.AudioAttributes.Builder}} the same Builder instance.
*/
setInternalCapturePreset : function(  ) {},

/**Specifying if haptic should be muted or not when playing audio-haptic coupled data.
 By default, haptic channels are disabled.
@param {Boolean} muted true to force muting haptic channels.
@return {Object {android.media.AudioAttributes.Builder}} the same Builder instance.
*/
setHapticChannelsMuted : function(  ) {},


};