export default BrowserEvents;
declare namespace BrowserEvents {
    let blockFocusCallbacks: boolean;
    let dispatchingFocusEvents: boolean;
    /**
     * Adds a Display to the list of displays that will be notified of input events.
     * @public
     *
     * @param {Display} display
     * @param {boolean} attachToWindow - Whether events should be attached to the window. If false, they will be
     *                                   attached to the Display's domElement.
     * @param {boolean|null} passiveEvents - The value of the `passive` option for adding/removing DOM event listeners
     */
    function addDisplay(display: Display, attachToWindow: boolean, passiveEvents: boolean | null): void;
    /**
     * Removes a Display to the list of displays that will be notified of input events.
     * @public
     *
     * @param {Display} display
     * @param {boolean} attachToWindow - The value provided to addDisplay
     * @param {boolean|null} passiveEvents - The value of the `passive` option for adding/removing DOM event listeners
     */
    function removeDisplay(display: Display, attachToWindow: boolean, passiveEvents: boolean | null): void;
    /**
     * Returns the value to provide as the 3rd parameter to addEventListener/removeEventListener.
     * @private
     *
     * @param {boolean|null} passiveEvents
     * @param {boolean} isMain - If false, it is used on the "document" for workarounds.
     * @returns {Object|boolean}
     */
    function getEventOptions(passiveEvents: boolean | null, isMain: boolean): Object | boolean;
    let listenersAttachedToWindow: number;
    let listenersAttachedToElement: number;
    let attachedDisplays: never[];
    let canUsePointerEvents: boolean;
    let canUseMSPointerEvents: any;
    let pointerListenerTypes: string[];
    let msPointerListenerTypes: string[];
    let touchListenerTypes: string[];
    let mouseListenerTypes: string[];
    let wheelListenerTypes: string[];
    let altListenerTypes: string[];
    /**
     * Returns all event types that will be listened to on this specific platform.
     * @private
     *
     * @returns {Array.<string>}
     */
    function getNonWheelUsedTypes(): Array<string>;
    /**
     * Connects event listeners directly to the window.
     * @private
     *
     * @param {boolean|null} passiveEvents - The value of the `passive` option for adding/removing DOM event listeners
     */
    function connectWindowListeners(passiveEvents: boolean | null): void;
    /**
     * Disconnects event listeners from the window.
     * @private
     *
     * @param {boolean|null} passiveEvents - The value of the `passive` option for adding/removing DOM event listeners
     */
    function disconnectWindowListeners(passiveEvents: boolean | null): void;
    /**
     * Either adds or removes event listeners to an object, depending on the flag.
     * @private
     *
     * @param {*} element - The element (window or DOM element) to add listeners to.
     * @param {boolean} addOrRemove - If true, listeners will be added. If false, listeners will be removed.
     * @param {boolean|null} passiveEvents - The value of the `passive` option for adding/removing DOM event listeners
     *                                       NOTE: if it is passed in as null, the default value for the browser will be
     *                                       used.
     */
    function addOrRemoveListeners(element: any, addOrRemove: boolean, passiveEvents: boolean | null): void;
    /**
     * Sets an event from the window to be batched on all of the displays.
     * @private
     *
     * @param {EventContext} eventContext
     * @param {BatchedDOMEventType} batchType - TODO: turn to full enumeration? https://github.com/phetsims/scenery/issues/1581
     * @param {string} inputCallbackName - e.g. 'mouseDown', will trigger Input.mouseDown
     * @param {boolean} triggerImmediate - Whether this will be force-executed now, causing all batched events to fire.
     *                                     Useful for events (like mouseup) that responding synchronously is
     *                                     necessary for certain security-sensitive actions (like triggering
     *                                     full-screen).
     */
    function batchWindowEvent(eventContext: EventContext, batchType: BatchedDOMEventType, inputCallbackName: string, triggerImmediate: boolean): void;
    function onpointerdown(domEvent: Event): void;
    function onpointerup(domEvent: Event): void;
    function onpointermove(domEvent: Event): void;
    function onpointerover(domEvent: Event): void;
    function onpointerout(domEvent: Event): void;
    function onpointercancel(domEvent: Event): void;
    function ongotpointercapture(domEvent: Event): void;
    function onlostpointercapture(domEvent: Event): void;
    function onMSPointerDown(domEvent: Event): void;
    function onMSPointerUp(domEvent: Event): void;
    function onMSPointerMove(domEvent: Event): void;
    function onMSPointerOver(domEvent: Event): void;
    function onMSPointerOut(domEvent: Event): void;
    function onMSPointerCancel(domEvent: Event): void;
    function ontouchstart(domEvent: Event): void;
    function ontouchend(domEvent: Event): void;
    function ontouchmove(domEvent: Event): void;
    function ontouchcancel(domEvent: Event): void;
    function onmousedown(domEvent: Event): void;
    function onmouseup(domEvent: Event): void;
    function onmousemove(domEvent: Event): void;
    function onmouseover(domEvent: Event): void;
    function onmouseout(domEvent: Event): void;
    function onwheel(domEvent: Event): void;
    function onfocusin(domEvent: any): void;
    function onfocusout(domEvent: any): void;
    function oninput(domEvent: any): void;
    function onchange(domEvent: any): void;
    function onclick(domEvent: any): void;
    function onkeydown(domEvent: any): void;
    function onkeyup(domEvent: any): void;
}
import { Display } from '../imports.js';
import { EventContext } from '../imports.js';
import { BatchedDOMEventType } from '../imports.js';
//# sourceMappingURL=BrowserEvents.d.ts.map