import '../../../globals.js';
import TReadOnlyProperty from '../../../axon/js/TReadOnlyProperty.js';
import { AllDragListenerOptions, DragListener, DragListenerOptions, Hotkey, KeyboardDragListener, KeyboardDragListenerOptions, PressListenerDOMEvent, PressListenerEvent, SceneryEvent, TInputListener } from '../imports.js';
import { KeyboardDragListenerDOMEvent } from './KeyboardDragListener.js';
type SelfOptions = AllDragListenerOptions<DragListener | KeyboardDragListener, PressListenerDOMEvent | KeyboardDragListenerDOMEvent> & {
    dragListenerOptions?: DragListenerOptions;
    keyboardDragListenerOptions?: KeyboardDragListenerOptions;
};
export type RichDragListenerOptions = SelfOptions;
export default class RichDragListener implements TInputListener {
    readonly dragListener: DragListener;
    readonly keyboardDragListener: KeyboardDragListener;
    readonly isPressedProperty: TReadOnlyProperty<boolean>;
    readonly hotkeys: Hotkey[];
    constructor(providedOptions?: RichDragListenerOptions);
    get isPressed(): boolean;
    dispose(): void;
    /**
     * ********************************************************************
     * Forward input to both listeners
     * ********************************************************************
     */
    interrupt(): void;
    /**
     * ********************************************************************
     * Forward to the KeyboardListener
     * ********************************************************************
     */
    keydown(event: SceneryEvent<KeyboardEvent>): void;
    focusout(event: SceneryEvent): void;
    focusin(event: SceneryEvent): void;
    cancel(): void;
    /**
     * ********************************************************************
     * Forward to the DragListener
     * ********************************************************************
     */
    click(event: SceneryEvent<MouseEvent>): void;
    touchenter(event: PressListenerEvent): void;
    touchmove(event: PressListenerEvent): void;
    focus(event: SceneryEvent<FocusEvent>): void;
    blur(): void;
    down(event: PressListenerEvent): void;
    up(event: PressListenerEvent): void;
    enter(event: PressListenerEvent): void;
    move(event: PressListenerEvent): void;
    exit(event: PressListenerEvent): void;
    pointerUp(event: PressListenerEvent): void;
    pointerCancel(event: PressListenerEvent): void;
    pointerMove(event: PressListenerEvent): void;
    pointerInterrupt(): void;
}
export {};
//# sourceMappingURL=RichDragListener.d.ts.map