/** * @fileoverview This is a collection of smaller utility functions to operate on * a TypeScript AST, used by JSConformance rules and elsewhere. */ import * as ts from 'typescript'; /** * Turns on or off logging for ConformancePatternRules. */ export declare function setDebug(state: boolean): void; /** * Debug helper. */ export declare function debugLog(msg: () => string): void; /** * Returns `n`'s parents in order. */ export declare function parents(n: ts.Node): ts.Node[]; /** * Searches for something satisfying the given test in `n` or its children. */ export declare function findInChildren(n: ts.Node, test: (n: ts.Node) => boolean): boolean; /** * Returns true if the pattern-based Rule should look at that node and consider * warning there. The goal is to make it easy to exclude on source files, * blocks, module declarations, JSDoc, lib.d.ts nodes, that kind of things. */ export declare function shouldExamineNode(n: ts.Node): boolean; /** * Return whether the given Node is (or is in) a library included as default. * We currently look for a node_modules/typescript/ prefix, but this could * be expanded if needed. */ export declare function isInStockLibraries(n: ts.Node | ts.SourceFile): boolean; /** * Turns the given Symbol into its non-aliased version (which could be itself). * Returns undefined if given an undefined Symbol (so you can call * `dealias(typeChecker.getSymbolAtLocation(node))`). */ export declare function dealias(symbol: ts.Symbol | undefined, tc: ts.TypeChecker): ts.Symbol | undefined; /** * Returns whether `n`'s parents are something indicating a type. */ export declare function isPartOfTypeDeclaration(n: ts.Node): boolean; /** * Returns whether `n` is under an import statement. */ export declare function isPartOfImportStatement(n: ts.Node): boolean; /** Returns whether `n` is being declared in a declaration statement. */ export declare function isNameInDeclaration(n: ts.Node): boolean; /** * If verbose, logs the given error that happened while walking n, with a * stacktrace. */ export declare function logASTWalkError(verbose: boolean, n: ts.Node, e: Error): void;