import '../../globals.js';
import EnumerationValue from './EnumerationValue.js';
import TEnumeration from './TEnumeration.js';
import Constructor from './types/Constructor.js';
export type EnumerationOptions<T extends EnumerationValue> = {
    phetioDocumentation?: string;
    instanceType?: Constructor<T>;
};
declare class Enumeration<T extends EnumerationValue> implements TEnumeration<T> {
    readonly values: T[];
    readonly keys: string[];
    readonly Enumeration: Constructor<T> & Record<string, T>;
    readonly phetioDocumentation?: string;
    constructor(Enumeration: Constructor<T>, providedOptions?: EnumerationOptions<T>);
    getKey(value: T): string;
    getValue(key: string): T;
    includes(value: T): boolean;
}
export default Enumeration;
//# sourceMappingURL=Enumeration.d.ts.map