import '../../../chipper/js/initialize-globals.js';
import '../../../assert/js/assert.js';
import '../../../globals.js';
import TReadOnlyProperty from '../../../axon/js/TReadOnlyProperty.js';
import { KeyDescriptor, OneKeyStroke } from '../../../scenery/js/imports.js';
type SerializedHotkeyData = {
    keyStrings: string[];
    repoName: string;
    binderName: string;
    global: boolean;
};
export type HotkeyDataOptions = {
    keyStringProperties: TReadOnlyProperty<OneKeyStroke>[];
    keyboardHelpDialogLabelStringProperty?: TReadOnlyProperty<string> | null;
    keyboardHelpDialogPDOMLabelStringProperty?: TReadOnlyProperty<string> | string | null;
    repoName: string;
    global?: boolean;
    binderName?: string;
};
export default class HotkeyData {
    readonly keyStringProperties: TReadOnlyProperty<OneKeyStroke>[];
    readonly keyboardHelpDialogLabelStringProperty: TReadOnlyProperty<string> | null;
    readonly keyboardHelpDialogPDOMLabelStringProperty: TReadOnlyProperty<string> | string | null;
    readonly keyDescriptorsProperty: TReadOnlyProperty<KeyDescriptor[]>;
    private readonly repoName;
    private readonly global;
    private readonly binderName;
    constructor(providedOptions: HotkeyDataOptions);
    /**
     * Returns true if any of the keyStringProperties of this HotkeyData have the given keyStroke.
     */
    hasKeyStroke(keyStroke: OneKeyStroke): boolean;
    /**
     * Serialization for usage with binder (generated documentation).
     */
    serialize(): SerializedHotkeyData;
    /**
     * Dispose of owned Properties to prevent memory leaks.
     */
    dispose(): void;
    /**
     * Combine the keyStringProperties of an array of HotkeyData into a single array. Useful if you want to combine
     * multiple HotkeyData for a single KeyboardListener.
     */
    static combineKeyStringProperties(hotkeyDataArray: HotkeyData[]): TReadOnlyProperty<OneKeyStroke>[];
    /**
     * Returns true if any of the HotkeyData in the array have the given keyStroke.
     */
    static anyHaveKeyStroke(hotkeyDataArray: HotkeyData[], keyStroke: OneKeyStroke): boolean;
}
export {};
//# sourceMappingURL=HotkeyData.d.ts.map