import { ArrayOfUnknownBoundType, Type, VoidType } from "../../compilation/types"; import { InvalidConstruct } from "../InvalidConstruct"; import { ClassDeclaration, CompiledClassDeclaration, TypedClassDeclaration } from "./class/ClassDeclaration"; import { ClassDefinition, CompiledClassDefinition, TypedClassDefinition } from "./class/ClassDefinition"; import { IncompleteTypeMemberVariableDeclaration, TypedIncompleteTypeMemberVariableDeclaration } from "./class/IncompleteTypeMemberVariableDeclaration"; import { CompiledMemberVariableDeclaration, MemberVariableDeclaration, TypedMemberVariableDeclaration } from "./class/MemberVariableDeclaration"; import { Declaration } from "./declarations"; import { CompiledDeclarator, Declarator, TypedDeclarator } from "./Declarator"; import { CompiledFunctionDeclaration, FunctionDeclaration, TypedFunctionDeclaration } from "./function/FunctionDeclaration"; import { CompiledFunctionDefinition, TypedFunctionDefinition } from "./function/FunctionDefinition"; import { CompiledParameterDeclaration, ParameterDeclaration, TypedParameterDeclaration } from "./function/ParameterDeclaration"; import { TypedUnknownBoundArrayDeclaration } from "./misc/UnknownBoundArrayDeclaration"; import { UnknownTypeDeclaration } from "./misc/UnknownTypeDeclaration"; import { VoidDeclaration } from "./misc/VoidDeclaration"; import { CompiledGlobalVariableDefinition, GlobalVariableDefinition, TypedGlobalVariableDefinition } from "./variable/GlobalVariableDefinition"; import { IncompleteTypeVariableDefinition, TypedIncompleteTypeVariableDefinition } from "./variable/IncompleteTypeVariableDefinition"; import { CompiledLocalVariableDefinition, LocalVariableDefinition, TypedLocalVariableDefinition } from "./variable/LocalVariableDefinition"; export declare type AnalyticDeclaration = Declaration | Declarator | ParameterDeclaration; export declare type TypedDeclarationKinds = { "invalid_construct": T extends undefined ? InvalidConstruct : never; "unknown_type_declaration": T extends undefined ? UnknownTypeDeclaration : never; "void_declaration": T extends VoidType ? VoidDeclaration : never; "storage_specifier": never; "typedef_declaration": never; "friend_declaration": never; "unknown_array_bound_declaration": T extends ArrayOfUnknownBoundType ? TypedUnknownBoundArrayDeclaration : never; "function_declaration": T extends FunctionDeclaration["type"] ? TypedFunctionDeclaration : never; "global_variable_definition": T extends GlobalVariableDefinition["type"] ? TypedGlobalVariableDefinition : never; "local_variable_definition": T extends LocalVariableDefinition["type"] ? TypedLocalVariableDefinition : never; "incomplete_type_variable_definition": T extends IncompleteTypeVariableDefinition["type"] ? TypedIncompleteTypeVariableDefinition : never; "parameter_declaration": T extends ParameterDeclaration["type"] ? TypedParameterDeclaration : never; "declarator": T extends Declarator["type"] ? TypedDeclarator : never; "function_definition": T extends FunctionDeclaration["type"] ? TypedFunctionDefinition : never; "class_declaration": T extends ClassDeclaration["type"] ? TypedClassDeclaration : never; "class_definition": T extends ClassDefinition["type"] ? TypedClassDefinition : never; "member_variable_declaration": T extends MemberVariableDeclaration["type"] ? TypedMemberVariableDeclaration : never; "incomplete_type_member_variable_declaration": T extends IncompleteTypeMemberVariableDeclaration["type"] ? TypedIncompleteTypeMemberVariableDeclaration : never; }; export declare type CompiledDeclarationKinds = { "invalid_construct": never; "unknown_type_declaration": never; "void_declaration": never; "storage_specifier": never; "typedef_declaration": never; "friend_declaration": never; "unknown_array_bound_declaration": never; "function_declaration": T extends FunctionDeclaration["type"] ? CompiledFunctionDeclaration : never; "global_variable_definition": T extends GlobalVariableDefinition["type"] ? CompiledGlobalVariableDefinition : never; "local_variable_definition": T extends LocalVariableDefinition["type"] ? CompiledLocalVariableDefinition : never; "incomplete_type_variable_definition": never; "parameter_declaration": T extends ParameterDeclaration["type"] ? CompiledParameterDeclaration : never; "declarator": T extends Declarator["type"] ? CompiledDeclarator : never; "function_definition": T extends FunctionDeclaration["type"] ? CompiledFunctionDefinition : never; "class_declaration": T extends ClassDeclaration["type"] ? CompiledClassDeclaration : never; "class_definition": T extends ClassDefinition["type"] ? CompiledClassDefinition : never; "member_variable_declaration": T extends MemberVariableDeclaration["type"] ? CompiledMemberVariableDeclaration : never; "incomplete_type_member_variable_declaration": never; }; export declare type AnalyticTypedDeclaration> = TypedDeclarationKinds[C["construct_type"]]; export declare type AnalyticCompiledDeclaration> = CompiledDeclarationKinds[C["construct_type"]];