import { AppObject } from "@vived/core";
import { AppObjectEntity } from "@vived/core";
import { AppObjectRepo } from "@vived/core";
export interface KeyboardController {
    onKeyDown?: (e: KeyboardEvent) => void;
    onKeyUp?: (e: KeyboardEvent) => void;
}
export declare abstract class KeyboardInputEntity extends AppObjectEntity {
    static readonly type = "KeyboardInputEntity";
    abstract get eventElement(): HTMLElement | undefined;
    abstract setEventElement: (eventElement: HTMLElement) => void;
    abstract clearInputElement: () => void;
    abstract registerController: (controller: KeyboardController) => void;
    abstract removeController: (controller: KeyboardController) => void;
    abstract isKeyPressed: (keyCode: string) => boolean;
    static get: (appObjects: AppObjectRepo) => KeyboardInputEntity | undefined;
}
export declare function makeKeyboardInput(appObject: AppObject): KeyboardInputEntity;
//# sourceMappingURL=KeyboardInput.d.ts.map