import ts from 'typescript'; declare type NamedNode = ts.Node & { readonly name: ts.Identifier; }; declare type NameableNode = ts.Node & { readonly name?: ts.Identifier; }; export declare type PropertyNamedNode = ts.Node & { readonly name: ts.PropertyName; }; declare type PropertyNameableNode = ts.Node & { readonly name?: ts.PropertyName; }; declare type BindingNamedNode = ts.Node & { readonly name: ts.BindingName; }; declare type BindingNameableNode = ts.Node & { readonly name?: ts.BindingName; }; export declare type AnyNameableNode = NameableNode | PropertyNameableNode | BindingNameableNode; export declare function getNameNode(node: NamedNode): ts.Identifier; export declare function getNameNode(node: PropertyNamedNode): ts.PropertyName; export declare function getNameNode(node: BindingNamedNode): ts.BindingName; export declare function getNameNode(node: NameableNode): ts.Identifier | undefined; export declare function getNameNode(node: PropertyNameableNode): ts.PropertyName | undefined; export declare function getNameNode(node: BindingNameableNode): ts.BindingName | undefined; export declare function getNameNode(node: AnyNameableNode): ts.Identifier | ts.PropertyName | ts.BindingName | undefined; export declare function getNameNodeOrThrow(node: NameableNode | NamedNode): ts.Identifier; export declare function getNameNodeOrThrow(node: PropertyNameableNode | PropertyNamedNode): ts.PropertyName; export declare function getNameNodeOrThrow(node: BindingNameableNode | BindingNamedNode): ts.BindingName; export declare function getName(node: NamedNode | PropertyNamedNode): string; export declare function getName(node: NameableNode | PropertyNameableNode | BindingNameableNode | BindingNamedNode): string | undefined; export declare function getNameOrThrow(node: NameableNode | NamedNode | PropertyNameableNode | PropertyNamedNode | BindingNameableNode | BindingNamedNode): string; declare type PropertyNameNameableNode = ts.Node & { readonly propertyName?: T; }; export declare function getPropertyNameNode(node: PropertyNameNameableNode): T | undefined; declare type DotDotDotTokenNode = ts.Node & { readonly dotDotDotToken?: ts.DotDotDotToken; }; export declare function getDotDotDotToken(node: DotDotDotTokenNode): ts.DotDotDotToken | undefined; export declare function getText(node: ts.Node): string; export declare function getParentSyntaxList(node: ts.Node): ts.Node | undefined; export declare function getParent(node: TNode): TNode extends { readonly parent?: infer TParent | null; } ? TParent : never; export declare function getAncestors(node: ts.Node): IterableIterator; export declare function getDescendants(node: ts.Node): IterableIterator; export declare function getDescendantsByKind(node: ts.Node, kind: TNode extends { readonly kind: infer TKind; } ? TKind : never): IterableIterator; export declare function getSymbol(typeChecker: ts.TypeChecker, node: ts.Node): ts.Symbol | undefined; export declare function getSymbolOrThrow(typeChecker: ts.TypeChecker, node: ts.Node): ts.Symbol; export declare function getFirstChild(node: ts.Node): ts.Node | undefined; export declare function getFirstChildByKind(node: ts.Node, kind: TNode extends { readonly kind: infer TKind; } ? TKind : never): TNode | undefined; export declare function getFirstAncestorByKind(node: ts.Node, kind: TNode extends { readonly kind: infer TKind; } ? TKind : never): TNode | undefined; export declare function getFirstAncestorByKindOrThrow(node: ts.Node, kind: TNode extends { readonly kind: infer TKind; } ? TKind : never): TNode; export declare function getFirstAncestorByTest(node: ts.Node, isNode: (value: ts.Node) => value is TNode): TNode | undefined; export declare function getFirstAncestorByTestOrThrow(node: ts.Node, isNode: (value: ts.Node) => value is TNode): TNode; export declare function getFirstDescendantByKind(node: ts.Node, kind: TNode extends { readonly kind: infer TKind; } ? TKind : never): TNode | undefined; export declare function isGlobalAugmentation(node: ts.Node): boolean; export declare function getSourceFile(node: ts.Node): ts.SourceFile; export declare function getPos(node: ts.Node): number; export declare function getEnd(node: ts.Node): number; export declare function getChildAtPos(node: ts.Node, pos: number): ts.Node | undefined; export declare function getDescendantAtPos(nodeIn: ts.Node, pos: number): ts.Node | undefined; export declare function isPartOfTypeNode(node: ts.Node): boolean; export {};