import { type TSESTree } from '@typescript-eslint/typescript-estree'; import { SpecificObject, SpecificProperty } from './is_member_expression'; import { Identifier } from './is_identifier'; type Node = TSESTree.Node; export type CallExpression = TSESTree.CallExpression; export type SpecificFunctionCall = CallExpression & { callee: Identifier & { name: C; }; }; export type SpecificObjectCall = CallExpression & { callee: SpecificObject; }; export type SpecificPropertyCall

= CallExpression & { callee: SpecificProperty

; }; export type SpecificObjectPropertyCall = SpecificObjectCall & SpecificPropertyCall

; export declare function guardCallExpression<_O extends string, C extends string>(node: Node, callee: C): node is SpecificFunctionCall; export declare function guardCallExpression(node: Node, object: O, property: P): node is SpecificObjectPropertyCall; export declare function guardCallExpression(node: Node, object: O): node is SpecificObjectCall; export declare function guardCallExpression

(node: Node, object: undefined, property: P): node is SpecificPropertyCall

; export declare function guardCallExpression<_P extends string>(node: Node): node is CallExpression; /** * @deprecated use guardCallExpression because this clashes with a * typescript internal name (which makes it harder to import this) */ export declare const isCallExpression: typeof guardCallExpression; export {};