import '../../../assert/js/assert.js';
import '../../../globals.js';
import IOType from '../../../tandem/js/types/IOType.js';
import { EventContext, Node, Pointer, Trail } from '../imports.js';
export default class SceneryEvent<out DOMEvent extends Event = Event> {
    handled: boolean;
    aborted: boolean;
    readonly trail: Trail;
    readonly type: string;
    readonly pointer: Pointer;
    readonly domEvent: DOMEvent | null;
    readonly context: EventContext;
    readonly activeElement: Element | null;
    currentTarget: Node | null;
    target: Node;
    isPrimary: boolean;
    /**
     * @param trail - The trail to the node picked/hit by this input event.
     * @param type - Type of the event, e.g. 'string'
     * @param pointer - The pointer that triggered this event
     * @param context - The original DOM EventContext that caused this SceneryEvent to fire.
     */
    constructor(trail: Trail, type: string, pointer: Pointer, context: EventContext<DOMEvent>);
    /**
     * like DOM SceneryEvent.stopPropagation(), but named differently to indicate it doesn't fire that behavior on the underlying DOM event
     */
    handle(): void;
    /**
     * like DOM SceneryEvent.stopImmediatePropagation(), but named differently to indicate it doesn't fire that behavior on the underlying DOM event
     */
    abort(): void;
    /**
     * Specifies whether the SceneryEvent came from alternative input. See Input.PDOM_EVENT_TYPES for a list of events
     * pdom-related events supported by scenery. These events are exclusively supported by the ParallelDOM for Interactive
     * description.
     */
    isFromPDOM(): boolean;
    /**
     * Returns whether a typical PressListener (that isn't already attached) could start a drag with this event.
     *
     * This can typically be used for patterns where no action should be taken if a press can't be started, e.g.:
     *
     *   down: function( event ) {
     *     if ( !event.canStartPress() ) { return; }
     *
     *     // ... Do stuff to create a node with some type of PressListener
     *
     *     dragListener.press( event );
     *   }
     *
     * NOTE: This ignores non-left mouse buttons (as this is the typical behavior). Custom checks should be done if this
     *       is not suitable.
     */
    canStartPress(): boolean;
    static readonly SceneryEventIO: IOType<SceneryEvent<Event>, {
        type: string;
        domEventType: any;
        point: any;
    }, {
        type: unknown;
        domEventType: unknown;
        point: unknown;
    }>;
}
//# sourceMappingURL=SceneryEvent.d.ts.map