import { Position, Range, TextRange } from '../common/textRange'; import { TextRangeCollection } from '../common/textRangeCollection'; import { ArgumentNode, AssignmentExpressionNode, AwaitNode, CallNode, ClassNode, DecoratorNode, EvaluationScopeNode, ExecutionScopeNode, ExpressionNode, FunctionNode, ImportFromNode, IndexNode, LambdaNode, MemberAccessNode, ModuleNode, NameNode, ParameterNode, ParseNode, ParseNodeType, StatementListNode, StatementNode, StringListNode, StringNode, SuiteNode, TypeAnnotationNode, TypeParameterScopeNode } from '../parser/parseNodes'; import { ParseFileResults } from '../parser/parser'; import { TokenizerOutput } from '../parser/tokenizer'; import { OperatorType, StringToken, Token } from '../parser/tokenizerTypes'; import { ParseTreeWalker } from './parseTreeWalker'; import { TypeVarScopeId } from './types'; export declare const enum PrintExpressionFlags { None = 0, ForwardDeclarations = 1, DoNotLimitStringLength = 2 } export interface EvaluationScopeInfo { node: EvaluationScopeNode; useProxyScope?: boolean; } export declare function getNodeDepth(node: ParseNode): number; export declare function findNodeByPosition(node: ParseNode, position: Position, lines: TextRangeCollection): ParseNode | undefined; export declare function findNodeByOffset(node: ParseNode, offset: number): ParseNode | undefined; export declare function isCompliantWithNodeRangeRules(node: ParseNode): node is import("../parser/parseNodes").ErrorNode | ArgumentNode | import("../parser/parseNodes").AssertNode | AssignmentExpressionNode | import("../parser/parseNodes").AugmentedAssignmentNode | AwaitNode | import("../parser/parseNodes").BinaryOperationNode | import("../parser/parseNodes").BreakNode | CallNode | import("../parser/parseNodes").CaseNode | ClassNode | import("../parser/parseNodes").ComprehensionNode | import("../parser/parseNodes").ComprehensionForNode | import("../parser/parseNodes").ComprehensionIfNode | import("../parser/parseNodes").ConstantNode | import("../parser/parseNodes").ContinueNode | DecoratorNode | import("../parser/parseNodes").DelNode | import("../parser/parseNodes").DictionaryNode | import("../parser/parseNodes").DictionaryExpandEntryNode | import("../parser/parseNodes").DictionaryKeyEntryNode | import("../parser/parseNodes").EllipsisNode | import("../parser/parseNodes").IfNode | import("../parser/parseNodes").ImportNode | import("../parser/parseNodes").ImportAsNode | ImportFromNode | import("../parser/parseNodes").ImportFromAsNode | IndexNode | import("../parser/parseNodes").ExceptNode | import("../parser/parseNodes").ForNode | import("../parser/parseNodes").FormatStringNode | FunctionNode | import("../parser/parseNodes").FunctionAnnotationNode | import("../parser/parseNodes").GlobalNode | LambdaNode | import("../parser/parseNodes").ListNode | import("../parser/parseNodes").MatchNode | MemberAccessNode | import("../parser/parseNodes").ModuleNameNode | ModuleNode | NameNode | import("../parser/parseNodes").NonlocalNode | import("../parser/parseNodes").NumberNode | ParameterNode | import("../parser/parseNodes").PassNode | import("../parser/parseNodes").PatternAsNode | import("../parser/parseNodes").PatternClassNode | import("../parser/parseNodes").PatternClassArgumentNode | import("../parser/parseNodes").PatternCaptureNode | import("../parser/parseNodes").PatternLiteralNode | import("../parser/parseNodes").PatternMappingExpandEntryNode | import("../parser/parseNodes").PatternMappingKeyEntryNode | import("../parser/parseNodes").PatternMappingNode | import("../parser/parseNodes").PatternSequenceNode | import("../parser/parseNodes").PatternValueNode | import("../parser/parseNodes").RaiseNode | import("../parser/parseNodes").ReturnNode | import("../parser/parseNodes").SetNode | import("../parser/parseNodes").SliceNode | StatementListNode | StringNode | SuiteNode | import("../parser/parseNodes").TernaryNode | import("../parser/parseNodes").TupleNode | import("../parser/parseNodes").TryNode | import("../parser/parseNodes").TypeAliasNode | TypeAnnotationNode | import("../parser/parseNodes").TypeParameterNode | import("../parser/parseNodes").TypeParameterListNode | import("../parser/parseNodes").UnaryOperationNode | import("../parser/parseNodes").UnpackNode | import("../parser/parseNodes").WhileNode | import("../parser/parseNodes").WithNode | import("../parser/parseNodes").WithItemNode | import("../parser/parseNodes").YieldNode | import("../parser/parseNodes").YieldFromNode; export declare function getClassFullName(classNode: ParseNode, moduleName: string, className: string): string; export declare function getTypeSourceId(node: ParseNode): number; export declare function printArg(node: ArgumentNode, flags: PrintExpressionFlags): string; export declare function printExpression(node: ExpressionNode, flags?: PrintExpressionFlags): string; export declare function printOperator(operator: OperatorType): string; export declare function getCallForName(node: NameNode): CallNode | undefined; export declare function getDecoratorForName(node: NameNode): DecoratorNode | undefined; export declare function getEnclosingSuite(node: ParseNode): SuiteNode | undefined; export declare function getEnclosingClass(node: ParseNode, stopAtFunction?: boolean): ClassNode | undefined; export declare function getEnclosingModule(node: ParseNode): ModuleNode; export declare function getEnclosingClassOrModule(node: ParseNode, stopAtFunction?: boolean): ClassNode | ModuleNode | undefined; export declare function getEnclosingFunction(node: ParseNode): FunctionNode | undefined; export declare function getEnclosingFunctionEvaluationScope(node: ParseNode): FunctionNode | undefined; export declare function getEnclosingLambda(node: ParseNode): LambdaNode | undefined; export declare function getEnclosingClassOrFunction(node: ParseNode): FunctionNode | ClassNode | undefined; export declare function getEnclosingClassOrFunctionSuite(node: ParseNode): SuiteNode | undefined; export declare function getEnclosingSuiteOrModule(node: ParseNode, stopAtFunction?: boolean, stopAtLambda?: boolean): SuiteNode | ModuleNode | undefined; export declare function getEvaluationNodeForAssignmentExpression(node: AssignmentExpressionNode): LambdaNode | FunctionNode | ModuleNode | ClassNode | undefined; export declare function getEvaluationScopeNode(node: ParseNode): EvaluationScopeInfo; export declare function getTypeVarScopeNode(node: ParseNode): TypeParameterScopeNode | undefined; export declare function getExecutionScopeNode(node: ParseNode): ExecutionScopeNode; export declare function getTypeAnnotationNode(node: ParseNode): TypeAnnotationNode | undefined; export declare function getArgsByRuntimeOrder(node: CallNode): ArgumentNode[]; export declare function isFinalAllowedForAssignmentTarget(targetNode: ExpressionNode): boolean; export declare function isRequiredAllowedForAssignmentTarget(targetNode: ExpressionNode): boolean; export declare function isNodeContainedWithin(node: ParseNode, potentialContainer: ParseNode): boolean; export declare function getParentNodeOfType(node: ParseNode, containerType: ParseNodeType): T | undefined; export declare function getParentAnnotationNode(node: ExpressionNode): ExpressionNode | undefined; export declare function isNodeContainedWithinNodeType(node: ParseNode, containerType: ParseNodeType): boolean; export declare function isSuiteEmpty(node: SuiteNode): boolean; export declare function containsAwaitNode(node: ParseNode): boolean; export declare function isMatchingExpression(reference: ExpressionNode, expression: ExpressionNode, compareName?: (reference: NameNode, expression: NameNode) => boolean): boolean; export declare function isPartialMatchingExpression(reference: ExpressionNode, expression: ExpressionNode): boolean; export declare function isWithinDefaultParamInitializer(node: ParseNode): boolean; export declare function isWithinTypeAnnotation(node: ParseNode, requireQuotedAnnotation: boolean): boolean; export declare function isWithinAnnotationComment(node: ParseNode): boolean; export declare function isWithinLoop(node: ParseNode): boolean; export declare function isWithinAssertExpression(node: ParseNode): boolean; export declare function getDocString(statements: StatementNode[]): string | undefined; export declare function isDocString(statementList: StatementListNode): boolean; export declare function isAssignmentToDefaultsFollowingNamedTuple(callNode: ParseNode): boolean; export declare class NameNodeWalker extends ParseTreeWalker { private _callback; private _subscriptIndex; private _baseExpression; constructor(_callback: (node: NameNode, subscriptIndex: number | undefined, baseExpression: ExpressionNode | undefined) => void); visitName(node: NameNode): boolean; visitIndex(node: IndexNode): boolean; } export declare class CallNodeWalker extends ParseTreeWalker { private _callback; constructor(_callback: (node: CallNode) => void); visitCall(node: CallNode): boolean; } export declare function getEnclosingParam(node: ParseNode): ParameterNode | undefined; export declare function getCallNodeAndActiveParamIndex(node: ParseNode, insertionOffset: number, tokens: TextRangeCollection): { callNode: CallNode; activeIndex: number; activeOrFake: boolean; } | undefined; export declare function getTokenIndexAtLeft(tokens: TextRangeCollection, position: number, includeWhitespace?: boolean, includeZeroLengthToken?: boolean): number; export declare function getTokenAtLeft(tokens: TextRangeCollection, position: number, includeWhitespace?: boolean, includeZeroLengthToken?: boolean): Token | undefined; export declare function getTokenIndexAfter(tokens: TextRangeCollection, position: number, predicate: (t: Token) => boolean): number; export declare function getTokenAfter(tokens: TextRangeCollection, position: number, predicate: (t: Token) => boolean): Token | undefined; export declare function getTokenAtIndex(tokens: TextRangeCollection, index: number): Token | undefined; export declare function getTokenAt(tokens: TextRangeCollection, position: number): Token | undefined; export declare function getTokenOverlapping(tokens: TextRangeCollection, position: number): Token | undefined; export declare function getIndexOfTokenOverlapping(tokens: TextRangeCollection, position: number): number; export declare function getCommentsAtTokenIndex(tokens: TextRangeCollection, index: number): import("../parser/tokenizerTypes").Comment[] | undefined; export declare function printParseNodeType(type: ParseNodeType): string; export declare function isWriteAccess(node: NameNode): boolean; export declare function getMatchingDescendants(node: ParseNode, match: (n: ParseNode) => boolean): ParseNode[]; export declare function getModuleNode(node: ParseNode): ModuleNode | undefined; export declare function getFileInfoFromNode(node: ParseNode): import("./analyzerFileInfo").AnalyzerFileInfo | undefined; export declare function isFunctionSuiteEmpty(node: FunctionNode): boolean; export declare function getTypeAnnotationForParam(node: FunctionNode, paramIndex: number): ExpressionNode | undefined; export declare function isImportModuleName(node: ParseNode): boolean; export declare function isImportAlias(node: ParseNode): boolean; export declare function isFromImportModuleName(node: ParseNode): boolean; export declare function isFromImportName(node: ParseNode): boolean; export declare function isFromImportAlias(node: ParseNode): boolean; export declare function isLastNameOfModuleName(node: NameNode): boolean; export declare function getAncestorsIncludingSelf(node: ParseNode | undefined): Generator; type NodeForType = T extends ParseNode & { nodeType: NT; } ? T : never; export declare function getFirstAncestorOrSelfOfKind(node: ParseNode | undefined, type: NT): NodeForType | undefined; export declare function getFirstAncestorOrSelf(node: ParseNode | undefined, predicate: (node: ParseNode) => boolean): ParseNode | undefined; export declare function getDottedNameWithGivenNodeAsLastName(node: NameNode): MemberAccessNode | NameNode; export declare function getDecoratorName(decorator: DecoratorNode): string | undefined; export declare function getDottedName(node: MemberAccessNode | NameNode): NameNode[] | undefined; export declare function getFirstNameOfDottedName(node: MemberAccessNode | NameNode): NameNode | undefined; export declare function isFirstNameOfDottedName(node: NameNode): boolean; export declare function isLastNameOfDottedName(node: NameNode): boolean; export declare function getStringNodeValueRange(node: StringNode): TextRange; export declare function getStringValueRange(token: StringToken): TextRange; export declare function getFullStatementRange(statementNode: ParseNode, parseFileResults: ParseFileResults, options?: { includeTrailingBlankLines: boolean; }): Range; export declare function isBlankLine(tokenizerOutput: TokenizerOutput, text: string, line: number): boolean; export declare function isUnannotatedFunction(node: FunctionNode): boolean; export declare function isValidLocationForFutureImport(node: ImportFromNode): boolean; export declare function operatorSupportsChaining(op: OperatorType): boolean; export declare function getVariableDocStringNode(node: ExpressionNode): StringListNode | undefined; export declare function getScopeIdForNode(node: ParseNode): string; export declare function getTypeVarScopesForNode(node: ParseNode): TypeVarScopeId[]; export declare function checkDecorator(node: DecoratorNode, value: string): boolean; export declare function isSimpleDefault(node: ExpressionNode): boolean; export declare function getPreviousNonWhitespaceToken(tokens: TextRangeCollection, offset: number): Token | undefined; export declare function getNextNonWhitespaceToken(tokens: TextRangeCollection, offset: number): Token | undefined; export declare function getNextMatchingToken(tokens: TextRangeCollection, offset: number, match: (token: Token) => boolean, exit?: (token: Token) => boolean): Token | undefined; export {};