import { AstNode, KNativePointer } from "../../src/reexport-for-generated";
import { AnnotationUsage } from "./AnnotationUsage";
import { ClassDefinition } from "./ClassDefinition";
import { Es2pandaAstNodeType } from "./../Es2pandaEnums";
import { Es2pandaLanguage } from "./../Es2pandaEnums";
import { Identifier } from "./Identifier";
import { SrcDumper } from "./SrcDumper";
import { TypeNode } from "./TypeNode";
import { TypedStatement } from "./TypedStatement";
import { checker } from "./checker";
import { varbinder } from "./varbinder";
export declare class TSEnumDeclaration extends TypedStatement {
    constructor(pointer: KNativePointer, astNodeType: Es2pandaAstNodeType);
    static create3TSEnumDeclaration(key: Identifier | undefined, members: readonly AstNode[], isConst: boolean, isStatic: boolean, isDeclare: boolean, typeNode: TypeNode | undefined, lang: Es2pandaLanguage): TSEnumDeclaration;
    static updateTSEnumDeclaration(original: TSEnumDeclaration | undefined, key: Identifier | undefined, members: readonly AstNode[], isConst: boolean, isStatic: boolean, isDeclare: boolean): TSEnumDeclaration;
    static update1TSEnumDeclaration(original: TSEnumDeclaration | undefined, key: Identifier | undefined, members: readonly AstNode[], isConst: boolean, isStatic: boolean, isDeclare: boolean, typeNode?: TypeNode): TSEnumDeclaration;
    static update2TSEnumDeclaration(original: TSEnumDeclaration | undefined, key: Identifier | undefined, members: readonly AstNode[], isConst: boolean, isStatic: boolean, isDeclare: boolean, lang: Es2pandaLanguage): TSEnumDeclaration;
    static update3TSEnumDeclaration(original: TSEnumDeclaration | undefined, key: Identifier | undefined, members: readonly AstNode[], isConst: boolean, isStatic: boolean, isDeclare: boolean, typeNode: TypeNode | undefined, lang: Es2pandaLanguage): TSEnumDeclaration;
    /** @deprecated */
    setScope(scope?: varbinder.LocalScope): this;
    get key(): Identifier | undefined;
    get members(): readonly AstNode[];
    get internalName(): string;
    /** @deprecated */
    setInternalName(internalName: string): this;
    get boxedClass(): ClassDefinition | undefined;
    /** @deprecated */
    setBoxedClass(boxedClass?: ClassDefinition): this;
    get isConst(): boolean;
    get language(): Es2pandaLanguage;
    get typeAnnotation(): TypeNode | undefined;
    /** @deprecated */
    emplaceMembers(source?: AstNode): this;
    /** @deprecated */
    clearMembers(): this;
    /** @deprecated */
    setValueMembers(source: AstNode | undefined, index: number): this;
    get membersForUpdate(): readonly AstNode[];
    get tsType(): checker.Type | undefined;
    get preferredType(): checker.Type | undefined;
    get hasAnnotations(): boolean;
    /** @deprecated */
    emplaceAnnotation(source?: AnnotationUsage): this;
    /** @deprecated */
    clearAnnotations(): this;
    /** @deprecated */
    dumpAnnotations(dumper?: SrcDumper): this;
    get annotationsForUpdate(): readonly AnnotationUsage[];
    get annotations(): readonly AnnotationUsage[];
    /** @deprecated */
    setAnnotations(annotationList: readonly AnnotationUsage[]): this;
    /** @deprecated */
    setAnnotations1(annotationList: readonly AnnotationUsage[]): this;
    protected readonly brandTSEnumDeclaration: undefined;
}
export declare function isTSEnumDeclaration(node: object | undefined): node is TSEnumDeclaration;
