import type { Rule } from 'eslint'; import type { Node } from 'estree-jsx'; /** * Checks if a node appears in a TypeScript type context. * * This is used to avoid flagging identifiers that are only used as types, * not as runtime values. * * For example: * - type FetchFn = typeof fetch; // fetch is in type context * - interface Client { fetch: typeof fetch; } // fetch is in type context * - const x = fetch('url'); // fetch is NOT in type context * * @param node - The AST node to check * @returns True if the node appears in a TypeScript type context */ export declare const isInTypeContext: (node: Node) => boolean; /** * Checks if an identifier is a local variable (not global), excluding imports. * * This uses ESLint's scope analysis to determine if an identifier * refers to a locally declared variable or parameter, but NOT an import. * * For example: * - fetch('url') where fetch is global → returns false * - const { fetch } = hubspot; fetch('url') → returns true * - function test(fetch) { fetch(); } → returns true * - import fetch from 'lib'; fetch() → returns false (import, not local) */ export declare const isLocalVariable: (context: Rule.RuleContext, node: Node, identifierName: string) => boolean;