/** Canonical trigger effect types from the DualSense firmware */ export declare enum TriggerEffect { /** No resistance — default linear feel */ Off = "off", /** Zone-based continuous resistance */ Feedback = "feedback", /** Resistance with a snap release point, like a weapon trigger */ Weapon = "weapon", /** Weapon feel with snap-back force, like drawing a bow */ Bow = "bow", /** Rhythmic two-stroke oscillation */ Galloping = "galloping", /** Zone-based oscillation with configurable amplitude and frequency */ Vibration = "vibration", /** Dual-amplitude vibration with frequency and period control */ Machine = "machine" } /** Zone-based resistance with per-zone force control */ export interface FeedbackEffect { effect: TriggerEffect.Feedback; /** Where resistance begins along trigger travel (0-1) */ position: number; /** Resistance strength (0-1, maps to firmware's 1-8 scale) */ strength: number; } /** Resistance with a start position, snap release point, and force */ export interface WeaponEffect { effect: TriggerEffect.Weapon; /** Where resistance begins (0-1, maps to zones 2-7) */ start: number; /** Where snap release occurs (0-1, maps to zones 3-8, must be after start) */ end: number; /** Resistance strength (0-1) */ strength: number; } /** Weapon feel with snap-back force */ export interface BowEffect { effect: TriggerEffect.Bow; /** Where resistance begins (0-1) */ start: number; /** Where snap-back occurs (0-1, must be after start) */ end: number; /** Pull strength (0-1) */ strength: number; /** Snap-back force (0-1) */ snapForce: number; } /** Rhythmic two-stroke oscillation */ export interface GallopingEffect { effect: TriggerEffect.Galloping; /** Where effect begins (0-1) */ start: number; /** Where effect ends (0-1) */ end: number; /** First foot timing (0-1, maps to 0-6) */ firstFoot: number; /** Second foot timing (0-1, maps to 0-7, must be after firstFoot) */ secondFoot: number; /** Oscillation frequency in Hz (1-255) */ frequency: number; } /** Zone-based oscillation with amplitude and frequency control */ export interface VibrationEffect { effect: TriggerEffect.Vibration; /** Where vibration begins along trigger travel (0-1) */ position: number; /** Vibration amplitude (0-1, maps to firmware's 1-8 scale) */ amplitude: number; /** Vibration frequency in Hz (1-255) */ frequency: number; } /** Dual-amplitude vibration with frequency and period */ export interface MachineEffect { effect: TriggerEffect.Machine; /** Where effect begins (0-1) */ start: number; /** Where effect ends (0-1) */ end: number; /** First amplitude (0-1, maps to 0-7) */ amplitudeA: number; /** Second amplitude (0-1, maps to 0-7) */ amplitudeB: number; /** Vibration frequency in Hz (1-255) */ frequency: number; /** Period in tenths of a second */ period: number; } export type TriggerFeedbackConfig = { effect: TriggerEffect.Off; } | FeedbackEffect | WeaponEffect | BowEffect | GallopingEffect | VibrationEffect | MachineEffect; /** Build the 11-byte trigger effect block from a config */ export declare function buildTriggerEffectBlock(config: TriggerFeedbackConfig): Uint8Array; /** Holds the desired adaptive trigger feedback state and translates it for HID output */ export declare class TriggerFeedback { private _config; /** The current feedback configuration */ get config(): TriggerFeedbackConfig; /** The current effect type */ get effect(): TriggerEffect; /** Set adaptive trigger feedback */ set(config: TriggerFeedbackConfig): void; /** Reset to no resistance */ reset(): void; /** Build the raw 11-byte effect block for HID output */ toBytes(): Uint8Array; /** String key for change detection in the polling loop */ toKey(): string; } //# sourceMappingURL=trigger_feedback.d.ts.map