// Copyright 2021-2025, University of Colorado Boulder
/**
 * Abstract class that creates alert content for the VoicingToolbarItem. Buttons in that item will call these
 * functions to create content that is spoken using speech synthesis. Extend this class and implement these
 * functions. Then pass this as an entry to the PreferencesModel when creating a Sim.
 *
 * @author Jesse Greenberg
 */
import '../../../globals.js';
import { assert } from '../../../scenerystack/assert.js';
import joist from '../joist.js';
class VoicingToolbarAlertManager {
    /**
     * @param screenProperty - indicates the active screen
     */
    constructor(screenProperty) {
        this.screenProperty = screenProperty;
    }
    /**
     * Create the alert content for the simulation overview for the "Overview" button.
     */
    createOverviewContent() {
        const screenView = this.screenProperty.value.view;
        assert && assert(screenView, 'view needs to be inititalized for voicing toolbar content');
        return screenView.getVoicingOverviewContent();
    }
    /**
     * Creates the alert content for the simulation details when the "Current Details"
     * button is pressed.
     */
    createDetailsContent() {
        const screenView = this.screenProperty.value.view;
        assert && assert(screenView, 'view needs to be inititalized for voicing toolbar content');
        return screenView.getVoicingDetailsContent();
    }
    /**
     * Creates the alert content for an interaction hint when the "Hint" button is pressed.
     */
    createHintContent() {
        const screenView = this.screenProperty.value.view;
        assert && assert(screenView, 'view needs to be inititalized for voicing toolbar content');
        return this.screenProperty.value.view.getVoicingHintContent();
    }
}
joist.register('VoicingToolbarAlertManager', VoicingToolbarAlertManager);
export default VoicingToolbarAlertManager;
