Repository: expo/expo
File: packages/expo-audio/src/Audio.types.ts (TypeScript)

Code before:
   * - `'duckOthers'`: Requests audio focus with ducking. Other apps lower their volume but continue playing.
   * - `'mixWithOthers'`: Audio plays alongside other apps without interrupting them.
   *   On Android, this means no audio focus is requested. Best suited for sound effects,
   *   UI feedback, or short audio clips.
   *
   * @default 'mixWithOthers'
   */
  interruptionMode: InterruptionMode;
  /**
   * Determines how the audio session interacts with other sessions on Android.
   *
   * @platform android
   * @deprecated Use `interruptionMode` instead, which now works on both platforms.
   */
  interruptionModeAndroid?: InterruptionModeAndroid;
  /**
   * Whether the audio session allows recording.
   *
   * @default false
   * @platform ios
   */
  allowsRecording: boolean;
  /**
   * Whether the audio session stays active when the app moves to the background.
   *
   * **Note**: On Android you have to enable the lockscreen controls with [`setActiveForLockScreen`](#setactiveforlockscreenactive-metadata-options) for sustained background playback. Otherwise, the audio will stop after approximately 3 minutes of background playback (OS limitation). Make sure to also appropriately [configure the config-plugin](#configuration-in-app-config)
   * @default false
   */
  shouldPlayInBackground: boolean;
  /**
   * Whether the audio should route through the earpiece.
   * @platform android
   */
  shouldRouteThroughEarpiece: boolean;
  /**
   * Whether audio recording should continue when the app moves to the background.
   *
   * @default false
   * @platform ios
   * @platform android
   */
  allowsBackgroundRecording?: boolean;
};

/**
 * Audio interruption behavior modes.
 *
 * Controls how your app's audio interacts with other apps' audio.
 *
 * - `'doNotMix'`: Requests exclusive audio focus. Other apps will pause their audio.
 * - `'duckOthers'`: Requests audio focus with ducking. Other apps lower their volume but continue playing.

Review comment (suggestion):
```suggestion
   * > **Note**: On Android, you have to enable the lockscreen controls with [`setActiveForLockScreen`](#setactiveforlockscreenactive-metadata-options) for sustained background playback. Otherwise, the audio will stop after approximately 3 minutes of background playback (OS limitation). Make sure to also appropriately [configure the config-plugin](#configuration-in-app-config)
```

Let's update tihs to use a callout so it is not easily missed when going through the doc.

Code after:
  audioSource?: RecordingSource;
};

export type AudioMode = {
  /**
   * Determines if audio playback is allowed when the device is in silent mode.
   *
   * @platform ios
   */
  playsInSilentMode: boolean;
  /**
   * Determines how the audio session interacts with other audio sessions.
   *
   * - `'doNotMix'`: Requests exclusive audio focus. Other apps will pause their audio.
   * - `'duckOthers'`: Requests audio focus with ducking. Other apps lower their volume but continue playing.
   * - `'mixWithOthers'`: Audio plays alongside other apps without interrupting them.
   *   On Android, this means no audio focus is requested. Best suited for sound effects,
   *   UI feedback, or short audio clips.
   *
   * @default 'mixWithOthers'
   */
  interruptionMode: InterruptionMode;
  /**
   * Determines how the audio session interacts with other sessions on Android.
   *
   * @platform android
   * @deprecated Use `interruptionMode` instead, which now works on both platforms.
   */
  interruptionModeAndroid?: InterruptionModeAndroid;
  /**
   * Whether the audio session allows recording.
   *
   * @default false
   * @platform ios
   */
  allowsRecording: boolean;
  /**
   * Whether the audio session stays active when the app moves to the background.
   *
   * > **Note**: On Android, you have to enable the lockscreen controls with [`setActiveForLockScreen`](#setactiveforlockscreenactive-metadata-options) for sustained background playback. Otherwise, the audio will stop after approximately 3 minutes of background playback (OS limitation). Make sure to also appropriately [configure the config-plugin](#configuration-in-app-config).
   * @default false
   */
  shouldPlayInBackground: boolean;
  /**
   * Whether the audio should route through the earpiece.
   * On iOS, this only has an effect when `allowsRecording` is `true` (i.e., the audio session
   * category is `.playAndRecord`). When `false` (the default), audio is routed through the speaker.
   * @default false
   */
  shouldRouteThroughEarpiece: boolean;
  /**