import { TypeIdentifier } from "../gir.js";
import { IntrospectedBase, IntrospectedNamespaceMember } from "./base.js";
import { GirMemberElement, GirEnumElement, GirBitfieldElement } from "../index.js";
import { IntrospectedRecord } from "./class.js";
import { IntrospectedStaticClassFunction } from "./function.js";
import { IntrospectedNamespace } from "./namespace.js";
import { FormatGenerator } from "../generators/generator.js";
import { GirVisitor } from "../visitor.js";
import type { OptionsLoad } from "../types/index.js";
export declare class IntrospectedEnum extends IntrospectedNamespaceMember {
    members: Map<string, GirEnumMember>;
    flags: boolean;
    ns: IntrospectedNamespace;
    constructor(name: string, namespace: IntrospectedNamespace, options?: {
        isIntrospectable?: boolean;
    });
    copy({ members }?: {
        parent?: undefined;
        members?: Map<string, GirEnumMember>;
    }): IntrospectedEnum;
    accept(visitor: GirVisitor): IntrospectedEnum;
    getType(): TypeIdentifier;
    asString<T extends FormatGenerator<unknown>>(generator: T): ReturnType<T["generateEnum"]>;
    asClass(): IntrospectedRecord;
    static fromXML(element: GirEnumElement | GirBitfieldElement, ns: IntrospectedNamespace, options: OptionsLoad, flags?: boolean): IntrospectedEnum;
}
export declare class GirEnumMember extends IntrospectedBase<IntrospectedEnum> {
    value: string;
    c_identifier: string;
    constructor(name: string, value: string, parent: IntrospectedEnum, c_identifier: string);
    get namespace(): IntrospectedNamespace;
    accept(visitor: GirVisitor): GirEnumMember;
    copy(): GirEnumMember;
    static fromXML(element: GirMemberElement, parent: IntrospectedEnum, options: OptionsLoad): GirEnumMember;
    asString<T extends FormatGenerator<unknown>>(generator: T): ReturnType<T["generateEnumMember"]>;
}
export declare class IntrospectedError extends IntrospectedEnum {
    functions: Map<string, IntrospectedStaticClassFunction>;
    asString<T extends FormatGenerator<unknown>>(generator: T): ReturnType<T["generateError"]>;
    copy({ members }?: {
        parent?: undefined;
        members?: Map<string, GirEnumMember>;
    }): IntrospectedEnum;
    static fromXML(element: GirEnumElement | GirBitfieldElement, ns: IntrospectedNamespace, options: OptionsLoad): IntrospectedEnum;
}
