/// <reference types="jquery" />
import { EventEmitter, InitModelOf, Key, KeyStroke, KeyStrokeContext, KeyStrokeManagerEventMap, KeyStrokeModel, ObjectModel, Session, SomeRequired } from '../index';
import KeyboardEventBase = JQuery.KeyboardEventBase;
export declare class KeyStrokeManager extends EventEmitter implements KeyStrokeManagerModel {
    model: KeyStrokeManagerModel;
    initModel: SomeRequired<this['model'], 'session'>;
    eventMap: KeyStrokeManagerEventMap;
    self: KeyStrokeManager;
    session: Session;
    helpKeyStroke: KeyStrokeModel;
    swallowF1: boolean;
    filters: ({
        filter(keyStroke: KeyStroke): boolean;
    })[];
    protected _helpRendered: boolean;
    protected _renderedKeys: Key[];
    constructor();
    init(model: InitModelOf<this>): void;
    installTopLevelKeyStrokeHandlers($container: JQuery): void;
    /**
     * Installs the given keystroke context. This method has no effect if the context is null, or already installed.
     */
    installKeyStrokeContext(keyStrokeContext: KeyStrokeContext): void;
    /**
     * Uninstalls the given keystroke context. This method has no effect if the context is null, or not installed.
     */
    uninstallKeyStrokeContext(keyStrokeContext: KeyStrokeContext): void;
    /**
     * Visualizes the keys supported by the given keyStrokeContext.
     */
    protected _renderKeys(keyStrokeContext: KeyStrokeContext, event: KeyboardEventWithMetaData): void;
    protected _isPreventedByDescendantContext(key: Key, event: KeyboardEventWithMetaData, descendantContexts: KeyStrokeContext[]): boolean;
    /**
     * Handles the keystroke event by the keyStrokeContext's keystroke handlers, but returns immediately once a keystroke requests immediate stop of propagation.
     */
    protected _handleKeyStrokeEvent(keyStrokeContext: KeyStrokeContext, event: KeyboardEventBase): void;
    protected _filter(keyStroke: KeyStroke): boolean;
    invokeAcceptInputOnActiveValueField(keyStroke: KeyStroke, keyStrokeContext: KeyStrokeContext): boolean;
    protected _isHelpKeyStroke(event: KeyboardEventBase): boolean;
    protected _installHelpDisposeListener(event: KeyboardEventBase): boolean;
    protected _onKeyEvent(keyStrokeContext: KeyStrokeContext, event: KeyboardEventWithMetaData): boolean;
    addFilter(filter: {
        filter(keyStroke: KeyStroke): boolean;
    }): void;
    removeFilter(filter: {
        filter(keyStroke: KeyStroke): boolean;
    }): void;
}
export interface KeyStrokeManagerModel extends ObjectModel<KeyStrokeManager> {
    session?: Session;
}
export interface KeyboardEventWithMetaData extends KeyboardEventBase {
    originalEvent?: KeyboardEvent & {
        renderingHelp?: boolean;
        keyStrokeContexts?: KeyStrokeContext[];
    };
}
//# sourceMappingURL=KeyStrokeManager.d.ts.map