import * as React from "react";
import { TagTree } from "../lib/routes/api";
import { TagUsage } from "../lib/tree/sunburst";
export interface CurrentIdealForDisplay {
    displayValue: string;
}
export interface PossibleIdealForDisplay {
    url?: string;
    fingerprintName: string;
    displayValue: string;
    stringified: string;
}
export declare type FieldToDisplay = string;
export interface SunburstPageProps {
    readonly workspaceId: string;
    readonly heading: string;
    readonly subheading?: string;
    readonly currentIdeal: CurrentIdealForDisplay;
    readonly possibleIdeals: PossibleIdealForDisplay[];
    readonly query: string;
    readonly dataUrl: string;
    readonly tree: TagTree;
    /**
     * Tags selected
     */
    readonly selectedTags: string[];
    /**
     * If these fields exist on a node, display them on hover
     */
    fieldsToDisplay: FieldToDisplay[];
}
/**
 * Class backing displayTagButtons
 */
export declare class TagGroup {
    readonly tagSelection: string[];
    private readonly tagsInData;
    private readonly totalProjectsDisplayed;
    constructor(tagSelection: string[], treeWithTags?: {
        tags?: TagUsage[];
        matchingRepoCount?: number;
    });
    allTagNames(): string[];
    isRequired(tagName: string): boolean;
    isExcluded(tagName: string): boolean;
    isWarning(tagName: string): boolean;
    isError(tagName: string): boolean;
    getDescription(tagName: string): string | undefined;
    getPercentageOfProjects(tagName: string): number;
    describeExclude(tagName: string): string;
    describeRequire(tagName: string): string;
    tagSelectionForRequire(tagName: string): string[];
    tagSelectionForExclude(tagName: string): string[];
    private pleaseExclude;
    private dontFeelExcluded;
}
export declare function SunburstPage(props: SunburstPageProps): React.ReactElement;
//# sourceMappingURL=sunburstPage.d.ts.map