import { $Events } from '../../../../../Class/$';
import { Done } from '../../../../../Class/Functional/Done';
import { Fail } from '../../../../../Class/Functional/Fail';
import { Holder } from '../../../../../Class/Holder';
import { Gamepad_J } from '../../../../../client/event/gamepad';
import { System } from '../../../../../system';
import { EE } from '../../../../../types/interface/EE';
import { V } from '../../../../../types/interface/V';
export interface I {
    i: number;
    done: any;
}
export interface O {
    state: V<Gamepad_J> & EE<GamePad_EE>;
}
export type GamePad_EE = {
    buttondown: [number];
    buttonup: [number];
    axischange: [[number, number]];
};
export type GamepadEvents = $Events<GamePad_EE> & GamePad_EE;
export default class _Gamepad extends Holder<I, O> {
    private _gamepad;
    private _connected;
    private _unlisten;
    constructor(system: System);
    f({ i }: {
        i: any;
    }, done: Done<O>, fail: Fail): Promise<void>;
    d(): void;
}
