import { NonMemberSimpleDeclarationASTNode } from "../../../../ast/ast_declarations"; import { TranslationUnitContext } from "../../../compilation/contexts"; import { GlobalObjectEntity } from "../../../compilation/entities"; import { QualifiedName } from "../../../compilation/lexical"; import { CompleteObjectType, ReferenceType } from "../../../compilation/types"; import { SuccessfullyCompiled } from "../../CPPConstruct"; import { CompiledInitializer } from "../../initializers/Initializer"; import { OtherSpecifiers } from "../declarations"; import { CompiledDeclarator, Declarator, TypedDeclarator } from "../Declarator"; import { CompiledStorageSpecifier, StorageSpecifier } from "../StorageSpecifier"; import { CompiledTypeSpecifier, TypeSpecifier } from "../TypeSpecifier"; import { VariableDefinitionBase, VariableDefinitionType } from "./VariableDefinitionBase"; export declare class GlobalVariableDefinition extends VariableDefinitionBase { readonly construct_type = "global_variable_definition"; readonly type: VariableDefinitionType; readonly declaredEntity: GlobalObjectEntity; readonly qualifiedName: QualifiedName; constructor(context: TranslationUnitContext, ast: NonMemberSimpleDeclarationASTNode | undefined, typeSpec: TypeSpecifier, storageSpec: StorageSpecifier, declarator: Declarator, otherSpecs: OtherSpecifiers, type: VariableDefinitionType); } export interface TypedGlobalVariableDefinition extends GlobalVariableDefinition { readonly type: T; readonly declarator: TypedDeclarator; readonly declaredEntity: GlobalObjectEntity>; } export interface CompiledGlobalVariableDefinition extends TypedGlobalVariableDefinition, SuccessfullyCompiled { readonly typeSpecifier: CompiledTypeSpecifier; readonly storageSpecifier: CompiledStorageSpecifier; readonly declarator: CompiledDeclarator; readonly initializer?: CompiledInitializer>; }