export declare const enum LedOptions { Off = 0, PlayerLedBrightness = 1, Uninterruptible = 2, Both = 3 } export declare enum PulseOptions { Off = 0, FadeBlue = 1, FadeOut = 2 } export declare enum MuteLedMode { Off = 0, On = 1, Pulse = 2 } export declare enum Brightness { High = 0, Medium = 1, Low = 2 } export declare enum PlayerID { Player1 = 4, Player2 = 10, Player3 = 21, Player4 = 27, All = 31 } /** Audio output routing — controls how L/R channels map to headphone and speaker */ export declare enum AudioOutput { /** Stereo L+R to headphone, speaker muted */ Headphone = 0, /** Left channel to headphone (mono), speaker muted */ HeadphoneMono = 16, /** Left channel to headphone, right channel to speaker */ Split = 32, /** Headphone muted, right channel to speaker only */ Speaker = 48 } /** Microphone input source selection */ export declare enum MicSelect { /** Use internal microphone */ Internal = 1, /** Use headset microphone */ Headset = 2 } /** Microphone processing flags (can be combined) */ export declare enum MicFlag { EchoCancellation = 4, NoiseCancellation = 8 } /** Microphone input mode — bits 6-7 of audio flags */ export declare enum MicMode { /** Default mode */ Default = 0, /** Chat mode */ Chat = 64, /** Automatic speech recognition mode */ ASR = 128 } /** Power save control — per-subsystem mute/disable flags (byte 10) */ export declare enum PowerSave { DisableTouch = 1, DisableMotion = 2, DisableHaptics = 4, DisableAudio = 8, MuteMicrophone = 16, MuteSpeaker = 32, MuteHeadphone = 64, MuteHaptics = 128 } export declare const enum CommandScopeA { HapticRumble = 1, PrimaryRumble = 2, RightTriggerFeedback = 4, LeftTriggerFeedback = 8, HeadphoneVolume = 16, SpeakerVolume = 32, MicrophoneVolume = 64, AudioFlags = 128 } export declare const enum CommandScopeB { MicrophoneLED = 1, PowerSave = 2, TouchpadLeds = 4, DisableLeds = 8, PlayerLeds = 16, MotorPower = 64, AudioFlags2 = 128 } export type CommandScope = CommandScopeA | CommandScopeB; /** Byte value, 0 to 255 */ type Intensity = number; /** 48 byte packet that is sent to the controller to update LEDs, rumble, etc */ export interface DualsenseCommand extends Uint8Array { /** Packet type */ [0]: 0x2; /** Scope A — which subsystems are affected */ [1]: CommandScopeA | 0xff; /** Scope B — which subsystems are affected */ [2]: CommandScopeB | (0x1 | 0x2 | 0x4 | 0x10 | 0x40); /** Right rumble intensity */ [3]: Intensity; /** Left rumble intensity */ [4]: Intensity; /** Headphone volume (0x00–0x7F) */ [5]: Intensity; /** Speaker volume (0x00–0xFF, effective range 0x3D–0x64) */ [6]: Intensity; /** Internal microphone volume (0x00–0x40) */ [7]: Intensity; /** Audio flags: bits 0-3 mic source/processing, bits 4-5 output routing, bits 6-7 mic mode */ [8]: number; /** Mute button LED mode */ [9]: MuteLedMode; /** Power save control — per-subsystem mute/disable bitfield */ [10]: PowerSave | 0x00; [11]: number; [12]: number; [13]: number; [14]: number; [15]: number; [16]: number; [17]: number; [18]: number; [19]: number; [20]: number; [21]: number; [22]: number; [23]: number; [24]: number; [25]: number; [26]: number; [27]: number; [28]: number; [29]: number; [30]: number; [31]: number; [32]: number; [33]: 0; [34]: 0; [35]: 0; [36]: 0; /** Audio flags 2: bits 0-2 speaker preamp gain (0-7), bit 4 beam forming */ [37]: number; [38]: 0; [39]: LedOptions; [40]: 0; [41]: 0; [42]: PulseOptions; [43]: Brightness; [44]: PlayerID; [45]: Intensity; [46]: Intensity; [47]: Intensity; [48]: never; } export {}; //# sourceMappingURL=command.d.ts.map