import type { Rule } from 'eslint'; import type { Except } from 'type-fest'; type NodeType = Parameters>[0]; export type MemberExpression = NodeType<'MemberExpression'>; export declare function isMemberExpression(node: Except): node is MemberExpression; export declare function expectMemberExpression(node: Readonly): MemberExpression; export type CallExpression = NodeType<'CallExpression'>; export declare function isCallExpression(node: Except): node is CallExpression; export declare function expectCallExpression(node: Readonly): CallExpression; export type BlockStatement = NodeType<'BlockStatement'>; export declare function isBlockStatement(node: Except): node is BlockStatement; export type ReturnStatement = NodeType<'ReturnStatement'>; export declare function isReturnStatement(node: Except): node is ReturnStatement; export type Identifier = NodeType<'Identifier'>; export declare function isIdentifier(node: Except): node is Identifier; export type VariableDeclarator = NodeType<'VariableDeclarator'>; export declare function isVariableDeclarator(node: Rule.Node): node is VariableDeclarator; export type Pattern = Readonly; export type ObjectPattern = Extract; export type IdentifierPattern = Extract; export declare function isObjectPattern(pattern: Pattern): pattern is ObjectPattern; export declare function isIdentifierPattern(pattern: Pattern): pattern is IdentifierPattern; export type AssignmentProperty = Extract; export declare function isAssignmentProperty(property: ObjectPattern['properties'][number]): property is AssignmentProperty; type FunctionExpression = NodeType<'FunctionExpression'>; type FunctionDeclaration = NodeType<'FunctionDeclaration'>; export type ArrowFunctionExpression = NodeType<'ArrowFunctionExpression'>; export declare function isArrowFunctionExpression(node: Except): node is ArrowFunctionExpression; export type AnyFunction = ArrowFunctionExpression | FunctionDeclaration | FunctionExpression; export declare function isFunction(node: Except): node is AnyFunction; export type Literal = NodeType<'Literal'>; export declare function isLiteral(node: Except): node is Literal; export type Program = NodeType<'Program'>; export declare function isProgram(node: Except): node is Program; export declare function getParentNode(node: Rule.Node): Rule.Node; export {}; //# sourceMappingURL=node-types.d.ts.map