import type { RuntimeExpressionValue } from './AST';
import type { ClassEnumerationDefinition as ClassEnumerationDefinitionBase } from './ClassMember';
import type { ClassDefinition } from './ClassDefinition';
import type { RuntimeDisplay } from './RuntimeDisplay';
type ClassEnumerationDefinition = ClassEnumerationDefinitionBase<ClassDefinition>;
/**
 * Runtime value representing one member of a MATLAB/Octave enumeration class.
 */
declare class ClassEnumerationValue {
    /** Runtime type tag used by interpreter predicates. */
    static readonly CLASS_ENUMERATION_VALUE = 10;
    /** Runtime type tag stored on the enumeration value. */
    readonly type = 10;
    /** Optional AST-style parent pointer used by generic value handling. */
    parent?: unknown;
    /** Class that owns the enumeration member. */
    readonly classDefinition: ClassDefinition;
    /** Enumeration member metadata. */
    readonly enumeration: ClassEnumerationDefinition;
    /** Constructor-like arguments attached to the enumeration member. */
    readonly args: RuntimeExpressionValue[];
    /**
     * Test whether a value is a class enumeration value.
     *
     * @param obj Value to test.
     * @returns `true` when `obj` is a `ClassEnumerationValue`.
     */
    static readonly isInstanceOf: (obj: unknown) => obj is ClassEnumerationValue;
    /**
     * Create an enumeration value.
     *
     * @param classDefinition Owning class metadata.
     * @param enumeration Enumeration member metadata.
     * @param args Constructor-like argument values.
     */
    constructor(classDefinition: ClassDefinition, enumeration: ClassEnumerationDefinition, args?: RuntimeExpressionValue[]);
    /**
     * Create an enumeration value.
     *
     * @param classDefinition Owning class metadata.
     * @param enumeration Enumeration member metadata.
     * @param args Constructor-like argument values.
     * @returns Runtime enumeration value.
     */
    static readonly create: (classDefinition: ClassDefinition, enumeration: ClassEnumerationDefinition, args?: RuntimeExpressionValue[]) => ClassEnumerationValue;
    /**
     * Copy an enumeration value.
     *
     * @param value Value to copy.
     * @returns New enumeration value wrapper.
     */
    static readonly copy: (value: ClassEnumerationValue) => ClassEnumerationValue;
    /**
     * Render the enumeration member name.
     *
     * @param value Enumeration value to render.
     * @param _interpreter Interpreter requesting unparse.
     * @returns Fully qualified enumeration member name.
     */
    static readonly unparse: (value: ClassEnumerationValue, _interpreter: RuntimeDisplay) => string;
    /**
     * Copy this enumeration value.
     *
     * @returns New enumeration value wrapper.
     */
    copy(): ClassEnumerationValue;
}
export { ClassEnumerationValue };
declare const _default: {
    ClassEnumerationValue: typeof ClassEnumerationValue;
};
export default _default;
