import { type TSESTree } from "@typescript-eslint/utils";
import { type SourceCode } from "@typescript-eslint/utils/ts-eslint";
export type FunctionDecArrow = TSESTree.FunctionDeclaration | TSESTree.ArrowFunctionExpression;
export type FuncDecAndVariable = TSESTree.FunctionDeclaration | TSESTree.VariableDeclarator;
export type FunctionAndVariable = TSESTree.FunctionDeclaration | TSESTree.ArrowFunctionExpression | TSESTree.FunctionExpression | TSESTree.VariableDeclarator;
export type FunctionAndTS = TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.ArrowFunctionExpression | TSESTree.TSMethodSignature | TSESTree.TSTypeAliasDeclaration | TSESTree.TSTypeAnnotation | TSESTree.TSPropertySignature;
export type FunctionAndVariableAndExpression = TSESTree.CallExpression | TSESTree.NewExpression | TSESTree.FunctionDeclaration | TSESTree.ArrowFunctionExpression | TSESTree.FunctionExpression | TSESTree.VariableDeclarator;
export type AnyFunction = TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.ArrowFunctionExpression;
export type FunctionLikeNode = AnyFunction | TSESTree.MethodDefinition;
type NodeOrToken = TSESTree.Node | TSESTree.Token;
export declare const nodeTypes: {
    readonly awaitExpression: "AwaitExpression";
    readonly blockStatement: "BlockStatement";
    readonly expressionStatement: "ExpressionStatement";
    readonly returnStatement: "ReturnStatement";
    readonly ifStatement: "IfStatement";
    readonly tryStatement: "TryStatement";
    readonly switchStatement: "SwitchStatement";
    readonly whileStatement: "WhileStatement";
    readonly forStatement: "ForStatement";
    readonly forInStatement: "ForInStatement";
    readonly forOfStatement: "ForOfStatement";
    readonly doWhileStatement: "DoWhileStatement";
    readonly throwStatement: "ThrowStatement";
    readonly emptyStatement: "EmptyStatement";
    readonly callExpression: "CallExpression";
    readonly classExpression: "ClassExpression";
    readonly arrayExpression: "ArrayExpression";
    readonly memberExpression: "MemberExpression";
    readonly objectExpression: "ObjectExpression";
    readonly assignmentExpression: "AssignmentExpression";
    readonly chainExpression: "ChainExpression";
    readonly functionExpression: "FunctionExpression";
    readonly arrowFunctionExpression: "ArrowFunctionExpression";
    readonly unaryExpression: "UnaryExpression";
    readonly binaryExpression: "BinaryExpression";
    readonly logicalExpression: "LogicalExpression";
    readonly thisExpression: "ThisExpression";
    readonly conditionalExpression: "ConditionalExpression";
    readonly sequenceExpression: "SequenceExpression";
    readonly updateExpression: "UpdateExpression";
    readonly taggedTemplateExpression: "TaggedTemplateExpression";
    readonly newExpression: "NewExpression";
    readonly variableDeclaration: "VariableDeclaration";
    readonly variableDeclarator: "VariableDeclarator";
    readonly functionDeclaration: "FunctionDeclaration";
    readonly classDeclaration: "ClassDeclaration";
    readonly exportAllDeclaration: "ExportAllDeclaration";
    readonly importDeclaration: "ImportDeclaration";
    readonly importSpecifier: "ImportSpecifier";
    readonly exportSpecifier: "ExportSpecifier";
    readonly importDefaultSpecifier: "ImportDefaultSpecifier";
    readonly importNamespaceSpecifier: "ImportNamespaceSpecifier";
    readonly methodDefinition: "MethodDefinition";
    readonly propertyDefinition: "PropertyDefinition";
    readonly property: "Property";
    readonly identifier: "Identifier";
    readonly privateIdentifier: "PrivateIdentifier";
    readonly exportNamedDeclaration: "ExportNamedDeclaration";
    readonly exportDefaultDeclaration: "ExportDefaultDeclaration";
    readonly JSXExpressionContainer: "JSXExpressionContainer";
    readonly JSXAttribute: "JSXAttribute";
    readonly JSXIdentifier: "JSXIdentifier";
    readonly JSXElement: "JSXElement";
    readonly JSXFragment: "JSXFragment";
    readonly JSXText: "JSXText";
    readonly JSXEmptyExpression: "JSXEmptyExpression";
    readonly TSInterfaceDeclaration: "TSInterfaceDeclaration";
    readonly TSTypeAliasDeclaration: "TSTypeAliasDeclaration";
    readonly TSTypeAnnotation: "TSTypeAnnotation";
    readonly TSAsExpression: "TSAsExpression";
    readonly TSUnionType: "TSUnionType";
    readonly TSFunctionType: "TSFunctionType";
    readonly TSNullKeyword: "TSNullKeyword";
    readonly TSUndefinedKeyword: "TSUndefinedKeyword";
    readonly TSTypeReference: "TSTypeReference";
    readonly TSQualifiedName: "TSQualifiedName";
    readonly TSNonNullExpression: "TSNonNullExpression";
    readonly TSTypeAssertion: "TSTypeAssertion";
    readonly TSTypeParameterInstantiation: "TSTypeParameterInstantiation";
    readonly TSParameterProperty: "TSParameterProperty";
    readonly TSAnyKeyword: "TSAnyKeyword";
    readonly TSObjectKeyword: "TSObjectKeyword";
    readonly TSTypePredicate: "TSTypePredicate";
    readonly TSTypeOperator: "TSTypeOperator";
    readonly TSIndexedAccessType: "TSIndexedAccessType";
    readonly TSTypeQuery: "TSTypeQuery";
    readonly TSSatisfiesExpression: "TSSatisfiesExpression";
    readonly TSIntersectionType: "TSIntersectionType";
    readonly TSArrayType: "TSArrayType";
    readonly TSLiteralType: "TSLiteralType";
    readonly literal: "Literal";
    readonly templateLiteral: "TemplateLiteral";
    readonly variable: "Variable";
    readonly program: "Program";
    readonly objectPattern: "ObjectPattern";
    readonly arrayPattern: "ArrayPattern";
    readonly assignmentPattern: "AssignmentPattern";
    readonly classBody: "ClassBody";
    readonly spreadElement: "SpreadElement";
    readonly restElement: "RestElement";
    readonly TSMethodSignature: "TSMethodSignature";
    readonly TSModuleBlock: "TSModuleBlock";
    readonly Line: "Line";
    readonly Block: "Block";
    readonly TSPropertySignature: "TSPropertySignature";
    readonly TSIndexSignature: "TSIndexSignature";
    readonly TSTypeLiteral: "TSTypeLiteral";
    readonly TSTupleType: "TSTupleType";
    readonly templateElement: "TemplateElement";
    readonly TSParenthesizedType: "TSParenthesizedType";
    readonly importExpression: "ImportExpression";
    readonly metaProperty: "MetaProperty";
    readonly super: "Super";
    readonly yieldExpression: "YieldExpression";
    readonly importBinding: "ImportBinding";
    readonly parameter: "Parameter";
};
export declare function getLineDistance(fromNode: NodeOrToken, toNode: NodeOrToken): number;
export declare function getLineRange(node: NodeOrToken): {
    start: number;
    end: number;
};
export declare function countFunctionLines(node: FunctionLikeNode, sourceCode: SourceCode, options?: {
    excludeReturnStatements?: boolean;
}): number;
export declare function isHookCall(node: TSESTree.Expression): boolean;
export declare function isAsyncFunction(node: TSESTree.Node): node is AnyFunction;
export declare function isLambdaConstVariableDeclaration(variableDeclaration: TSESTree.VariableDeclaration): boolean;
export declare function getCalleeName(callee: TSESTree.Expression): string;
export declare function isNamedFunctionCall(node: TSESTree.CallExpression, functionName: string): any;
export declare function isTypeGuard(node: TSESTree.Node): boolean;
export declare function isMemberFunctionCallWithObjectType(node: TSESTree.CallExpression, functionName: string, expectedObjectType?: string): boolean;
export declare function isComponentLikeFunction(node?: AnyFunction): boolean;
export declare function isSmallLambda(node: TSESTree.FunctionLike): boolean;
export declare function isMethodFunction(node: TSESTree.Node): boolean;
export declare function isWrappedFunctionExpression(expression: TSESTree.Expression): any;
export declare function isVariableDeclarationFunction(node: TSESTree.Node): node is TSESTree.VariableDeclaration;
export declare function getParentFunction(node: TSESTree.Node): TSESTree.Identifier | TSESTree.JSXAttribute | TSESTree.CallExpression | TSESTree.IfStatement | TSESTree.MemberExpressionComputedName | TSESTree.MemberExpressionNonComputedName | TSESTree.NewExpression | TSESTree.AccessorPropertyComputedName | TSESTree.AccessorPropertyNonComputedName | TSESTree.ArrayExpression | TSESTree.ArrayPattern | TSESTree.ArrowFunctionExpression | TSESTree.AssignmentExpression | TSESTree.AssignmentPattern | TSESTree.AwaitExpression | TSESTree.BinaryExpression | TSESTree.BlockStatement | TSESTree.BreakStatement | TSESTree.CatchClause | TSESTree.ChainExpression | TSESTree.ClassBody | TSESTree.ClassDeclarationWithName | TSESTree.ClassExpression | TSESTree.ConditionalExpression | TSESTree.ContinueStatement | TSESTree.DebuggerStatement | TSESTree.Decorator | TSESTree.DoWhileStatement | TSESTree.EmptyStatement | TSESTree.ExportAllDeclaration | TSESTree.ExportDefaultDeclaration | TSESTree.ExportNamedDeclarationWithoutSourceWithSingle | TSESTree.ExportNamedDeclarationWithSource | TSESTree.ExportSpecifierWithStringOrLiteralLocal | TSESTree.ExpressionStatement | TSESTree.ForInStatement | TSESTree.ForOfStatement | TSESTree.ForStatement | TSESTree.FunctionDeclarationWithName | TSESTree.FunctionExpression | TSESTree.ImportAttribute | TSESTree.ImportDeclaration | TSESTree.ImportDefaultSpecifier | TSESTree.ImportExpression | TSESTree.ImportNamespaceSpecifier | TSESTree.ImportSpecifier | TSESTree.JSXClosingElement | TSESTree.JSXClosingFragment | TSESTree.JSXElement | TSESTree.JSXEmptyExpression | TSESTree.JSXExpressionContainer | TSESTree.JSXFragment | TSESTree.JSXIdentifier | TSESTree.JSXMemberExpression | TSESTree.JSXNamespacedName | TSESTree.JSXOpeningElement | TSESTree.JSXOpeningFragment | TSESTree.JSXSpreadAttribute | TSESTree.JSXSpreadChild | TSESTree.JSXText | TSESTree.LabeledStatement | TSESTree.BigIntLiteral | TSESTree.BooleanLiteral | TSESTree.NumberLiteral | TSESTree.RegExpLiteral | TSESTree.StringLiteral | TSESTree.LogicalExpression | TSESTree.MetaProperty | TSESTree.MethodDefinitionComputedName | TSESTree.MethodDefinitionNonComputedName | TSESTree.ObjectExpression | TSESTree.ObjectPattern | TSESTree.PrivateIdentifier | TSESTree.Program | TSESTree.PropertyComputedName | TSESTree.PropertyNonComputedName | TSESTree.PropertyDefinitionComputedName | TSESTree.PropertyDefinitionNonComputedName | TSESTree.RestElement | TSESTree.ReturnStatement | TSESTree.SequenceExpression | TSESTree.SpreadElement | TSESTree.StaticBlock | TSESTree.Super | TSESTree.SwitchCase | TSESTree.SwitchStatement | TSESTree.TaggedTemplateExpression | TSESTree.TemplateElement | TSESTree.TemplateLiteral | TSESTree.ThisExpression | TSESTree.ThrowStatement | TSESTree.TryStatement | TSESTree.TSAbstractAccessorPropertyComputedName | TSESTree.TSAbstractAccessorPropertyNonComputedName | TSESTree.TSAbstractKeyword | TSESTree.TSAbstractMethodDefinitionComputedName | TSESTree.TSAbstractMethodDefinitionNonComputedName | TSESTree.TSAbstractPropertyDefinitionComputedName | TSESTree.TSAbstractPropertyDefinitionNonComputedName | TSESTree.TSAnyKeyword | TSESTree.TSArrayType | TSESTree.TSAsExpression | TSESTree.TSAsyncKeyword | TSESTree.TSBigIntKeyword | TSESTree.TSBooleanKeyword | TSESTree.TSCallSignatureDeclaration | TSESTree.TSClassImplements | TSESTree.TSConditionalType | TSESTree.TSConstructorType | TSESTree.TSConstructSignatureDeclaration | TSESTree.TSDeclareFunctionNoDeclare | TSESTree.TSDeclareFunctionWithDeclare | TSESTree.TSDeclareKeyword | TSESTree.TSEmptyBodyFunctionExpression | TSESTree.TSEnumBody | TSESTree.TSEnumDeclaration | TSESTree.TSEnumMember | TSESTree.TSExportAssignment | TSESTree.TSExportKeyword | TSESTree.TSExternalModuleReference | TSESTree.TSFunctionType | TSESTree.TSImportEqualsNamespaceDeclaration | TSESTree.TSImportEqualsRequireDeclaration | TSESTree.TSImportType | TSESTree.TSIndexedAccessType | TSESTree.TSIndexSignature | TSESTree.TSInferType | TSESTree.TSInstantiationExpression | TSESTree.TSInterfaceBody | TSESTree.TSInterfaceDeclaration | TSESTree.TSInterfaceHeritage | TSESTree.TSIntersectionType | TSESTree.TSIntrinsicKeyword | TSESTree.TSLiteralType | TSESTree.TSMappedType | TSESTree.TSMethodSignatureComputedName | TSESTree.TSMethodSignatureNonComputedName | TSESTree.TSModuleBlock | TSESTree.TSModuleDeclarationGlobal | TSESTree.TSModuleDeclarationModuleWithIdentifierId | TSESTree.TSModuleDeclarationModuleWithStringIdDeclared | TSESTree.TSModuleDeclarationModuleWithStringIdNotDeclared | TSESTree.TSModuleDeclarationNamespace | TSESTree.TSNamedTupleMember | TSESTree.TSNamespaceExportDeclaration | TSESTree.TSNeverKeyword | TSESTree.TSNonNullExpression | TSESTree.TSNullKeyword | TSESTree.TSNumberKeyword | TSESTree.TSObjectKeyword | TSESTree.TSOptionalType | TSESTree.TSParameterProperty | TSESTree.TSPrivateKeyword | TSESTree.TSPropertySignatureComputedName | TSESTree.TSPropertySignatureNonComputedName | TSESTree.TSProtectedKeyword | TSESTree.TSPublicKeyword | TSESTree.TSQualifiedName | TSESTree.TSReadonlyKeyword | TSESTree.TSRestType | TSESTree.TSSatisfiesExpression | TSESTree.TSStaticKeyword | TSESTree.TSStringKeyword | TSESTree.TSSymbolKeyword | TSESTree.TSTemplateLiteralType | TSESTree.TSThisType | TSESTree.TSTupleType | TSESTree.TSTypeAliasDeclaration | TSESTree.TSTypeAnnotation | TSESTree.TSTypeAssertion | TSESTree.TSTypeLiteral | TSESTree.TSTypeOperator | TSESTree.TSTypeParameter | TSESTree.TSTypeParameterDeclaration | TSESTree.TSTypeParameterInstantiation | TSESTree.TSTypePredicate | TSESTree.TSTypeQuery | TSESTree.TSTypeReference | TSESTree.TSUndefinedKeyword | TSESTree.TSUnionType | TSESTree.TSUnknownKeyword | TSESTree.TSVoidKeyword | TSESTree.UnaryExpression | TSESTree.UpdateExpression | TSESTree.ConstDeclaration | TSESTree.LetOrVarDeclaredDeclaration | TSESTree.LetOrVarNonDeclaredDeclaration | TSESTree.UsingInNormalContextDeclaration | TSESTree.VariableDeclaratorDefiniteAssignment | TSESTree.VariableDeclaratorMaybeInit | TSESTree.WhileStatement | TSESTree.WithStatement | TSESTree.YieldExpression;
export {};
