import * as ts from 'typescript'; export declare type Package = { name: string; outDir: string; mainModule?: string; typeDeclaration: { [typeId: string]: string; }; declarationModule: { [declarationId: string]: string; }; modules: { [path: string]: Module; }; readmes: { [path: string]: string; }; }; export declare type Reexport = { name: string; srcName: string; path: string; id: string; }; export declare type Module = { name: string; srcPath: string; outPath: string; declarations: { [declarationId: string]: Declaration; }; reexports: Array; }; export declare type DocEntry = { name?: string; documentation?: string; type?: TypeBound; internal?: boolean; }; export declare type ClassMember = { private?: boolean; protected?: boolean; static?: boolean; abstract?: boolean; }; export declare type Function = { name: string; signatures: Array; }; export declare type Method = Function & ClassMember; export declare type FunctionSignature = DocEntry & { typeParameters?: Array; parameters: Array; returnType: TypeBound; }; export declare type BaseDeclaration = DocEntry & { id: string; name: string; exportedIn: Array<{ path: string; name: string; }>; reexport?: Reexport; }; export declare type TypeDeclaration = BaseDeclaration & { type: TypeBound; parameters?: Array; extends: Array; }; export declare type TypeProperty = DocEntry & { optional: boolean; defaultValue?: string; }; export declare type ComponentDeclaration = BaseDeclaration & { properties: Array; }; export declare type ClassDeclaration = BaseDeclaration & { extends: Array; implements: Array; typeParameters?: Array; properties: Array; constructors: Array; methods: Array; }; export declare type FunctionDeclaration = BaseDeclaration & Function; export declare type VariableDeclaration = BaseDeclaration & { type: TypeBound; value: string; }; export declare type UntaggedDeclaration = ComponentDeclaration | TypeDeclaration | ClassDeclaration | FunctionDeclaration | VariableDeclaration; export declare type Declaration = ({ kind: 'Component'; } & ComponentDeclaration) | ({ kind: 'Type'; } & TypeDeclaration) | ({ kind: 'Class'; } & ClassDeclaration) | ({ kind: 'Function'; } & FunctionDeclaration) | ({ kind: 'Variable'; } & VariableDeclaration); export declare type ObjectTypeBound = { properties: Array; index?: { name: string; type: TypeBound; }; }; export declare type TypeBound = { kind: 'Named'; name: string; parameters?: Array; id?: string; importedFrom?: string; } | ({ kind: 'Object'; } & ObjectTypeBound) | { kind: 'Tuple'; properties: Array; } | { kind: 'Function'; typeParameters?: Array; parameters: Array; returnType: TypeBound; } | { kind: 'Intersection'; types: Array; } | { kind: 'Union'; types: Array; } | { kind: 'BooleanLiteral'; value: string; } | { kind: 'NumberLiteral'; value: string; } | { kind: 'StringLiteral'; value: string; }; export declare function analyze(fileNames: Array, analyzeResult: Package, packagePath: string, options?: ts.CompilerOptions): Package; export declare function analyzePackage(packagePath: string): Package; //# sourceMappingURL=index.d.ts.map