import * as ts from 'typescript'; | |
export interface VariableInfo { | |
domain: DeclarationDomain; | |
exported: boolean; | |
uses: VariableUse[]; | |
inGlobalScope: boolean; | |
declarations: ts.Identifier[]; | |
} | |
export interface VariableUse { | |
domain: UsageDomain; | |
location: ts.Identifier; | |
} | |
export declare enum DeclarationDomain { | |
Namespace = 1, | |
Type = 2, | |
Value = 4, | |
Import = 8, | |
Any = 7 | |
} | |
export declare enum UsageDomain { | |
Namespace = 1, | |
Type = 2, | |
Value = 4, | |
ValueOrNamespace = 5, | |
Any = 7, | |
TypeQuery = 8 | |
} | |
export declare function getUsageDomain(node: ts.Identifier): UsageDomain | undefined; | |
export declare function getDeclarationDomain(node: ts.Identifier): DeclarationDomain | undefined; | |
export declare function collectVariableUsage(sourceFile: ts.SourceFile): Map<ts.Identifier, VariableInfo>; |