import * as ts from "typescript";
import CodeBlockWriter from "code-block-writer";
import { SourceFile } from "./../file";
import { Symbol } from "./Symbol";
import { SyntaxList } from "./SyntaxList";
import * as compiler from "./../../compiler";

export declare class Node<NodeType extends ts.Node = ts.Node> {
    /**
     * Gets the underlying compiler node.
     */
    readonly compilerNode: NodeType;
    /**
     * Releases the node and all its descendants from the underlying node cache and ast.
     *
     * This is useful if you want to improve the performance of manipulation by not tracking this node anymore.
     */
    forget(): void;
    /**
     * Gets the syntax kind.
     */
    getKind(): ts.SyntaxKind;
    /**
     * Gets the syntax kind name.
     */
    getKindName(): string;
    /**
     * Gets the symbol or throws an error if it doesn't exist.
     */
    getSymbolOrThrow(): Symbol;
    /**
     * Gets the compiler symbol or undefined if it doesn't exist.
     */
    getSymbol(): Symbol | undefined;
    /**
     * If the node contains the provided range (inclusive).
     * @param pos - Start position.
     * @param end - End position.
     */
    containsRange(pos: number, end: number): boolean;
    /**
     * Gets if the specified position is within a string.
     * @param pos - Position.
     */
    isInStringAtPos(pos: number): boolean;
    /**
     * Gets the first child by a condition or throws.
     * @param condition - Condition.
     */
    getFirstChildOrThrow(condition?: (node: Node) => boolean): Node<ts.Node>;
    /**
     * Gets the first child by a condition.
     * @param condition - Condition.
     */
    getFirstChild(condition?: (node: Node) => boolean): Node | undefined;
    /**
     * Gets the last child by a condition or throws.
     * @param condition - Condition.
     */
    getLastChildOrThrow(condition?: (node: Node) => boolean): Node<ts.Node>;
    /**
     * Gets the last child by a condition.
     * @param condition - Condition.
     */
    getLastChild(condition?: (node: Node) => boolean): Node | undefined;
    /**
     * Gets the first descendant by a condition or throws.
     * @param condition - Condition.
     */
    getFirstDescendantOrThrow(condition?: (node: Node) => boolean): Node<ts.Node>;
    /**
     * Gets the first descendant by a condition.
     * @param condition - Condition.
     */
    getFirstDescendant(condition?: (node: Node) => boolean): Node<ts.Node> | undefined;
    /**
     * Gets the previous sibling or throws.
     * @param condition - Optional condition for getting the previous sibling.
     */
    getPreviousSiblingOrThrow(condition?: (node: Node) => boolean): Node<ts.Node>;
    /**
     * Gets the previous sibling.
     * @param condition - Optional condition for getting the previous sibling.
     */
    getPreviousSibling(condition?: (node: Node) => boolean): Node | undefined;
    /**
     * Gets the next sibling or throws.
     * @param condition - Optional condition for getting the next sibling.
     */
    getNextSiblingOrThrow(condition?: (node: Node) => boolean): Node<ts.Node>;
    /**
     * Gets the next sibling.
     * @param condition - Optional condition for getting the previous sibling.
     */
    getNextSibling(condition?: (node: Node) => boolean): Node | undefined;
    /**
     * Gets the previous siblings.
     *
     * Note: Closest sibling is the zero index.
     */
    getPreviousSiblings(): Node[];
    /**
     * Gets the next siblings.
     *
     * Note: Closest sibling is the zero index.
     */
    getNextSiblings(): Node[];
    /**
     * Gets the children of the node.
     */
    getChildren(): Node[];
    /**
     * Gets the child at the specified index.
     * @param index - Index of the child.
     */
    getChildAtIndex(index: number): Node;
    /**
     * Gets the child syntax list or throws if it doesn't exist.
     */
    getChildSyntaxListOrThrow(): SyntaxList;
    /**
     * Gets the child syntax list if it exists.
     */
    getChildSyntaxList(): SyntaxList | undefined;
    /**
     * Gets the node's descendants.
     */
    getDescendants(): Node[];
    /**
     * Gets the child count.
     */
    getChildCount(): number;
    /**
     * Gets the child at the provided position, or undefined if not found.
     * @param pos - Position to search for.
     */
    getChildAtPos(pos: number): Node | undefined;
    /**
     * Gets the most specific descendant at the provided position, or undefined if not found.
     * @param pos - Position to search for.
     */
    getDescendantAtPos(pos: number): Node | undefined;
    /**
     * Gets the most specific descendant at the provided start position with the specified width, or undefined if not found.
     * @param start - Start position to search for.
     * @param width - Width of the node to search for.
     */
    getDescendantAtStartWithWidth(start: number, width: number): Node | undefined;
    /**
     * Gets the start position with leading trivia.
     */
    getPos(): number;
    /**
     * Gets the end position.
     */
    getEnd(): number;
    /**
     * Gets the start position without leading trivia.
     */
    getStart(): number;
    /**
     * Gets the first position from the pos that is not whitespace.
     */
    getNonWhitespaceStart(): number;
    /**
     * Gets the width of the node (length without trivia).
     */
    getWidth(): number;
    /**
     * Gets the full width of the node (length with trivia).
     */
    getFullWidth(): number;
    /**
     * Gets the text without leading trivia.
     */
    getText(): string;
    /**
     * Gets the full text with leading trivia.
     */
    getFullText(): string;
    /**
     * Gets the combined modifier flags.
     */
    getCombinedModifierFlags(): ts.ModifierFlags;
    /**
     * Gets the source file.
     */
    getSourceFile(): SourceFile;
    /**
     * Gets a compiler node property wrapped in a Node.
     * @param propertyName - Property name.
     */
    getNodeProperty<KeyType extends keyof NodeType>(propertyName: KeyType): Node<NodeType[KeyType]>;
    /**
     * Goes up the tree getting all the parents in ascending order.
     */
    getAncestors(): Node<ts.Node>[];
    /**
     * Get the node's parent.
     */
    getParent(): Node | undefined;
    /**
     * Gets the parent or throws an error if it doesn't exist.
     */
    getParentOrThrow(): Node<ts.Node>;
    /**
     * Goes up the parents (ancestors) of the node while a condition is true.
     * Throws if the initial parent doesn't match the condition.
     * @param condition - Condition that tests the parent to see if the expression is true.
     */
    getParentWhileOrThrow(condition: (node: Node) => boolean): Node<ts.Node>;
    /**
     * Goes up the parents (ancestors) of the node while a condition is true.
     * Returns undefined if the initial parent doesn't match the condition.
     * @param condition - Condition that tests the parent to see if the expression is true.
     */
    getParentWhile(condition: (node: Node) => boolean): Node<ts.Node> | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.Block): compiler.Block;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.Decorator): compiler.Decorator;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.Identifier): compiler.Identifier;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.NullKeyword): compiler.Expression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.StringKeyword): compiler.Expression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Throws if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKindOrThrow(kind: ts.SyntaxKind): Node<ts.Node>;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.Block): compiler.Block | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.Decorator): compiler.Decorator | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.Identifier): compiler.Identifier | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.NullKeyword): compiler.Expression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.StringKeyword): compiler.Expression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Goes up the parents (ancestors) of the node while the parent is the specified syntax kind.
     * Returns undefined if the initial parent is not the specified syntax kind.
     * @param kind - Syntax kind to check for.
     */
    getParentWhileKind(kind: ts.SyntaxKind): Node<ts.Node> | undefined;
    /**
     * Gets the last token of this node. Usually this is a close brace.
     */
    getLastToken(): Node;
    /**
     * Gets if this node is in a syntax list.
     */
    isInSyntaxList(): boolean;
    /**
     * Gets the parent if it's a syntax list or throws an error otherwise.
     */
    getParentSyntaxListOrThrow(): Node<ts.Node>;
    /**
     * Gets the parent if it's a syntax list.
     */
    getParentSyntaxList(): Node | undefined;
    /**
     * Gets the child index of this node relative to the parent.
     */
    getChildIndex(): number;
    /**
     * Gets the indentation text.
     */
    getIndentationText(): string;
    /**
     * Gets the next indentation level text.
     */
    getChildIndentationText(): string;
    /**
     * Gets the position of the start of the line that this node starts on.
     */
    getStartLinePos(): number;
    /**
     * Gets if this is the first node on the current line.
     */
    isFirstNodeOnLine(): boolean;
    /**
     * Replaces the text of the current node with new text.
     *
     * This will forget the current node and return a new node that can be asserted or type guarded to the correct type.
     * @param writerFunction - Write the text using the provided writer.
     * @returns The new node.
     */
    replaceWithText(writerFunction: (writer: CodeBlockWriter) => void): Node;
    /**
     * Replaces the text of the current node with new text.
     *
     * This will forget the current node and return a new node that can be asserted or type guarded to the correct type.
     * @param text - Text to replace with.
     * @returns The new node.
     */
    replaceWithText(text: string): Node;
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.Block): compiler.Block[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.Decorator): compiler.Decorator[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.Identifier): compiler.Identifier[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.NullKeyword): compiler.Expression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.StringKeyword): compiler.Expression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral[];
    /**
     * Gets the children based on a kind.
     * @param kind - Syntax kind.
     */
    getChildrenOfKind(kind: ts.SyntaxKind): Node[];
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.Block): compiler.Block;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.Decorator): compiler.Decorator;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.Identifier): compiler.Identifier;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.NullKeyword): compiler.Expression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.StringKeyword): compiler.Expression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral;
    /**
     * Gets the first child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildByKindOrThrow(kind: ts.SyntaxKind): Node<ts.Node>;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.Block): compiler.Block | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.Decorator): compiler.Decorator | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.Identifier): compiler.Identifier | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.NullKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.StringKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the first child by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildByKind(kind: ts.SyntaxKind): Node | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.Block): compiler.Block;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.Decorator): compiler.Decorator;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.Identifier): compiler.Identifier;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.NullKeyword): compiler.Expression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.StringKeyword): compiler.Expression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral;
    /**
     * Gets the first child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKindOrThrow(kind: ts.SyntaxKind): Node<ts.Node>;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.Block): compiler.Block | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.Decorator): compiler.Decorator | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.Identifier): compiler.Identifier | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.NullKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.StringKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the first child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstChildIfKind(kind: ts.SyntaxKind): Node | undefined;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.Block): compiler.Block;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.Decorator): compiler.Decorator;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.Identifier): compiler.Identifier;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.NullKeyword): compiler.Expression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.StringKeyword): compiler.Expression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral;
    /**
     * Gets the last child by syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildByKindOrThrow(kind: ts.SyntaxKind): Node<ts.Node>;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.Block): compiler.Block | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.Decorator): compiler.Decorator | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.Identifier): compiler.Identifier | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.NullKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.StringKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the last child by syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildByKind(kind: ts.SyntaxKind): Node | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.Block): compiler.Block;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.Decorator): compiler.Decorator;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.Identifier): compiler.Identifier;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.NullKeyword): compiler.Expression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.StringKeyword): compiler.Expression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral;
    /**
     * Gets the last child if it matches the specified syntax kind or throws an error if not found.
     * @param kind - Syntax kind.
     */
    getLastChildIfKindOrThrow(kind: ts.SyntaxKind): Node<ts.Node>;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.Block): compiler.Block | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.Decorator): compiler.Decorator | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.Identifier): compiler.Identifier | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.NullKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.StringKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the last child if it matches the specified syntax kind.
     * @param kind - Syntax kind.
     */
    getLastChildIfKind(kind: ts.SyntaxKind): Node | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.SourceFile): compiler.SourceFile;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.Block): compiler.Block;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.CallExpression): compiler.CallExpression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.Decorator): compiler.Decorator;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.EnumMember): compiler.EnumMember;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.Identifier): compiler.Identifier;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.AnyKeyword): compiler.Expression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ImportKeyword): compiler.Expression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.NeverKeyword): compiler.Expression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.NullKeyword): compiler.Expression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.NumberKeyword): compiler.Expression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.StringKeyword): compiler.Expression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.SuperKeyword): compiler.Expression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.ThisKeyword): compiler.Expression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.VoidKeyword): compiler.Expression;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral;
    /**
     * Gets the child at the specified index if it's the specified kind or throws an exception.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKindOrThrow(index: number, kind: ts.SyntaxKind): Node<ts.Node>;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.SourceFile): compiler.SourceFile | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.Block): compiler.Block | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.CallExpression): compiler.CallExpression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.Decorator): compiler.Decorator | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.EnumMember): compiler.EnumMember | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.Identifier): compiler.Identifier | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.AnyKeyword): compiler.Expression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ImportKeyword): compiler.Expression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.NeverKeyword): compiler.Expression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.NullKeyword): compiler.Expression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.NumberKeyword): compiler.Expression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.StringKeyword): compiler.Expression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.SuperKeyword): compiler.Expression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.ThisKeyword): compiler.Expression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.VoidKeyword): compiler.Expression | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the child at the specified index if it's the specified kind or returns undefined.
     * @param index - Index to get.
     * @param kind - Expected kind.
     */
    getChildAtIndexIfKind(index: number, kind: ts.SyntaxKind): Node | undefined;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.Block): compiler.Block;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.Decorator): compiler.Decorator;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.Identifier): compiler.Identifier;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.NullKeyword): compiler.Expression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.StringKeyword): compiler.Expression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral;
    /**
     * Gets the previous sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKindOrThrow(kind: ts.SyntaxKind): Node<ts.Node>;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.Block): compiler.Block;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.Decorator): compiler.Decorator;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.Identifier): compiler.Identifier;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.NullKeyword): compiler.Expression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.StringKeyword): compiler.Expression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral;
    /**
     * Gets the next sibiling if it matches the specified kind, or throws.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKindOrThrow(kind: ts.SyntaxKind): Node<ts.Node>;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.Block): compiler.Block | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.Decorator): compiler.Decorator | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.Identifier): compiler.Identifier | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.NullKeyword): compiler.Expression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.StringKeyword): compiler.Expression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the previous sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getPreviousSiblingIfKind(kind: ts.SyntaxKind): Node | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.Block): compiler.Block | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.Decorator): compiler.Decorator | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.Identifier): compiler.Identifier | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.NullKeyword): compiler.Expression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.StringKeyword): compiler.Expression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the next sibling if it matches the specified kind.
     * @param kind - Kind to check.
     */
    getNextSiblingIfKind(kind: ts.SyntaxKind): Node | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.Block): compiler.Block | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.Decorator): compiler.Decorator | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.Identifier): compiler.Identifier | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.NullKeyword): compiler.Expression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.StringKeyword): compiler.Expression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the parent if it's a certain syntax kind.
     */
    getParentIfKind(kind: ts.SyntaxKind): Node | undefined;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.Block): compiler.Block;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.Decorator): compiler.Decorator;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.Identifier): compiler.Identifier;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.NullKeyword): compiler.Expression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.StringKeyword): compiler.Expression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral;
    /**
     * Gets the parent if it's a certain syntax kind of throws.
     */
    getParentIfKindOrThrow(kind: ts.SyntaxKind): Node<ts.Node>;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.Block): compiler.Block;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.Decorator): compiler.Decorator;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.Identifier): compiler.Identifier;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.NullKeyword): compiler.Expression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.StringKeyword): compiler.Expression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral;
    /**
     * Gets the first ancestor by syntax kind or throws if not found.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKindOrThrow(kind: ts.SyntaxKind): Node<ts.Node>;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.Block): compiler.Block | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.Decorator): compiler.Decorator | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.Identifier): compiler.Identifier | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.NullKeyword): compiler.Expression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.StringKeyword): compiler.Expression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Get the first ancestor by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstAncestorByKind(kind: ts.SyntaxKind): Node | undefined;
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.Block): compiler.Block[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.Decorator): compiler.Decorator[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.Identifier): compiler.Identifier[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.NullKeyword): compiler.Expression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.StringKeyword): compiler.Expression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral[];
    /**
     * Gets the descendants that match a specified syntax kind.
     * @param kind - Kind to check.
     */
    getDescendantsOfKind(kind: ts.SyntaxKind): Node<ts.Node>[];
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.Block): compiler.Block;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.Decorator): compiler.Decorator;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.Identifier): compiler.Identifier;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.NullKeyword): compiler.Expression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.StringKeyword): compiler.Expression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral;
    /**
     * Gets the first descendant by syntax kind or throws.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKindOrThrow(kind: ts.SyntaxKind): Node<ts.Node>;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.SourceFile): compiler.SourceFile | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ArrayLiteralExpression): compiler.ArrayLiteralExpression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.BinaryExpression): compiler.BinaryExpression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.Block): compiler.Block | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.CallExpression): compiler.CallExpression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ClassDeclaration): compiler.ClassDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.Constructor): compiler.ConstructorDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ConstructSignature): compiler.ConstructSignatureDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ComputedPropertyName): compiler.ComputedPropertyName | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.Decorator): compiler.Decorator | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.EnumDeclaration): compiler.EnumDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.EnumMember): compiler.EnumMember | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ExportAssignment): compiler.ExportAssignment | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ExportDeclaration): compiler.ExportDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ExportSpecifier): compiler.ExportSpecifier | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ExpressionWithTypeArguments): compiler.ExpressionWithTypeArguments | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ExpressionStatement): compiler.ExpressionStatement | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.FunctionDeclaration): compiler.FunctionDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.FunctionExpression): compiler.FunctionExpression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.GetAccessor): compiler.GetAccessorDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.HeritageClause): compiler.HeritageClause | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.Identifier): compiler.Identifier | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ImportDeclaration): compiler.ImportDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ImportSpecifier): compiler.ImportSpecifier | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.InterfaceDeclaration): compiler.InterfaceDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.MethodDeclaration): compiler.MethodDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.MethodSignature): compiler.MethodSignature | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ModuleDeclaration): compiler.NamespaceDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.NumericLiteral): compiler.NumericLiteral | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.FirstLiteralToken): compiler.NumericLiteral | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ObjectLiteralExpression): compiler.ObjectLiteralExpression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.Parameter): compiler.ParameterDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.PropertyAccessExpression): compiler.PropertyAccessExpression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.PropertyAssignment): compiler.PropertyAssignment | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.PropertyDeclaration): compiler.PropertyDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.PropertySignature): compiler.PropertySignature | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.QualifiedName): compiler.QualifiedName | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.FirstNode): compiler.QualifiedName | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.RegularExpressionLiteral): compiler.RegularExpressionLiteral | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ReturnStatement): compiler.ReturnStatement | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.SetAccessor): compiler.SetAccessorDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ShorthandPropertyAssignment): compiler.ShorthandPropertyAssignment | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.SpreadAssignment): compiler.SpreadAssignment | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.StringLiteral): compiler.StringLiteral | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.SyntaxList): compiler.SyntaxList | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.TypeAliasDeclaration): compiler.TypeAliasDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.TypeParameter): compiler.TypeParameterDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.TypeReference): compiler.TypeReferenceNode | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.VariableDeclaration): compiler.VariableDeclaration | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.VariableStatement): compiler.VariableStatement | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.JSDocComment): compiler.JSDoc | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.FirstTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.LastTypeNode): compiler.TypeNode | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.JSDocTag): compiler.JSDocUnknownTag | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.JSDocAugmentsTag): compiler.JSDocAugmentsTag | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.JSDocClassTag): compiler.JSDocClassTag | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.JSDocReturnTag): compiler.JSDocReturnTag | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.JSDocTypeTag): compiler.JSDocTypeTag | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.JSDocTypedefTag): compiler.JSDocTypedefTag | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.JSDocPropertyTag): compiler.JSDocPropertyTag | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.AnyKeyword): compiler.Expression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.BooleanKeyword): compiler.Expression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ImportKeyword): compiler.Expression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.NeverKeyword): compiler.Expression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.NullKeyword): compiler.Expression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.NumberKeyword): compiler.Expression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ObjectKeyword): compiler.Expression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.StringKeyword): compiler.Expression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.SymbolKeyword): compiler.Expression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.SuperKeyword): compiler.Expression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.ThisKeyword): compiler.Expression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.UndefinedKeyword): compiler.Expression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.VoidKeyword): compiler.Expression | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.FalseKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind.TrueKeyword): compiler.BooleanLiteral | undefined;
    /**
     * Gets the first descendant by syntax kind.
     * @param kind - Syntax kind.
     */
    getFirstDescendantByKind(kind: ts.SyntaxKind): Node | undefined;
}
