import { type TSESTree } from '@typescript-eslint/typescript-estree'; import { Identifier } from './is_identifier'; import { Literal } from './is_literal'; type Node = TSESTree.Node; export type MemberExpression = TSESTree.MemberExpression; export type SpecificObject = MemberExpression & { object: Identifier & { name: O; }; }; export type SpecificProperty

= MemberExpression & { property: (Identifier & { name: P; }) | (Literal & { value: P; }); }; export type SpecificObjectProperty = SpecificObject & SpecificProperty

; export declare function guardMemberExpression(node: Node, object: O, property: P): node is SpecificObjectProperty; export declare function guardMemberExpression(node: Node, object: O): node is SpecificObject; export declare function guardMemberExpression

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

; export declare function guardMemberExpression(node: Node): node is MemberExpression; /** * @deprecated use guardMemberExpression because this clashes with a * typescript internal name (which makes it harder to import this) */ export declare const isMemberExpression: typeof guardMemberExpression; export {};