import '../../assert/js/assert.js';
import '../../globals.js';
/**
 * EnumerationValue is the base class for enumeration value instances.
 * See https://github.com/phetsims/phet-info/blob/main/doc/phet-software-design-patterns.md#enumeration
 *
 * PhET's Enumeration pattern is:
 *
 * class MyEnumeration extends EnumerationValue {
 *   public static readonly VALUE_1 = new MyEnumeration();
 *   public static readonly VALUE_2 = new MyEnumeration();
 *
 *   // Make sure this is last, once all EnumerationValues have been declared statically.
 *   public static readonly enumeration = new Enumeration( MyEnumeration );
 * }
 *
 * // Usage
 * console.log( MyEnumeration.VALUE_1 );
 * const printValue = enumValue => {
 *   assert && assert( enumValue.enumeration.values.includes(enumValue));
 *   console.log( enumValue );
 * };
 * printValue( MyEnumeration.VALUE_2 );
 *
 * @author Sam Reid (PhET Interactive Simulations)
 * @author Michael Kauzmann (PhET Interactive Simulations)
 */
import Enumeration from './Enumeration.js';
import Constructor from './types/Constructor.js';
declare class EnumerationValue {
    private _name;
    private _enumeration;
    static sealedCache: Set<Constructor<EnumerationValue>>;
    toString(): string;
    private isEnumerationValue;
    constructor();
    set name(name: string);
    get name(): string;
    set enumeration(enumeration: Enumeration<this>);
    get enumeration(): Enumeration<this>;
}
export default EnumerationValue;
//# sourceMappingURL=EnumerationValue.d.ts.map