import type { IssuesParams, ISonarQubeClient, MarkIssueFalsePositiveParams, MarkIssueWontFixParams, BulkIssueMarkParams, AddCommentToIssueParams, ConfirmIssueParams, UnconfirmIssueParams, ResolveIssueParams, ReopenIssueParams } from '../types/index.js'; import { ElicitationManager } from '../utils/elicitation.js'; export declare function setElicitationManager(manager: ElicitationManager): void; export interface ElicitationCancelResponse { [key: string]: unknown; content: Array<{ type: 'text'; text: string; }>; } /** * Fetches and returns issues from a specified SonarQube project with advanced filtering capabilities * * This tool supports comprehensive filtering for targeted analysis, dashboards, and audits: * - **Component/File Path Filtering**: Use `component_keys` to filter by specific files or directories * - **Directory Filtering**: Use `directories` to filter by directory paths (e.g., ['src/main/', 'test/']) * - **File Filtering**: Use `files` to filter by specific file paths (e.g., ['UserService.java', 'config.properties']) * - **Scope Filtering**: Use `scopes` to filter by issue scope (MAIN for production code, TEST for test code, OVERALL for both) * - **Assignee Filtering**: Use `assignees` to filter by assigned users * - **Tag Filtering**: Use `tags` to filter by issue tags * - **Severity Filtering**: Use `severities` to filter by severity levels (INFO, MINOR, MAJOR, CRITICAL, BLOCKER) * - **Status Filtering**: Use `statuses` to filter by issue status (OPEN, CONFIRMED, REOPENED, RESOLVED, CLOSED) * - **Date Filtering**: Use `created_after`, `created_before`, `created_in_last` for time-based queries * - **Security Standards**: Filter by OWASP, CWE, SANS Top 25, and SonarSource security categories * - **Faceted Search**: Use `facets` to get aggregated data for dashboards * * @param params Parameters for fetching issues with extensive filtering options * @param client Optional SonarQube client instance * @returns A response containing the list of issues with their details, facets, and pagination info * @throws Error if no authentication environment variables are set (SONARQUBE_TOKEN, SONARQUBE_USERNAME/PASSWORD, or SONARQUBE_PASSCODE) * * @example * // Filter by file path and severity * await handleSonarQubeGetIssues({ * projectKey: 'my-project', * componentKeys: ['src/main/java/com/example/Service.java'], * severities: ['CRITICAL', 'BLOCKER'], * facets: ['severities', 'types', 'authors'] * }); * * @example * // Filter by directory and scope * await handleSonarQubeGetIssues({ * projectKey: 'my-project', * directories: ['src/main/java/com/example/services/'], * scopes: ['MAIN'], * facets: ['severities', 'rules'] * }); * * @example * // Dashboard query with assignee and tag filters * await handleSonarQubeGetIssues({ * projectKey: 'my-project', * assignees: ['john.doe@example.com'], * tags: ['security', 'performance'], * statuses: ['OPEN', 'REOPENED'], * facets: ['severities', 'tags', 'assignees'] * }); */ export declare function handleSonarQubeGetIssues(params: IssuesParams, client?: ISonarQubeClient): Promise<{ [x: string]: unknown; content: ({ [x: string]: unknown; type: "text"; text: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "image"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "audio"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; name: string; type: "resource_link"; uri: string; description?: string | undefined; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; icons?: { [x: string]: unknown; src: string; mimeType?: string | undefined; sizes?: string[] | undefined; }[] | undefined; title?: string | undefined; } | { [x: string]: unknown; type: "resource"; resource: { [x: string]: unknown; text: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; } | { [x: string]: unknown; blob: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; }; _meta?: { [x: string]: unknown; } | undefined; })[]; _meta?: { [x: string]: unknown; } | undefined; structuredContent?: { [x: string]: unknown; } | undefined; isError?: boolean | undefined; }>; /** * Mark an issue as false positive * @param params Parameters for marking issue as false positive * @param client Optional SonarQube client instance * @returns A response containing the updated issue details */ export declare function handleMarkIssueFalsePositive(params: MarkIssueFalsePositiveParams, client?: ISonarQubeClient): Promise<{ [x: string]: unknown; content: ({ [x: string]: unknown; type: "text"; text: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "image"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "audio"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; name: string; type: "resource_link"; uri: string; description?: string | undefined; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; icons?: { [x: string]: unknown; src: string; mimeType?: string | undefined; sizes?: string[] | undefined; }[] | undefined; title?: string | undefined; } | { [x: string]: unknown; type: "resource"; resource: { [x: string]: unknown; text: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; } | { [x: string]: unknown; blob: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; }; _meta?: { [x: string]: unknown; } | undefined; })[]; _meta?: { [x: string]: unknown; } | undefined; structuredContent?: { [x: string]: unknown; } | undefined; isError?: boolean | undefined; } | ElicitationCancelResponse>; /** * Mark an issue as won't fix * @param params Parameters for marking issue as won't fix * @param client Optional SonarQube client instance * @returns A response containing the updated issue details */ export declare function handleMarkIssueWontFix(params: MarkIssueWontFixParams, client?: ISonarQubeClient): Promise<{ [x: string]: unknown; content: ({ [x: string]: unknown; type: "text"; text: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "image"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "audio"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; name: string; type: "resource_link"; uri: string; description?: string | undefined; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; icons?: { [x: string]: unknown; src: string; mimeType?: string | undefined; sizes?: string[] | undefined; }[] | undefined; title?: string | undefined; } | { [x: string]: unknown; type: "resource"; resource: { [x: string]: unknown; text: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; } | { [x: string]: unknown; blob: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; }; _meta?: { [x: string]: unknown; } | undefined; })[]; _meta?: { [x: string]: unknown; } | undefined; structuredContent?: { [x: string]: unknown; } | undefined; isError?: boolean | undefined; } | ElicitationCancelResponse>; /** * Mark multiple issues as false positive * @param params Parameters for marking issues as false positive * @param client Optional SonarQube client instance * @returns A response containing the updated issues details */ export declare function handleMarkIssuesFalsePositive(params: BulkIssueMarkParams, client?: ISonarQubeClient): Promise<{ [x: string]: unknown; content: ({ [x: string]: unknown; type: "text"; text: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "image"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "audio"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; name: string; type: "resource_link"; uri: string; description?: string | undefined; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; icons?: { [x: string]: unknown; src: string; mimeType?: string | undefined; sizes?: string[] | undefined; }[] | undefined; title?: string | undefined; } | { [x: string]: unknown; type: "resource"; resource: { [x: string]: unknown; text: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; } | { [x: string]: unknown; blob: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; }; _meta?: { [x: string]: unknown; } | undefined; })[]; _meta?: { [x: string]: unknown; } | undefined; structuredContent?: { [x: string]: unknown; } | undefined; isError?: boolean | undefined; } | ElicitationCancelResponse>; /** * Mark multiple issues as won't fix * @param params Parameters for marking issues as won't fix * @param client Optional SonarQube client instance * @returns A response containing the updated issues details */ export declare function handleMarkIssuesWontFix(params: BulkIssueMarkParams, client?: ISonarQubeClient): Promise<{ [x: string]: unknown; content: ({ [x: string]: unknown; type: "text"; text: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "image"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "audio"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; name: string; type: "resource_link"; uri: string; description?: string | undefined; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; icons?: { [x: string]: unknown; src: string; mimeType?: string | undefined; sizes?: string[] | undefined; }[] | undefined; title?: string | undefined; } | { [x: string]: unknown; type: "resource"; resource: { [x: string]: unknown; text: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; } | { [x: string]: unknown; blob: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; }; _meta?: { [x: string]: unknown; } | undefined; })[]; _meta?: { [x: string]: unknown; } | undefined; structuredContent?: { [x: string]: unknown; } | undefined; isError?: boolean | undefined; } | ElicitationCancelResponse>; /** * Add a comment to an issue * @param params Parameters for adding a comment to an issue * @param client Optional SonarQube client instance * @returns A response containing the created comment details */ export declare function handleAddCommentToIssue(params: AddCommentToIssueParams, client?: ISonarQubeClient): Promise<{ [x: string]: unknown; content: ({ [x: string]: unknown; type: "text"; text: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "image"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "audio"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; name: string; type: "resource_link"; uri: string; description?: string | undefined; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; icons?: { [x: string]: unknown; src: string; mimeType?: string | undefined; sizes?: string[] | undefined; }[] | undefined; title?: string | undefined; } | { [x: string]: unknown; type: "resource"; resource: { [x: string]: unknown; text: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; } | { [x: string]: unknown; blob: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; }; _meta?: { [x: string]: unknown; } | undefined; })[]; _meta?: { [x: string]: unknown; } | undefined; structuredContent?: { [x: string]: unknown; } | undefined; isError?: boolean | undefined; }>; /** * Handler for assigning an issue */ export declare function handleAssignIssue(params: { issueKey: string; assignee?: string; }, client?: ISonarQubeClient): Promise<{ [x: string]: unknown; content: ({ [x: string]: unknown; type: "text"; text: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "image"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "audio"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; name: string; type: "resource_link"; uri: string; description?: string | undefined; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; icons?: { [x: string]: unknown; src: string; mimeType?: string | undefined; sizes?: string[] | undefined; }[] | undefined; title?: string | undefined; } | { [x: string]: unknown; type: "resource"; resource: { [x: string]: unknown; text: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; } | { [x: string]: unknown; blob: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; }; _meta?: { [x: string]: unknown; } | undefined; })[]; _meta?: { [x: string]: unknown; } | undefined; structuredContent?: { [x: string]: unknown; } | undefined; isError?: boolean | undefined; }>; /** * Handler for confirming an issue */ export declare function handleConfirmIssue(params: ConfirmIssueParams, client?: ISonarQubeClient): Promise<{ [x: string]: unknown; content: ({ [x: string]: unknown; type: "text"; text: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "image"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "audio"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; name: string; type: "resource_link"; uri: string; description?: string | undefined; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; icons?: { [x: string]: unknown; src: string; mimeType?: string | undefined; sizes?: string[] | undefined; }[] | undefined; title?: string | undefined; } | { [x: string]: unknown; type: "resource"; resource: { [x: string]: unknown; text: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; } | { [x: string]: unknown; blob: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; }; _meta?: { [x: string]: unknown; } | undefined; })[]; _meta?: { [x: string]: unknown; } | undefined; structuredContent?: { [x: string]: unknown; } | undefined; isError?: boolean | undefined; }>; /** * Handler for unconfirming an issue */ export declare function handleUnconfirmIssue(params: UnconfirmIssueParams, client?: ISonarQubeClient): Promise<{ [x: string]: unknown; content: ({ [x: string]: unknown; type: "text"; text: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "image"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "audio"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; name: string; type: "resource_link"; uri: string; description?: string | undefined; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; icons?: { [x: string]: unknown; src: string; mimeType?: string | undefined; sizes?: string[] | undefined; }[] | undefined; title?: string | undefined; } | { [x: string]: unknown; type: "resource"; resource: { [x: string]: unknown; text: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; } | { [x: string]: unknown; blob: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; }; _meta?: { [x: string]: unknown; } | undefined; })[]; _meta?: { [x: string]: unknown; } | undefined; structuredContent?: { [x: string]: unknown; } | undefined; isError?: boolean | undefined; }>; /** * Handler for resolving an issue */ export declare function handleResolveIssue(params: ResolveIssueParams, client?: ISonarQubeClient): Promise<{ [x: string]: unknown; content: ({ [x: string]: unknown; type: "text"; text: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "image"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "audio"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; name: string; type: "resource_link"; uri: string; description?: string | undefined; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; icons?: { [x: string]: unknown; src: string; mimeType?: string | undefined; sizes?: string[] | undefined; }[] | undefined; title?: string | undefined; } | { [x: string]: unknown; type: "resource"; resource: { [x: string]: unknown; text: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; } | { [x: string]: unknown; blob: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; }; _meta?: { [x: string]: unknown; } | undefined; })[]; _meta?: { [x: string]: unknown; } | undefined; structuredContent?: { [x: string]: unknown; } | undefined; isError?: boolean | undefined; }>; /** * Handler for reopening an issue */ export declare function handleReopenIssue(params: ReopenIssueParams, client?: ISonarQubeClient): Promise<{ [x: string]: unknown; content: ({ [x: string]: unknown; type: "text"; text: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "image"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "audio"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; name: string; type: "resource_link"; uri: string; description?: string | undefined; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; icons?: { [x: string]: unknown; src: string; mimeType?: string | undefined; sizes?: string[] | undefined; }[] | undefined; title?: string | undefined; } | { [x: string]: unknown; type: "resource"; resource: { [x: string]: unknown; text: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; } | { [x: string]: unknown; blob: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; }; _meta?: { [x: string]: unknown; } | undefined; })[]; _meta?: { [x: string]: unknown; } | undefined; structuredContent?: { [x: string]: unknown; } | undefined; isError?: boolean | undefined; }>;