/**
 * @import { Site, Word } from "@helios-lang/compiler-utils"
 * @typedef {import("@helios-lang/ir").SourceMappedStringI} SourceMappedStringI
 * @typedef {import("../codegen/index.js").Definitions} Definitions
 * @typedef {import("../typecheck/index.js").DataType} DataType
 * @typedef {import("../typecheck/index.js").EnumMemberType} EnumMemberType
 * @typedef {import("../typecheck/common.js").GenericTypeProps} GenericTypeProps
 * @typedef {import("../typecheck/common.js").Type} Type
 * @typedef {import("../typecheck/common.js").TypeSchema} TypeSchema
 */
/**
 * Enum statement, containing at least one member
 * @internal
 */
export class EnumStatement extends Statement {
    /**
     * @param {Site} site
     * @param {Word} name
     * @param {TypeParameters} parameters
     * @param {EnumMember[]} members
     * @param {ImplDefinition} impl
     */
    constructor(site: Site, name: Word, parameters: TypeParameters, members: EnumMember[], impl: ImplDefinition);
    /**
     * @private
     * @readonly
     * @type {TypeParameters}
     */
    private readonly _parameters;
    /**
     * @private
     * @readonly
     * @type {EnumMember[]}
     */
    private readonly _members;
    /**
     * @private
     * @readonly
     * @type {ImplDefinition}
     */
    private readonly _impl;
    /**
     * @returns {boolean}
     */
    hasParameters(): boolean;
    /**
     * @returns {SourceMappedStringI}
     */
    toIR_is_valid_data(): SourceMappedStringI;
    /**
     * @returns {SourceMappedStringI}
     */
    toIR_show(): SourceMappedStringI;
}
export type SourceMappedStringI = import("@helios-lang/ir").SourceMappedStringI;
export type Definitions = import("../codegen/index.js").Definitions;
export type DataType = import("../typecheck/index.js").DataType;
export type EnumMemberType = import("../typecheck/index.js").EnumMemberType;
export type GenericTypeProps = import("../typecheck/common.js").GenericTypeProps;
export type Type = import("../typecheck/common.js").Type;
export type TypeSchema = import("../typecheck/common.js").TypeSchema;
import { Statement } from "./Statement.js";
import type { Site } from "@helios-lang/compiler-utils";
import type { Word } from "@helios-lang/compiler-utils";
import { TypeParameters } from "./TypeParameters.js";
import { EnumMember } from "./EnumMember.js";
import { ImplDefinition } from "./ImplDefinition.js";
//# sourceMappingURL=EnumStatement.d.ts.map