/** * Audio device matching utilities for the DualSense controller. * * The DualSense registers as a USB Audio Class device (speaker + microphone) * when connected over USB. These utilities help locate the corresponding * audio devices in the Web Audio API or native audio libraries. * * Note: Audio devices are only available over USB, not Bluetooth. */ /** USB Vendor ID for Sony Interactive Entertainment */ export declare const DUALSENSE_AUDIO_VENDOR_ID = 1356; /** USB Product ID for the DualSense controller */ export declare const DUALSENSE_AUDIO_PRODUCT_ID = 3302; /** * Known device label patterns for DualSense audio devices across platforms. * Browser `enumerateDevices()` labels vary by OS: * - Windows: "Wireless Controller" * - macOS: "Wireless Controller" * - Linux: "Wireless Controller" or "Sony Interactive Entertainment Wireless Controller" */ export declare const DUALSENSE_AUDIO_LABELS: readonly ["Wireless Controller", "DualSense"]; /** Filtered result from audio device enumeration */ export interface DualsenseAudioDevices { /** Audio output devices (speaker/headphone) */ outputs: MediaDeviceInfo[]; /** Audio input devices (microphone) */ inputs: MediaDeviceInfo[]; } /** * Find DualSense audio devices using the Web Audio API. * * Requires `navigator.mediaDevices` (browser only). Returns matching * audio input and output devices based on known label patterns. * * Note: Device labels may be empty until the user grants microphone * or camera permission via `getUserMedia()`. * * @example * ```typescript * import { findDualsenseAudioDevices } from "dualsense-ts"; * * const { outputs, inputs } = await findDualsenseAudioDevices(); * if (outputs.length > 0) { * const ctx = new AudioContext({ sinkId: outputs[0].deviceId }); * // Route audio to the controller's speaker * } * if (inputs.length > 0) { * const stream = await navigator.mediaDevices.getUserMedia({ * audio: { deviceId: { exact: inputs[0].deviceId } }, * }); * // Capture from the controller's microphone * } * ``` */ export declare function findDualsenseAudioDevices(): Promise; //# sourceMappingURL=audio.d.ts.map