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>;