import '../../../../assert/js/assert.js';
import '../../../../globals.js';
/**
 * A row of KeyboardHelpSection, containing the label, icon, and text. Many of the static functions of
 * KeyboardHelpSection will return a KeyboardHelpSectionRow. The label and icon are often grouped in an AlignGroup for
 * easy positioning in KeyboardHelpSection. This cannot be done in KeyboardHelpSection directly because different
 * labels and icons will have varying layout. For instance, see labelWithIcon vs labelWithIconList.
 *
 * @author Jesse Greenberg (PhET Interactive Simulations)
 */
import TReadOnlyProperty from '../../../../axon/js/TReadOnlyProperty.js';
import StrictOmit from '../../../../phet-core/js/types/StrictOmit.js';
import { AlignBoxOptions, HotkeyData, Node, PDOMValueType, RichText, RichTextOptions, Text, VBoxOptions } from '../../../../scenery/js/imports.js';
import { VoicingResponse } from '../../../../utterance-queue/js/ResponsePacket.js';
import PhetFont from '../../PhetFont.js';
type LabelWithIconListOptions = {
    labelInnerContent?: PDOMValueType | null;
    labelOptions?: RichTextOptions;
    readingBlockContent?: VoicingResponse | null;
    iconsVBoxOptions?: StrictOmit<VBoxOptions, 'innerContent' | 'spacing' | 'align' | 'tagName'>;
};
type LabelWithIconOptions = {
    labelInnerContent?: string | TReadOnlyProperty<string> | null;
    readingBlockContent?: VoicingResponse | null;
    labelOptions?: RichTextOptions;
    iconOptions?: StrictOmit<AlignBoxOptions, 'innerContent'>;
};
type FromHotkeyDataOptions = {
    icon?: Node | null;
    labelStringProperty?: TReadOnlyProperty<string> | null;
    pdomLabelStringProperty?: TReadOnlyProperty<string> | string | null;
    labelWithIconOptions?: StrictOmit<LabelWithIconOptions, 'labelInnerContent'>;
};
type SelfOptions = {
    readingBlockContent?: VoicingResponse | null;
};
type KeyboardHelpSectionRowOptions = SelfOptions;
declare class KeyboardHelpSectionRow {
    readonly text: Text | RichText;
    readonly label: Node;
    readonly icon: Node;
    readonly readingBlockContent: VoicingResponse | null;
    static readonly LABEL_FONT: PhetFont;
    constructor(text: Text | RichText, label: Node, icon: Node, providedOptions?: KeyboardHelpSectionRowOptions);
    /**
     * Sets visibility of the label, icon, and text so that it can be hidden if necessary. If using
     * KeyboardHelpSection, this will also correctly layout the content because of scenery dynamic layout.
     */
    setContentsVisible(visible: boolean): void;
    /**
     * Horizontally align a label and an icon, with the label on the left and the icon on the right. AlignGroup is used
     * to give the label and icon identical dimensions for easy layout in KeyboardHelpSection.
     */
    static labelWithIcon(labelString: string | TReadOnlyProperty<string>, icon: Node, providedOptions?: LabelWithIconOptions): KeyboardHelpSectionRow;
    /**
     * Create a label with a list of icons. The icons will be vertically aligned, each separated by 'or' text. The
     * label will be vertically centered with the first item in the list of icons. To vertically align the label
     * with the first icon, AlignGroup is used. Finally, an AlignGroup is used to make the label
     * content match height with the entire icon list. When assembled, the label with icon list will look like:
     *
     * This is the label: Icon1 or
     *                    Icon2 or
     *                    Icon3
     */
    static labelWithIconList(labelString: string | TReadOnlyProperty<string>, icons: Node[], providedOptions?: LabelWithIconListOptions): KeyboardHelpSectionRow;
    /**
     * Create a row for the keyboard help dialog from a HotkeyData object. Optionally override the icons and labels if
     * you want to customize the row so it is different from the actual key data.
     */
    static fromHotkeyData(hotkeyData: HotkeyData, providedOptions?: FromHotkeyDataOptions): KeyboardHelpSectionRow;
}
export default KeyboardHelpSectionRow;
//# sourceMappingURL=KeyboardHelpSectionRow.d.ts.map