import { ASTNode } from "../../../../ast/ASTNode"; import { ClassKey } from "../../../../ast/ast_declarations"; import { SemanticContext, TranslationUnitContext } from "../../../compilation/contexts"; import { ClassEntity } from "../../../compilation/entities"; import { LexicalIdentifier, QualifiedName } from "../../../compilation/lexical"; import { AnalyticConstruct } from "../../../../analysis/predicates"; import { PotentiallyCompleteClassType } from "../../../compilation/types"; import { SuccessfullyCompiled } from "../../CPPConstruct"; import { BasicCPPConstruct } from "../../BasicCPPConstruct"; export declare class ClassDeclaration extends BasicCPPConstruct { readonly construct_type = "class_declaration"; readonly name: string; readonly qualifiedName: QualifiedName; readonly key: ClassKey; readonly type: PotentiallyCompleteClassType; readonly declaredEntity: ClassEntity; constructor(context: TranslationUnitContext, name: LexicalIdentifier, key: ClassKey); isSemanticallyEquivalent_impl(other: AnalyticConstruct, equivalenceContext: SemanticContext): boolean; } export interface TypedClassDeclaration extends ClassDeclaration, SuccessfullyCompiled { readonly type: T; } export interface CompiledClassDeclaration extends TypedClassDeclaration, SuccessfullyCompiled { }