import { TSESLint } from '@typescript-eslint/utils' import { CommonGroupsOptions } from '../types/common-groups-options.js' import { SortingNode } from '../types/sorting-node.js' /** * Parameters for checking if a required comment above a node exists. * * @template T - Type of the sorting node. */ interface GetCommentAboveMissingParameters { /** * Configuration options for grouping. */ options: Pick< CommonGroupsOptions, 'customGroups' | 'groups' > /** * ESLint source code object for accessing comments. */ sourceCode: TSESLint.SourceCode /** * Index of the group on the left side (previous element). Null if there is * no previous element. */ leftGroupIndex: number | null /** * Index of the group on the right side (current element). */ rightGroupIndex: number /** * The sorting node to check for required comments above. */ sortingNode: T } /** * Determines if a comment should exist above a node when transitioning between * groups. * * Checks if the group configuration requires a comment above nodes when they * are the first element of their group following a different group. This is * used to enforce comment separators between different sections of sorted * code. * * The function returns null if: * * - The left and right elements are in the same or reversed group order * - The group configuration doesn't require a comment above. * * @example * * ```ts * const result = getCommentAboveThatShouldExist({ * options: { * groups: [ * 'external', * { commentAbove: 'Internal imports' }, * 'internal', * ], * }, * leftGroupIndex: 0, // 'external' group * rightGroupIndex: 2, // 'internal' group * sortingNode: internalImportNode, * sourceCode, * }) * // Returns: { comment: 'Internal imports', exists: false } * ``` * * @template T - Type of the sorting node. * @param params - Parameters for checking comment requirements. * @param params.options - Configuration with groups that may require comments. * @param params.leftGroupIndex - Index of the previous element's group. * @param params.rightGroupIndex - Index of the current element's group. * @param params.sortingNode - Node to check for required comments. * @param params.sourceCode - ESLint source code for accessing comments. * @returns Object with required comment text and existence status, or null if * no comment required. */ export declare function getCommentAboveThatShouldExist({ rightGroupIndex, leftGroupIndex, sortingNode, sourceCode, options, }: GetCommentAboveMissingParameters): { comment: string exists: boolean } | null export {}