import { Key, KeyName, ModifierKeys } from '../../../Types/Key';
import { CustomElement } from '../../Abstracts/CustomElement';
import { IKbdShortcutElementProps } from './IKbdShortcutElementProps';
declare const KbdShortcutElement_base: import("../../../../Index").ControlBehaviorReturn<typeof CustomElement, import("../../../Behaviors/Disableable").IDisableableProps>;
/**
 * KbdShortcutElement - Represents a user interface element for defining and executing keyboard shortcuts.
 *
 * @element mosaik-kbd-shortcut
 *
 * @description
 * The KbdShortcutElement allows users to define and execute keyboard shortcuts within an application or interface.
 * It provides a visual representation of the keyboard keys or combinations to be pressed by the user to trigger
 * specific actions or commands.
 *
 * @category Interaction
 *
 * @example
 * ```html
 * <mosaik-kbd-shortcut id="copyShortcut"></mosaik-kbd-shortcut>
 * <script>
 *   document.querySelector('#copyShortcut').gesture = { key: 'c', modifiers: ['ctrl'] };
 * </script>
 * ```
 *
 * @public
 */
export declare class KbdShortcutElement extends KbdShortcutElement_base implements IKbdShortcutElementProps {
    private _gesture;
    private _keyDownSubscription;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     * The `is` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `gesture` property.
     *
     * @public
     * @attr
     */
    get gesture(): {
        key: KeyName | string;
        modifiers: ModifierKeys;
    } | null;
    set gesture(value: {
        key: KeyName | string;
        modifiers: ModifierKeys;
    } | null);
    /**
     * @protected
     */
    protected onGesturePropertyChanged(prev: {
        key: Key;
        modifiers: ModifierKeys;
    } | null, next: {
        key: Key;
        modifiers: ModifierKeys;
    } | null): void;
    /**
     * @private
     */
    private onKeyDown;
    /**
     * Determines the modifier key based on the keyboard event.
     * @param {KeyboardEvent} e - The keyboard event.
     * @returns {ModifierKeys} - The determined modifier key.
     */
    private getModifierKey;
}
/**
 * @public
 */
export declare namespace KbdShortcutElement {
    type Props = IKbdShortcutElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-kbd-shortcut': KbdShortcutElement;
    }
}
export {};
//# sourceMappingURL=KbdShortcutElement.d.ts.map