import { type TSESLint, type TSESTree } from "@typescript-eslint/utils";
import { type AnyFunction } from "@flint/infra/analysis/function-analysis";
import { type astNodeAccessors } from "@flint/infra/constants/eslint-syntax-names";
type Callee = typeof astNodeAccessors.functionTarget;
export declare function isStaticLiteral(node: TSESTree.Node): node is TSESTree.Literal | TSESTree.TemplateLiteral;
export declare function isObjectPattern(node: TSESTree.Node): node is TSESTree.ObjectPattern;
export declare function isChainExpression(node: TSESTree.Node): node is TSESTree.ChainExpression;
export declare function isSimpleMemberExpression(node: TSESTree.Node): node is TSESTree.MemberExpression & {
    object: TSESTree.Identifier;
    property: TSESTree.Identifier;
};
export declare function isCallbackExpression(node: TSESTree.Node): node is TSESTree.ArrowFunctionExpression | TSESTree.FunctionExpression;
export declare function isAnonymousOneTimeLambda(node: AnyFunction): boolean;
export declare function isCallback(node: TSESTree.Node): node is TSESTree.ArrowFunctionExpression | TSESTree.FunctionExpression | TSESTree.Identifier;
export declare function isBinaryExpression(expr: TSESTree.Node): expr is TSESTree.BinaryExpression;
export declare function isCallLikeExpression(expression: TSESTree.Expression): boolean;
export declare function isMemberCallExpression(node: TSESTree.Node): node is Omit<TSESTree.CallExpression, Callee> & {
    callee: TSESTree.MemberExpression;
};
export declare function isSpreadElement(node: TSESTree.Node): node is TSESTree.SpreadElement;
export declare function isVariableDeclarator(node: TSESTree.Node): node is TSESTree.VariableDeclarator;
export declare function isAnyImportSpecifier(node: TSESTree.Node): node is TSESTree.ImportSpecifier | TSESTree.ImportDefaultSpecifier | TSESTree.ImportNamespaceSpecifier;
export declare function isCallExpression(node: TSESTree.Node): node is TSESTree.CallExpression;
export declare function isTypeAssertionExpression(node: TSESTree.Node): node is TSESTree.TSAsExpression | TSESTree.TSSatisfiesExpression | TSESTree.TSTypeAssertion;
export declare function isFunction(node?: TSESTree.Node): node is AnyFunction;
export declare function isNamedFunctionWithIdentifier(node?: TSESTree.Node): node is (TSESTree.FunctionDeclaration & {
    id: TSESTree.Identifier;
}) | (TSESTree.FunctionExpression & {
    id: TSESTree.Identifier;
});
export declare function isMemberExpression(node: TSESTree.Node): node is TSESTree.MemberExpression;
export declare function isAwaitExpression(node: TSESTree.Node): node is TSESTree.AwaitExpression;
export declare function isIdentifier(node: TSESTree.Node): node is TSESTree.Identifier;
export declare function isFunctionStatement(node: TSESTree.Node): any;
export declare function isVariableDeclaration(node: TSESTree.Node): node is TSESTree.VariableDeclaration;
export declare function isVariableDefinition(definition?: TSESLint.Scope.Definition): definition is TSESLint.Scope.Definition;
export declare function isFunctionExpression(node: TSESTree.Node): node is TSESTree.FunctionExpression | TSESTree.ArrowFunctionExpression;
export declare function isStringLiteral(node?: TSESTree.Node | TSESTree.JSXChild | TSESTree.Expression | TSESTree.PrivateIdentifier): node is TSESTree.Literal & {
    value: string;
};
export declare function isObjectExpression(node: TSESTree.Node): boolean;
export declare function isArrayExpression(node: TSESTree.Node): boolean;
export declare function isProperty(node: TSESTree.Node): boolean;
export declare function isLiteral(node: TSESTree.Node): boolean;
export declare function isBlockStatement(node: TSESTree.Node): boolean;
export declare function isExpressionStatement(statement: TSESTree.Statement): boolean;
export declare function isAssignmentExpression(expression: TSESTree.Expression): boolean;
export declare function isTypeQuery(node: TSESTree.Node): node is TSESTree.TSTypeQuery;
export declare function isTemplateLiteral(node: TSESTree.Node): node is TSESTree.TemplateLiteral;
export declare function isIfStatement(node: TSESTree.Node): node is TSESTree.IfStatement;
export declare function isReturnStatement(node: TSESTree.Node): node is TSESTree.ReturnStatement;
export declare function isSwitchStatement(node: TSESTree.Node): node is TSESTree.SwitchStatement;
export declare function isArrayReturnStatement(statement: TSESTree.Statement): boolean;
export declare function isExportDeclaration(node: TSESTree.Node): node is TSESTree.ExportNamedDeclaration;
export declare function isJSXIdentifier(node: TSESTree.Node): node is TSESTree.JSXIdentifier;
export declare function isJSXExpressionContainer(node: TSESTree.Node): node is TSESTree.JSXExpressionContainer;
export declare function isArrowFunctionExpression(node: TSESTree.Node): node is TSESTree.ArrowFunctionExpression;
export declare function isFunctionDeclaration(node: TSESTree.Node): node is TSESTree.FunctionDeclaration;
export declare function isExportNamedDeclaration(node: TSESTree.Node): node is TSESTree.ExportNamedDeclaration;
export declare function isExportDefaultDeclaration(node: TSESTree.Node): node is TSESTree.ExportDefaultDeclaration;
export declare function isTopLevelNode(node: TSESTree.Node): boolean;
export declare function isJSXNode(node?: TSESTree.Node): boolean;
export declare function isSideEffectExpression(expr: TSESTree.Expression | TSESTree.PrivateIdentifier): boolean;
export declare function isPrivateIdentifier(node: TSESTree.Node): node is TSESTree.PrivateIdentifier;
export declare function isUnaryExpression(node: TSESTree.Node): node is TSESTree.UnaryExpression;
export declare function isConditionalExpression(node: TSESTree.Node): node is TSESTree.ConditionalExpression;
export declare function isNewExpression(node: TSESTree.Node): node is TSESTree.NewExpression;
export declare function hasBodyArray(node: TSESTree.Node): node is TSESTree.Program | TSESTree.BlockStatement | TSESTree.TSModuleBlock;
export declare function isPotentiallyNullishExpression(expr: TSESTree.Expression | TSESTree.Node): boolean;
export declare function isMethodDefinition(node: TSESTree.Node): node is TSESTree.MethodDefinition;
export declare function isAnonymousFunction(node: AnyFunction): boolean;
export declare function isExport(node: TSESTree.Node): boolean;
export {};
