interface Universe {
    creationDate: string;
    name: string;
    resources: Resources;
    universeConfig: UniverseConfig;
    universeDetails: any;
    universeUUID: string;
    version: number;
}
interface Resources {
    azList: string[];
    ebsPricePerHour: number;
    memSizeGB: number;
    numCores: number;
    numNodes: number;
    pricePerHour: number;
    volumeCount: number;
    volumeSizeGB: number;
}
interface UniverseConfig {
    disableAlertsUntilSecs: string;
    takeBackups: string;
}
interface Anomaly {
    uuid: string;
    metadataUuid: string;
    category: AnomalyCategory;
    type: AnomalyType;
    universeUuid: string;
    affectedNodes: NodeInfo[];
    graphStartTime?: Date | string;
    graphEndTime?: Date | string;
    affectedTables?: TableInfo[] | [];
    title: string;
    summary: string;
    detectionTime: Date | string;
    startTime: Date | string;
    endTime?: Date | string;
    mainGraphs: GraphMetadata[];
    defaultSettings: GraphSettings;
    rcaGuidelines: RCAGuideline[];
}
declare enum AnomalyCategory {
    SQL = "SQL",
    APP = "APP",
    NODE = "NODE",
    INFRA = "INFRA",
    DB = "DB"
}
declare enum AnomalyType {
    SQL_QUERY_LATENCY_INCREASE = "SQL_QUERY_LATENCY_INCREASE",
    HOT_NODE_READS_WRITES = "HOT_NODE_READS_WRITES",
    HOT_NODE_CPU = "HOT_NODE_CPU",
    HOT_NODE_QUERIES = "HOT_NODE_QUERIES",
    HOT_NODE_DATA = "HOT_NODE_DATA",
    SLOW_DISKS = "SLOW_DISKS"
}
interface NodeInfo {
    name: string;
    uuid: string;
}
interface TableInfo {
    databaseName: string;
    tableName: string;
    tableId: string;
}
interface RCAGuideline {
    possibleCause: string;
    possibleCauseDescription: string;
    troubleshootingRecommendations: TroubleshootingRecommendations[];
}
interface TroubleshootingRecommendations {
    recommendation: string;
    supportingGraphs: GraphMetadata[];
}
interface GraphMetadata {
    name: string;
    filters: GraphFilters;
}
interface GraphFilters {
    universeUuid: string[];
    queryId?: string[];
    dbId?: string[];
    instanceName?: string[];
    clusterUuid?: string[];
    regionCode?: string[];
    azCode?: string[];
}
interface GraphSettings {
    splitMode: SplitMode;
    splitType: SplitType;
    splitCount: number;
    returnAggregatedValue: boolean;
    aggregatedValueFunction: Aggregation;
}
declare const SplitMode: {
    readonly NONE: "NONE";
    readonly TOP: "TOP";
    readonly BOTTOM: "BOTTOM";
};
type SplitMode = typeof SplitMode[keyof typeof SplitMode];
declare const SplitType: {
    readonly NONE: "NONE";
    readonly NODE: "NODE";
    readonly TABLE: "TABLE";
    readonly NAMESPACE: "NAMESPACE";
};
type SplitType = typeof SplitType[keyof typeof SplitType];
declare const Aggregation: {
    readonly AVERAGE: "AVG";
    readonly MAX: "MAX";
    readonly MIN: "MIN";
    readonly SUM: "SUM";
};
type Aggregation = typeof Aggregation[keyof typeof Aggregation];
interface GraphResponse {
    successful: boolean;
    errorMessage: boolean;
    layout: any;
    data: any;
}
declare enum AppName {
    YBA = "YBA",
    YBM = "YBM",
    YBD = "YBD"
}
interface MetadataFields {
    id: string;
    name?: string;
    customerId: string;
    apiToken: string;
    platformUrl: string;
    metricsUrl: string;
    metricsScrapePeriodSec: number;
    dataMountPoints: string[];
    otherMountPoints: string[];
    lastSyncError?: string | null;
}

interface SecondaryDashboardEntryProps {
    universeUuid: string;
    hideHeader?: boolean;
    troubleshootUuid: string;
    universeData: Universe | any;
    appName: AppName;
    timezone?: string;
    hostUrl?: string;
    onSelectedIssue?: (troubleshootUuid: string | null) => void;
}
declare const SecondaryDashboardEntry: ({ universeUuid, troubleshootUuid, universeData, appName, timezone, hideHeader, hostUrl, onSelectedIssue }: SecondaryDashboardEntryProps) => JSX.Element;

interface TroubleshootAdvisorProps {
    universeUuid: string;
    appName: AppName;
    timezone?: string;
    hostUrl?: string;
    onSelectedIssue?: (troubleshootUuid: string) => void;
}
declare const TroubleshootAdvisor: ({ universeUuid, appName, timezone, hostUrl, onSelectedIssue }: TroubleshootAdvisorProps) => JSX.Element;

interface AttachUniverseProps {
    universeUuid: string;
    customerUuid: string;
    apiToken: string;
    baseUrl: string;
    open: boolean;
    isDevMode: boolean;
    onClose: () => void;
}
declare const AttachUniverse: ({ universeUuid, customerUuid, apiToken, baseUrl, open, isDevMode, onClose }: AttachUniverseProps) => JSX.Element;

interface TroubleshootConfigurationProps {
    customerUuid: string;
}
declare const TroubleshootConfiguration: ({ customerUuid }: TroubleshootConfigurationProps) => JSX.Element;

declare enum QUERY_KEY {
    fetchAnamolies = "fetchAnamolies",
    fetchGraphs = "fetchGraphs",
    fetchQueries = "fetchQueries",
    fetchUniverseMetadataList = "fetchUniverseMetadataList",
    deleteUniverseMetadata = "deleteUniverseMetadata",
    updateUniverseMetadata = "updateUniverseMetadata",
    fetchUniverseListDetails = "fetchUniverseListDetails",
    fetchUniverseById = "fetchUniverseById"
}
declare class ApiService {
    fetchAnamolies: (universeUuid: string, startTime?: Date | null, endTime?: Date | null, hostUrl?: string) => Promise<Anomaly[]>;
    fetchAnamoliesById: (universeUuid: string, anomalyUuid: string, hostUrl?: string) => Promise<Anomaly>;
    fetchGraphs: (universeUuid: String, data: any, hostUrl?: string) => Promise<GraphResponse[]>;
    fetchQueries: (universeUuid: string, hostUrl?: string) => Promise<any>;
    fetchUniverseMetadataList: (hostUrl?: string) => Promise<MetadataFields[]>;
    updateUniverseMetadata: (universeUuid: string, data: any, hostUrl?: string) => Promise<any>;
    deleteUniverseMetadata: (universeUuid: string, hostUrl?: string) => Promise<any>;
    fetchUniverseListDetails: (hostUrl?: string) => Promise<any>;
    fetchUniverseById: (universeUuid: string, hostUrl?: string) => Promise<any>;
}
declare const TroubleshootAPI: ApiService;

declare const IN_DEVELOPMENT_MODE: boolean;
declare const DEV_HOST_URL = "http://localhost:8080";
declare const PROD_HOST_URL = "https://10.9.15.156:8443/api";
declare const TS_SERVER_IP = "10.9.15.156";
declare const ROOT_URL: string;

export { AttachUniverse, DEV_HOST_URL, IN_DEVELOPMENT_MODE, PROD_HOST_URL, QUERY_KEY, ROOT_URL, SecondaryDashboardEntry, SecondaryDashboardEntryProps, TS_SERVER_IP, TroubleshootAPI, TroubleshootAdvisor, TroubleshootConfiguration };
