import * as ast from "./grammar/ast"; import { Program, SourceFile } from "./semantics/program"; import { SemanticSymbol, TypeChecker } from "./semantics/type-checker"; export declare function findLeafAtPosition(file: SourceFile, line: number, column: number, program: Program): ast.AnyAstNode | undefined; export declare function findNameAtPosition(file: SourceFile, line: number, column: number, program: Program): ast.Identifier | undefined; export declare function findNameAtLocationInErrorNode(node: ast.Error, line: number, column: number, typeChecker: TypeChecker): { scope: ScopedBlock; owningObject?: SemanticSymbol; prefix: string; suffix: string; }; export declare function isPositionInNode(node: ast.AnyAstNode, line: number, column: number): boolean; export declare function combineSourceRanges(from: ast.SourceRange, to: ast.SourceRange): ast.SourceRange; export declare function isIdentifier(node: ast.AnyAstNode): node is ast.Identifier; export declare function isUnaryOperatorExpression(node: ast.AnyAstNode): node is ast.UnaryOperatorExpression; export declare function isBinaryExpression(node: ast.AnyAstNode): node is ast.BinaryExpression; export declare function isCompoundName(node: ast.AnyAstNode): node is ast.CompoundName; export declare function isCompoundBindingExpression(node: ast.AnyAstNode): node is ast.BindingCompoundName; export declare function isCallExpression(node: ast.AnyAstNode): node is ast.CallExpression; export declare function isCompound(node: ast.AnyAstNode): node is ast.Compound; export declare function isDollarsLiteral(node: ast.AnyAstNode): node is ast.DollarsLiteral; export declare function isEvent(node: ast.AnyAstNode): node is ast.Event; export declare function isEventParameter(node: ast.AnyAstNode): node is ast.EventParameter; export declare function isComponentDefinition(statement: ast.AnyAstNode): statement is ast.ComponentDefinition; export declare function isEnumDefinition(statement: ast.AnyAstNode): statement is ast.EnumDefinition; export declare function isForeignFunctionDeclaration(statement: ast.AnyAstNode): statement is ast.ForeignFunctionDeclaration; export declare function isFunctionDefinition(statement: ast.AnyAstNode): statement is ast.FunctionDefinition; export declare function isFunctionParameter(expression: ast.AnyAstNode): expression is ast.FunctionParameter; export declare function isGuardStatement(statement: ast.AnyAstNode): statement is ast.GuardStatement; export declare function isOnParameter(expression: ast.AnyAstNode): expression is ast.OnParameter; export declare function isParenthesizedExpression(expression: ast.AnyAstNode): expression is ast.ParenthesizedExpression; export declare function isVariableDefinition(statement: ast.AnyAstNode): statement is ast.VariableDefinition; export declare function isAsterisk(node: ast.AnyAstNode): node is ast.Keyword<"*">; export declare function isIllegalKeyword(node: ast.AnyAstNode): node is ast.Keyword<"illegal">; export declare function isOptionalKeyword(node: ast.AnyAstNode): node is ast.Keyword<"optional">; export declare function isInevitableKeyword(node: ast.AnyAstNode): node is ast.Keyword<"inevitable">; export declare function isReplyKeyword(node: ast.AnyAstNode): node is ast.Keyword<"reply">; export declare function isInKeyword(node: ast.AnyAstNode): node is ast.Keyword<"in">; export declare function isOutKeyword(node: ast.AnyAstNode): node is ast.Keyword<"out">; export declare function isInOutKeyword(node: ast.AnyAstNode): node is ast.Keyword<"inout">; export declare function isVoidKeyword(node: ast.AnyAstNode): node is ast.Keyword<"void">; export declare function isKeyword(node: ast.AnyAstNode): node is ast.Keyword; export declare function isAssignment(statement: ast.AnyAstNode): statement is ast.AssignmentStatement; export declare function isExtern(statement: ast.AnyAstNode): statement is ast.ExternDeclaration; export declare function isInstance(statement: ast.AnyAstNode): statement is ast.Instance; export declare function isNamespace(node: ast.AnyAstNode): node is ast.Namespace; export declare function isSourceFile(node: ast.AnyAstNode): node is ast.File; export declare function isTypeReference(node: ast.AnyAstNode): node is ast.TypeReference; export declare function isPort(node: ast.AnyAstNode): node is ast.Port; export declare function isReply(node: ast.AnyAstNode): node is ast.Reply; export declare function isInjected(port: ast.Port): boolean; export declare function isExpressionStatement(node: ast.AnyAstNode): node is ast.ExpressionStatement; export declare function isIntDefinition(node: ast.AnyAstNode): node is ast.IntDefinition; export declare function isInterfaceDefinition(node: ast.AnyAstNode): node is ast.InterfaceDefinition; export declare function isImportStatement(node: ast.AnyAstNode): node is ast.ImportStatement; export declare function isErrorNode(node: ast.AnyAstNode): node is ast.Error; export declare function isOutEvent(node: ast.AnyAstNode): node is ast.Event; export type ScopedBlock = ast.AnyAstNode & (ast.Behavior | ast.ComponentDefinition | ast.Compound | ast.FunctionDefinition | ast.GuardStatement | ast.IfStatement | ast.InterfaceDefinition | ast.Namespace | ast.OnStatement | ast.System | ast.File); export declare function isScopedBlock(node: ast.AnyAstNode): node is ScopedBlock; export declare function isOnStatement(node: ast.AnyAstNode): node is ast.OnStatement; export declare function isOnPortTrigger(node: ast.AnyAstNode): node is ast.OnPortTrigger; export declare function systemInstances(system: ast.System): ast.Instance[]; export declare function systemBindings(system: ast.System): ast.Binding[]; export declare function isChildOf(child: ast.AnyAstNode, parent: ast.AnyAstNode): boolean; export declare function findFirstParent(node: ast.AnyAstNode, predicate: (node: ast.AnyAstNode) => node is T): T | undefined; export declare function nameToString(name: ast.Name): string; export declare function assertNever(x: never, message: string): void;