import { Imm } from 'ts-imm';
import { CodeBlock } from './CodeBlock';
import { CodeWriter } from './CodeWriter';
import { Modifier } from './Modifier';
export declare class EnumSpec extends Imm<EnumSpec> {
    static create(name: string): EnumSpec;
    readonly name: string;
    readonly javaDoc: CodeBlock;
    readonly modifiers: Modifier[];
    readonly constants: Map<string, CodeBlock | undefined>;
    emit(codeWriter: CodeWriter): void;
    addJavadoc(format: string, ...args: unknown[]): this;
    addJavadocBlock(block: CodeBlock): this;
    addModifiers(...modifiers: Modifier[]): this;
    addConstant(name: string, initializer?: string | CodeBlock): this;
    toString(): string;
    private hasNoBody;
}
