import { NonMemberSimpleDeclarationASTNode } from "../../../../ast/ast_declarations"; import { BlockContext } from "../../../compilation/contexts"; import { LocalObjectEntity, LocalReferenceEntity } from "../../../compilation/entities"; import { 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 LocalVariableDefinition extends VariableDefinitionBase { readonly construct_type = "local_variable_definition"; readonly type: VariableDefinitionType; readonly declaredEntity: LocalObjectEntity | LocalReferenceEntity; constructor(context: BlockContext, ast: NonMemberSimpleDeclarationASTNode, typeSpec: TypeSpecifier, storageSpec: StorageSpecifier, declarator: Declarator, otherSpecs: OtherSpecifiers, type: VariableDefinitionType); } export interface TypedLocalVariableDefinition extends LocalVariableDefinition { readonly type: T; readonly declarator: TypedDeclarator; readonly declaredEntity: LocalObjectEntity> | LocalReferenceEntity>; } export interface CompiledLocalVariableDefinition extends TypedLocalVariableDefinition, SuccessfullyCompiled { readonly typeSpecifier: CompiledTypeSpecifier; readonly storageSpecifier: CompiledStorageSpecifier; readonly declarator: CompiledDeclarator; readonly initializer?: CompiledInitializer; }