import '../../assert/js/assert.js';
import '../../globals.js';
// Copyright 2019-2024, University of Colorado Boulder
/**
 * A tandem for a dynamic element that stores the name of the archetype that defines its dynamic element's schema.
 *
 * @author Sam Reid (PhET Interactive Simulations)
 * @author Chris Klusendorf (PhET Interactive Simulations)
 * @author Michael Kauzmann (PhET Interactive Simulations)
 */
import optionize from '../../phet-core/js/optionize.js';
import Tandem from './Tandem.js';
import TandemConstants from './TandemConstants.js';
import tandemNamespace from './tandemNamespace.js';
class DynamicTandem extends Tandem {
    constructor(parentTandem, name, providedOptions) {
        assert && assert(parentTandem, 'DynamicTandem must have a parentTandem');
        const options = optionize()({
            isValidTandemName: (name) => Tandem.getRegexFromCharacterClass(TandemConstants.BASE_DYNAMIC_TANDEM_CHARACTER_CLASS).test(name)
        }, providedOptions);
        super(parentTandem, name, options);
    }
}
tandemNamespace.register('DynamicTandem', DynamicTandem);
export default DynamicTandem;
//# sourceMappingURL=DynamicTandem.js.map