import { Momentary, Analog, AnalogParams, Battery, BatteryParams, Lightbar, Mute, Unisense, UnisenseParams, Dpad, DpadParams, Touchpad } from "./elements";
import { AccessProfileLeds } from "./elements/access_profile_leds";
import { AccessStatusLed } from "./elements/access_status_led";
import { AccessPlayerIndicatorLed } from "./elements/access_player_indicator";
import { Input, InputParams } from "./input";
import { AccessHID } from "./hid/access/access_hid";
import type { FirmwareInfo } from "./hid/firmware_info";
import type { FactoryInfo } from "./hid/factory_info";
/** Settings for your DualSense Access controller */
export interface DualsenseAccessParams extends InputParams {
    /** Sets the source for HID events. Default: decide automatically */
    hid?: AccessHID | null;
    /** Settings for the B1 button */
    b1?: InputParams;
    /** Settings for the B2 button */
    b2?: InputParams;
    /** Settings for the B3 button */
    b3?: InputParams;
    /** Settings for the B4 button */
    b4?: InputParams;
    /** Settings for the B5 button */
    b5?: InputParams;
    /** Settings for the B6 button */
    b6?: InputParams;
    /** Settings for the B7 button */
    b7?: InputParams;
    /** Settings for the B8 button */
    b8?: InputParams;
    /** Settings for the center button */
    center?: InputParams;
    /** Settings for the PS button */
    ps?: InputParams;
    /** Settings for the profile cycle button */
    profile?: InputParams;
    /** Settings for the analog stick */
    stick?: AnalogParams;
    /** Settings for the left stick/trigger/bumper group */
    left?: UnisenseParams;
    /** Settings for the right stick/trigger/bumper group */
    right?: UnisenseParams;
    /** Settings for the D-pad */
    dpad?: DpadParams;
    /** Settings for the Cross button */
    cross?: InputParams;
    /** Settings for the Circle button */
    circle?: InputParams;
    /** Settings for the Square button */
    square?: InputParams;
    /** Settings for the Triangle button */
    triangle?: InputParams;
    /** Settings for the touchpad */
    touchpad?: InputParams;
    /** Settings for the Options button */
    options?: InputParams;
    /** Settings for the Create button */
    create?: InputParams;
    /** Settings for the Mute button */
    mute?: InputParams;
    /** Settings for the battery */
    battery?: BatteryParams;
    /** Settings for the connection indicator */
    connection?: InputParams;
}
/** Tracks the active profile ID (1–3) */
declare class ProfileId extends Input<number> {
    state: number;
    get active(): boolean;
}
/** Represents a DualSense Access controller */
export declare class DualsenseAccess extends Input<DualsenseAccess> {
    readonly state: DualsenseAccess;
    /** Hardware button 1 */
    readonly b1: Momentary;
    /** Hardware button 2 */
    readonly b2: Momentary;
    /** Hardware button 3 */
    readonly b3: Momentary;
    /** Hardware button 4 */
    readonly b4: Momentary;
    /** Hardware button 5 */
    readonly b5: Momentary;
    /** Hardware button 6 */
    readonly b6: Momentary;
    /** Hardware button 7 */
    readonly b7: Momentary;
    /** Hardware button 8 */
    readonly b8: Momentary;
    /** Center button */
    readonly center: Momentary;
    /** PlayStation button */
    readonly ps: Momentary;
    /** Profile cycle button */
    readonly profile: Momentary;
    /** Analog stick (x, y, button = stick click) */
    readonly stick: Analog;
    /** Left stick, trigger (L2), and bumper (L1) — profile-mapped */
    readonly left: Unisense;
    /** Right stick, trigger (R2), and bumper (R1) — profile-mapped */
    readonly right: Unisense;
    /** D-pad — profile-mapped */
    readonly dpad: Dpad;
    /** Cross button — profile-mapped */
    readonly cross: Momentary;
    /** Circle button — profile-mapped */
    readonly circle: Momentary;
    /** Square button — profile-mapped */
    readonly square: Momentary;
    /** Triangle button — profile-mapped */
    readonly triangle: Momentary;
    /** Touchpad (button only, contacts stay at neutral) — profile-mapped */
    readonly touchpad: Touchpad;
    /** Options button — profile-mapped */
    readonly options: Momentary;
    /** Create button — profile-mapped */
    readonly create: Momentary;
    /** Mute button — profile-mapped */
    readonly mute: Mute;
    /** Battery level and charging status */
    readonly battery: Battery;
    /** Active profile ID (1–3) */
    readonly profileId: ProfileId;
    /** Whether a controller is connected */
    readonly connection: Momentary;
    /** RGB light bar */
    readonly lightbar: Lightbar;
    /** Profile indicator LEDs (3 LEDs, animation modes) */
    readonly profileLeds: AccessProfileLeds;
    /** Player indicator LED pattern (6-segment cross) */
    readonly playerIndicator: AccessPlayerIndicatorLed;
    /** White status LED */
    readonly statusLed: AccessStatusLed;
    /** Active interval timers, cleared on dispose */
    private readonly timers;
    /** Buffered battery reading */
    private readonly pendingBattery;
    /** The underlying HID coordinator */
    readonly hid: AccessHID;
    /** Firmware and hardware information */
    get firmwareInfo(): FirmwareInfo;
    /** Factory information (serial number, body color, board revision) */
    get factoryInfo(): FactoryInfo;
    /** True if any input is active */
    get active(): boolean;
    /** Returns true if connected via Bluetooth */
    get wireless(): boolean;
    /** Factory-stamped serial number */
    get serialNumber(): string;
    constructor(params?: DualsenseAccessParams);
    /** Stop all internal timers and release resources */
    dispose(): void;
    /** Distributes HID state to inputs */
    private processHID;
}
export {};
//# sourceMappingURL=dualsense_access.d.ts.map