import '../../../assert/js/assert.js';
import '../../../globals.js';
import { Display } from '../imports.js';
declare class KeyboardFuzzer {
    private readonly display;
    private readonly random;
    private readonly numberOfComponentsTested;
    private keyupListeners;
    private currentElement;
    constructor(display: Display, seed: number);
    /**
     * Randomly decide if we should focus the next element, or stay focused on the current element
     */
    private chooseNextElement;
    private clearListeners;
    private triggerClickEvent;
    /**
     * Trigger a keydown/keyup pair. The keyup is triggered with a timeout.
     */
    private triggerKeyDownUpEvents;
    /**
     * Trigger a keydown/keyup pair with a random KeyboardEvent.code.
     */
    private triggerRandomKeyDownUpEvents;
    /**
     * A random event creator that sends keyboard events. Based on the idea of fuzzMouse, but to test/spam accessibility
     * related keyboard navigation and alternate input implementation.
     *
     * TODO: NOTE: Right now this is a very experimental implementation. Tread wearily https://github.com/phetsims/scenery/issues/1581
     * TODO: @param keyboardPressesPerFocusedItem {number} - basically would be the same as fuzzRate, but handling
     * TODO:     the keydown events for a focused item
     */
    fuzzBoardEvents(fuzzRate: number): void;
    /**
     * Taken from example in http://output.jsbin.com/awenaq/3,
     */
    private triggerDOMEvent;
}
export default KeyboardFuzzer;
//# sourceMappingURL=KeyboardFuzzer.d.ts.map