import { TimeoutTimer } from 'parsegraph-timing';
import { Matrix3x3 } from 'parsegraph-matrix';
import { Direction } from 'parsegraph-direction';
import Color from 'parsegraph-color';
import BlockPainter from 'parsegraph-blockpainter';
import AnimatedSpotlight from './AnimatedSpotlight';
import Viewport from './Viewport';
import EventNode from './EventNode';
import Method from 'parsegraph-method';
export declare const TOUCH_SENSITIVITY = 1;
export declare const MOUSE_SENSITIVITY = 1;
export declare function getImpulse(): number[];
export declare function setImpulse(threshold: number, decay: number): void;
export declare function getMouseImpulseAdjustment(): number;
export declare function setMouseImpulseAdjustment(value: number): void;
export declare function getWheelImpulseAdjustment(): number;
export declare function setWheelImpulseAdjustment(value: number): void;
export declare function getImpulseRetention(): number;
export declare function setImpulseRetention(value: number): void;
export declare const SLIDER_NUDGE = 0.01;
export declare const INPUT_LAYOUT_TIME = 15;
export default class KeyInput {
    _viewport: Viewport;
    _mousedownTime: number;
    _mouseupTimeout: TimeoutTimer;
    _updateRepeatedly: boolean;
    _caretPainter: BlockPainter;
    _caretPos: number[];
    _caretColor: Color;
    _focusedNode: EventNode;
    _focusedLabel: boolean;
    _clicksDetected: number;
    _spotlight: AnimatedSpotlight;
    _mouseVersion: number;
    keydowns: {
        [id: string]: Date;
    };
    _zoomTouchDistance: number;
    _selectedSlider: EventNode;
    listener: Method;
    _attachedMouseListener: Function;
    _horizontalJerk: number;
    _verticalJerk: number;
    _horizontalImpulse: number;
    _verticalImpulse: number;
    _clickedNode: EventNode;
    constructor(viewport: Viewport);
    adjustSelectedSlider(newVal: number, isAbsolute?: boolean): void;
    setSelectedSlider(): void;
    sliderKey(keyName: string): boolean;
    focusMovementNavKey(keyName: string): boolean;
    focusNavKey(keyName: string, event: any): boolean;
    focusKey(keyName: string, event: any): boolean;
    carousel(): import("./Carousel").default;
    navKey(keyName: string, event: any): boolean;
    onKeydown(event: any): boolean;
    onKeyup(event: any): boolean;
    moveToEnd(dir: Direction): boolean;
    moveForwardly(skipHorizontalInward?: boolean, event?: any): boolean;
    moveInwardly(dir: Direction): boolean;
    moveOutwardly(dir: Direction): boolean;
    moveFocus(dir: Direction): boolean;
    scheduleRepaint(): void;
    addImpulse(x: number, y: number): void;
    clearImpulse(): void;
    resetImpulse(): void;
    hasImpulse(): boolean;
    hasJerk(): boolean;
    checkImpulse(THRESHOLD: number, DECAY: number): boolean;
    onWheel(event: any): boolean;
    camera(): import("parsegraph-camera").default;
    onTouchzoom(event: any): boolean;
    onTouchmove(event: any): any;
    mouseDragListener(x: number, y: number, dx: number, dy: number): boolean;
    onMousedown(event: any): boolean;
    onMousemove(event: any): any;
    onTouchstart(event: any): boolean;
    sliderListener(x: number): boolean;
    checkForNodeClick(x: number, y: number, onlySlider?: boolean): EventNode;
    afterMouseTimeout(): void;
    onMouseup(event: any): boolean;
    onTouchend(event: any): boolean;
    SetListener(listener: Function, thisArg?: object): void;
    updateRepeatedly(): boolean;
    mouseVersion(): number;
    mouseChanged(): void;
    resetCamera(complete?: boolean): void;
    update(t: Date): boolean;
    getKey(key: string): 0 | 1;
    keyElapsed(key: string, t: Date): number;
    window(): import("parsegraph-window").BasicWindow;
    viewport(): Viewport;
    paint(): void;
    focusedNode(): EventNode;
    setFocusedNode(focusedNode: EventNode): void;
    focusedLabel(): boolean;
    menu(): import("./BurgerMenu").default;
    world(): import("./World").default;
    contextChanged(isLost: boolean): void;
    render(world: Matrix3x3, scale: number): boolean;
}
//# sourceMappingURL=KeyInput.d.ts.map