import * as ts from 'typescript'; import { OpaqueString, OpaqueNumber } from '../typings/opaque'; export declare function printTSNodes(nodes: ts.Node[] | ts.NodeArray): string; export declare function dedupeTypesByKind(propertyTypes: T[]): T[]; export declare function getDefaultCompilerOptions(): ts.CompilerOptions; export declare function getCompilerOptionsFromFile(tsConfigPath: string): Promise; export declare function getCompilerOptions(filePath: string): Promise; export declare function boot(fileNames: string[], exitsIfError?: boolean): Promise; export declare class TsCompiler { private static checkDiagnostics; private program; checker: ts.TypeChecker; constructor(sourcePaths: string[], options?: ts.CompilerOptions); ensureValid(): boolean; forEachSourceFile(iterate: (file: ts.SourceFile) => void): void; } export declare function isOpaqueString(): boolean; export declare function getNodeText(node: ts.Node): string | undefined; export declare function isPropertyMandatory(node: ts.Node): boolean; export declare function createPropertyFromType(member: ts.TypeElement): ts.PropertyAssignment; export declare function recurseNodes(nodes: ts.Node[]): ts.Node[]; export declare function getRootNodes(entryPointGlob: string, exitsIfError?: boolean): Promise<{ nodes: ts.Node[]; tsCompiler: TsCompiler; }>; export declare function appendNewNodes(_newNodes: ts.Node[], currentNodes: ts.Node[]): ts.Node[]; export declare type NodeId = OpaqueString<'NodeId'>; export declare type TypeId = OpaqueNumber<'TypeId'>; export declare function getNodeId(node: ts.Node): NodeId; export declare function getId(type: ts.Type | undefined): TypeId; export declare function getNodePath(node: ts.Node): string;