import '../../tandem/js/PhetioIDUtils.js';
import '../../globals.js';
// Copyright 2021-2024, University of Colorado Boulder
/**
 * Property support for rich enumeration types.
 *
 * @author Sam Reid (PhET Interactive Simulations)
 */
import Property from './Property.js';
import EnumerationIO from '../../tandem/js/types/EnumerationIO.js';
import optionize from '../../phet-core/js/optionize.js';
import axon from './axon.js';
export default class EnumerationProperty extends Property {
    constructor(value, providedOptions) {
        const firstOptions = optionize()({
            enumeration: value.enumeration
        }, providedOptions);
        const options = optionize()({
            validValues: firstOptions.enumeration.values,
            phetioValueType: EnumerationIO({
                enumeration: firstOptions.enumeration
            })
        }, firstOptions);
        super(value, options);
    }
}
axon.register('EnumerationProperty', EnumerationProperty);
//# sourceMappingURL=EnumerationProperty.js.map