import { Imm } from 'ts-imm';
import { CodeBlock } from './CodeBlock';
import { CodeWriter } from './CodeWriter';
import { Modifier } from './Modifier';
import { TypeName, TypeVariable } from './TypeNames';
/** A generated typealias declaration */
export declare class TypeAliasSpec extends Imm<TypeAliasSpec> {
    static create(name: string, type: TypeName): TypeAliasSpec;
    readonly name: string;
    readonly type: TypeName;
    readonly javaDoc: CodeBlock;
    readonly modifiers: Modifier[];
    readonly typeVariables: TypeVariable[];
    emit(codeWriter: CodeWriter): void;
    addJavadoc(format: string, ...args: unknown[]): this;
    addJavadocBlock(block: CodeBlock): this;
    addModifiers(...modifiers: Modifier[]): this;
    addModifier(modifier: Modifier): this;
    addTypeVariables(...typeVariables: TypeVariable[]): this;
    addTypeVariable(typeVariable: TypeVariable): this;
    toString(): string;
}
