import { INodeCallDefinition, INodeLiteralNumber, INodePosition, INodeTraitDefinition, INodeTypeDefinition, NodeTypeExpression } from '../core/ASTGenerator'; import CodeStream from 'textstreamjs'; import { ITextDecoder, ITextEncoder } from '../core/Tokenizer'; import GenericName from './types/GenericName'; import { Metadata } from './types/metadata'; export type InputRequirement = { fileGenerator: Parser; identifier: string; } | { identifier: string; path: string; target: 'outDir'; } | { identifier: string; path: string; wildcard: boolean; isDefaultImport: boolean; target: 'nodeModule'; }; export interface IConfiguration { mainFile: string; outDir: string; rootDir: string; } export interface IExternalModule { configFile: string; nodeModulesFolderPath: string; configuration: IConfiguration; } export interface ITrait { name: string; nodes: ResolvedType[]; } export type ResolvedType = { fileGenerator: Parser; identifier: string; position: INodePosition; } | INodeTypeDefinition | INodeCallDefinition | INodeTraitDefinition | { generic: GenericName; position: INodePosition; } | { template: 'vector' | 'set'; expression: NodeTypeExpression; position: INodePosition; type: ResolvedType; } | { template: 'optional'; expression: NodeTypeExpression; type: ResolvedType; position: INodePosition; } | { template: 'tuple'; expressions: ReadonlyArray; types: ResolvedType[]; position: INodePosition; } | { template: 'map'; position: INodePosition; key: { expression: NodeTypeExpression; resolved: ResolvedType; }; value: { expression: NodeTypeExpression; resolved: ResolvedType; }; } | { template: 'bigint'; bits: INodeLiteralNumber; position: INodePosition; }; export type Requirement = { target: 'nodeModule'; path: string; alias?: string; wildcard: boolean; isDefaultImport: boolean; identifier: string; } | { target: 'outDir'; path: string; alias?: string; identifier: string; } | { path: string; alias?: string; identifier: string; fileGenerator: Parser; }; export interface IParserOptions { externalModule?: boolean; textDecoder: ITextDecoder; textEncoder: ITextEncoder; sortProperties: boolean; indentationSize: number; root: Parser | null; configuration: IConfiguration; } export interface IFileMetadata { path: string; metadata: Metadata[]; } export interface IFile { path: string; contents: Uint8Array; } export declare function getTypeDefinitionOrCallDefinitionNamePropertyValue(node: INodeTypeDefinition | INodeCallDefinition | INodeTraitDefinition, file: string): string; export default class Parser extends CodeStream { #private; constructor(file: IFile, { externalModule, textDecoder, configuration, sortProperties, textEncoder, indentationSize, root: parent }: IParserOptions); parse(): Promise>; } //# sourceMappingURL=Parser.d.ts.map