import { SonarQubeApi, FindingSummary } from '@backstage-community/plugin-sonarqube-react';
import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
import { DiscoveryApi, FetchApi } from '@backstage/core-plugin-api';
import * as _backstage_catalog_model from '@backstage/catalog-model';
import * as react_jsx_runtime from 'react/jsx-runtime';
import * as _backstage_core_components from '@backstage/core-components';
import { InfoCardVariants } from '@backstage/core-components';
import * as _backstage_core_plugin_api_alpha from '@backstage/core-plugin-api/alpha';
import { ReactNode } from 'react';

/** @public */
declare class SonarQubeClient implements SonarQubeApi {
    discoveryApi: DiscoveryApi;
    fetchApi: FetchApi;
    constructor(options: {
        discoveryApi: DiscoveryApi;
        fetchApi: FetchApi;
    });
    private callApi;
    getFindingSummary({ componentKey, projectInstance, }?: {
        componentKey?: string;
        projectInstance?: string;
    }): Promise<FindingSummary | undefined>;
    settledResponseOf(responses: PromiseSettledResult<any>[]): Array<any>;
    getFindingSummaries(components: Array<{
        projectInstance: string | undefined;
        componentKey: string;
    }>): Promise<Map<string, FindingSummary>>;
}

/** @public */
type DuplicationRating = {
    greaterThan: number;
    rating: '1.0' | '2.0' | '3.0' | '4.0' | '5.0';
};

/** @public */
declare const SonarQubeCard: (props: {
    variant?: InfoCardVariants;
    duplicationRatings?: DuplicationRating[];
    missingAnnotationReadMoreUrl?: string;
}) => react_jsx_runtime.JSX.Element;

/** @public */
type SonarQubeContentPageProps = {
    title?: string;
    supportTitle?: string;
    missingAnnotationReadMoreUrl?: string;
};

/**
 * @public
 */
type SonarQubeTableProps = {
    tableContent: any[] | undefined;
    title?: string;
    options?: any | undefined;
    emptyContent?: ReactNode;
    localization?: any;
};
/**
 * @public
 */
declare const SonarQubeTable: ({ tableContent, title, options, emptyContent, localization, }: SonarQubeTableProps) => react_jsx_runtime.JSX.Element;

/**
 * @public
 *
 * @deprecated use the same type from `@backstage-community/plugin-sonarqube-react` instead
 */
declare const isSonarQubeAvailable: (entity: _backstage_catalog_model.Entity) => boolean;
/**
 * @public
 *
 * @deprecated use the same type from `@backstage-community/plugin-sonarqube-react` instead
 */
declare const SONARQUBE_PROJECT_KEY_ANNOTATION = "sonarqube.org/project-key";

/** @public */
declare const sonarQubePlugin: _backstage_core_plugin_api.BackstagePlugin<{}, {}, {}>;
/** @public */
declare const EntitySonarQubeCard: (props: {
    variant?: _backstage_core_components.InfoCardVariants | undefined;
    duplicationRatings?: DuplicationRating[] | undefined;
    missingAnnotationReadMoreUrl?: string | undefined;
}) => react_jsx_runtime.JSX.Element;
/** @public */
declare const EntitySonarQubeContentPage: (props: SonarQubeContentPageProps) => react_jsx_runtime.JSX.Element;

/**
 * @public
 */
declare const sonarqubeTranslationRef: _backstage_core_plugin_api_alpha.TranslationRef<"sonarqube", {
    readonly title: "SonarQube Dashboard";
    readonly "sonarQubeCard.title": "Code Quality";
    readonly "sonarQubeCard.deepLinkTitle": "View more";
    readonly "sonarQubeCard.bugReportRatingCardTitle": "Bugs";
    readonly "sonarQubeCard.vulnerabilitiesRatingCardTitle": "Vulnerabilities";
    readonly "sonarQubeCard.codeSmellsRatingCardTitle": "Code Smells";
    readonly "sonarQubeCard.hotspotsReviewedTitle": "Hotspots Reviewed";
    readonly "sonarQubeCard.coverageRatingCardTitle": "Coverage";
    readonly "sonarQubeCard.duplicationsRatingCard": "Duplications";
    readonly "sonarQubeCard.emptyState.title": "No information to display";
    readonly "sonarQubeCard.emptyState.description": "There is no SonarQube project with key '{{ projectTitle }}'.";
    readonly "sonarQubeCard.noSonarQubeError.hasAnnotation": "Unable to access SonarQube project \"{{project}}\": Check project exists and permissions";
    readonly "sonarQubeCard.noSonarQubeError.noAnnotation": "{{name}} has no DX-Hub annotation for SonarQube";
    readonly "sonarQubeCard.qualityBadgeLabel.notComputed": "Not computed";
    readonly "sonarQubeCard.qualityBadgeLabel.gatePassed": "Gate passed";
    readonly "sonarQubeCard.qualityBadgeLabel.gateFailed": "Gate failed";
    readonly "sonarQubeTable.entityLinkTitle": "View Component details";
    readonly "sonarQubeTable.columnsTitle.component": "Component";
    readonly "sonarQubeTable.columnsTitle.vulnerabilities": "Vulnerabilities";
    readonly "sonarQubeTable.columnsTitle.bugs": "Bugs";
    readonly "sonarQubeTable.columnsTitle.coverage": "Coverage";
    readonly "sonarQubeTable.columnsTitle.qualityGate": "Quality Gate";
    readonly "sonarQubeTable.columnsTitle.codeSmells": "Code Smells";
    readonly "sonarQubeTable.columnsTitle.hotspotsReviewed": "Hotspots Reviewed";
    readonly "sonarQubeTable.columnsTitle.duplications": "Duplications";
}>;

export { type DuplicationRating, EntitySonarQubeCard, EntitySonarQubeContentPage, SONARQUBE_PROJECT_KEY_ANNOTATION, SonarQubeCard, SonarQubeClient, type SonarQubeContentPageProps, SonarQubeTable, type SonarQubeTableProps, isSonarQubeAvailable, sonarQubePlugin, sonarqubeTranslationRef };
