import '../../../../assert/js/assert.js';
import '../../../../globals.js';
/**
 * Reusable icons to be created for keyboard help shortcuts dialogs.
 * This type is only a collection of static methods, and should not be instantiated.
 *
 * @author Michael Kauzmann (PhET Interactive Simulations)
 */
import Dimension2 from '../../../../dot/js/Dimension2.js';
import { EmptySelfOptions } from '../../../../phet-core/js/optionize.js';
import StrictOmit from '../../../../phet-core/js/types/StrictOmit.js';
import { HBoxOptions, HotkeyData, Node, OneKeyStrokeEntry } from '../../../../scenery/js/imports.js';
import TextKeyNode from '../TextKeyNode.js';
type SelfOptions = EmptySelfOptions;
type KeyboardHelpIconFactoryOptions = SelfOptions & StrictOmit<HBoxOptions, 'children'>;
type WithPlusIconSelfOptions = {
    plusIconSize?: Dimension2;
};
type WithPlusIconOptions = WithPlusIconSelfOptions & KeyboardHelpIconFactoryOptions;
export default class KeyboardHelpIconFactory {
    static readonly DEFAULT_ICON_SPACING = 6.5;
    constructor();
    /**
     * Horizontal layout of a set of icons, in left-to-right order.
     */
    static iconRow(icons: Node[], providedOptions?: KeyboardHelpIconFactoryOptions): Node;
    /**
     * Two icons with horizontal layout, separated by 'or' text.
     */
    static iconOrIcon(leftIcon: Node, rightIcon: Node, providedOptions?: KeyboardHelpIconFactoryOptions): Node;
    /**
     * Two icons with horizontal layout, and separated by '-' text. This is useful for a range, like 0-9.
     */
    static iconToIcon(leftIcon: Node, rightIcon: Node, providedOptions?: KeyboardHelpIconFactoryOptions): Node;
    /**
     * Two icons with horizontal layout, separated by '+' text.
     */
    static iconPlusIcon(leftIcon: Node, rightIcon: Node, providedOptions?: WithPlusIconOptions): Node;
    /**
     * Returns a row of icons separated by '+'. Useful when a keyboard shortcut has multiple modifier keys for one
     * key press listener.
     */
    static iconPlusIconRow(iconList: Node[], providedOptions?: WithPlusIconOptions): Node;
    /**
     * An icon with horizontal layout in order: shift, plus, and provided icon.
     */
    static shiftPlusIcon(icon: Node, providedOptions?: WithPlusIconOptions): Node;
    /**
     * An icon with horizontal layout in order: alt, plus, and provided icon.
     */
    static altPlusIcon(icon: Node, providedOptions?: WithPlusIconOptions): Node;
    /**
     * "Space or Enter" icon
     */
    static spaceOrEnter(): Node;
    /**
     * An icon with up and down arrows, separated by 'or', in horizontal layout.
     */
    static upOrDown(): Node;
    /**
     * An icon with up and down arrow keys, in a horizontal layout.
     */
    static wasdRowIcon(providedOptions?: KeyboardHelpIconFactoryOptions): Node;
    /**
     * An icon with the 4 arrow keys, in a horizontal layout.
     */
    static arrowKeysRowIcon(providedOptions?: KeyboardHelpIconFactoryOptions): Node;
    /**
     * An icon with the 4 arrow keys, WASD keys, separated by "or", in horizontal layout.
     */
    static arrowOrWasdKeysRowIcon(providedOptions?: KeyboardHelpIconFactoryOptions): Node;
    /**
     * An icon with page up/down keys, in horizontal layout.
     */
    static pageUpPageDownRowIcon(providedOptions?: KeyboardHelpIconFactoryOptions): Node;
    /**
     * An icon with up and down arrow keys, in horizontal layout.
     */
    static upDownArrowKeysRowIcon(providedOptions?: KeyboardHelpIconFactoryOptions): Node;
    /**
     * An icon with left and right arrow keys, in horizontal layout.
     */
    static leftRightArrowKeysRowIcon(providedOptions?: KeyboardHelpIconFactoryOptions): Node;
    /**
     * Maps English key strings to their corresponding icon nodes.
     */
    static readonly ENGLISH_KEY_TO_KEY_NODE: Map<OneKeyStrokeEntry, TextKeyNode>;
    /**
     * Create an icon Node for a hotkey, based on the provided HotkeyData. Combines key icons with plus icons.
     * For example, a HotkeyData with 'shift+r' would produce a row with the shift icon, a plus icon, and the r icon.
     */
    static fromHotkeyData(hotkeyData: HotkeyData): Node;
}
export {};
//# sourceMappingURL=KeyboardHelpIconFactory.d.ts.map