import { ControllerBase, type ControllerHost } from './Abstracts/ControllerBase';
/**
 * The config options for a KeyboardShortcutController.
 */
export interface IKeyboardShortcutControllerConfig {
    pattern: string | RegExp;
    callback?: (e: KeyboardEvent) => void;
    name?: string;
}
/**
 * The Keyboard Shortcut Observer observe keyboard events on the document, if the event.key combination matches the pattern provided invoke the provided handler.
 *
 * @public
 */
export declare class KeyboardShortcutController extends ControllerBase {
    private readonly _callback;
    private _keyDownSubscription;
    private _keyUpSubscription;
    private _directShortcut;
    private _shortcutRegExp;
    private _keysDown;
    private _allowPropagation;
    /**
     * Constructs a new instance of the `KeyboardShortcutController` class.
     *
     * @public
     * @param host - The host element of the controller.
     * @param config - The config options for the controller.
     */
    constructor(host: ControllerHost, config: IKeyboardShortcutControllerConfig);
    /**
     * Gets or sets the `pattern` property.
     *
     * @public
     */
    get pattern(): string | RegExp;
    set pattern(s: string | RegExp);
    /**
     * Gets or sets the `allowPropagation` property.
     *
     * @public
     */
    get allowPropagation(): boolean;
    set allowPropagation(value: boolean);
    /**
     * @public
     * @override
     */
    hostConnected(): void;
    /**
     * @public
     * @override
     */
    hostDisconnected(): void;
    /**
     * @private
     */
    private matches;
    /**
     * @private
     */
    private onKeyDown;
    /**
     * @private
     */
    private onKeyUp;
}
//# sourceMappingURL=KeyboardShortcutController.d.ts.map