import { type TSESTree } from '@typescript-eslint/utils';
export type ClassLike = TSESTree.ClassDeclaration | TSESTree.ClassExpression;
export type ClassMember = TSESTree.MethodDefinition | TSESTree.PropertyDefinition;
export declare function findAncestor<T extends TSESTree.Node>(node: TSESTree.Node | null | undefined, predicate: (ancestor: TSESTree.Node) => ancestor is T): T | null;
export declare function findSelfOrAncestor<T extends TSESTree.Node>(node: TSESTree.Node | null | undefined, predicate: (candidate: TSESTree.Node) => candidate is T): T | null;
export declare function hasAncestor(node: TSESTree.Node | null | undefined, predicate: (ancestor: TSESTree.Node) => boolean): boolean;
export declare function isNodeInside(node: TSESTree.Node, ancestor: TSESTree.Node): boolean;
export declare function isNodeInsideAny(node: TSESTree.Node, ancestors: readonly TSESTree.Node[]): boolean;
export declare function getEnclosingFunction(node: TSESTree.Node | null | undefined): TSESTree.FunctionLike | null;
export declare function getEnclosingClass(node: TSESTree.Node | null | undefined): ClassLike | null;
export declare function getEnclosingClassMember(node: TSESTree.Node | null | undefined): ClassMember | null;
export declare function getScopeRoot(node: TSESTree.Node): TSESTree.Node;
