import { TSESTree } from '@typescript-eslint/types' import { TSESLint } from '@typescript-eslint/utils' /** * Calculates the size of a node excluding trailing punctuation. * * Computes the character length of a node's text representation, automatically * subtracting trailing commas or semicolons from the size. This provides a more * accurate measure of the actual content size, which is useful for sorting by * line length. * * The function is widely used across all sorting rules when the sort type is * set to 'line-length', ensuring consistent size calculation that ignores * syntactic punctuation. * * @example * * ```ts * // Node text: "const foo = 'bar';" * rangeToDiff(node, sourceCode) // Returns: 17 (18 - 1 for semicolon) * ``` * * @example * * ```ts * // Node text: "{ name: 'John', age: 30 }," * rangeToDiff(node, sourceCode) // Returns: 26 (27 - 1 for comma) * ``` * * @example * * ```ts * // Node text: "const value = 42" * rangeToDiff(node, sourceCode) // Returns: 16 (no trailing punctuation) * ``` * * @param node - AST node to measure. * @param sourceCode - ESLint source code object for text extraction. * @returns Character count of the node excluding trailing comma or semicolon. */ export declare function rangeToDiff( node: TSESTree.Node, sourceCode: TSESLint.SourceCode, ): number