/**
 * Copyright (c) OpenLens Maintainers. All rights reserved.
 * Licensed under MIT License. See LICENSE in root directory for more information.
 */
import "./resource-metrics.scss";
import React from "react";
import type { KubeObject } from "@openlens/kube-object";
import type { MetricsTab } from "../chart/options";
import type { MetricData } from "../../../common/k8s-api/endpoints/metrics.api";
import type { IAsyncComputed } from "@ogre-tools/injectable-react";
export type AtLeastOneMetricTab = [MetricsTab, ...MetricsTab[]];
export interface ResourceMetricsProps<Keys extends string> {
    tabs: AtLeastOneMetricTab;
    object: KubeObject;
    className?: string;
    metrics: IAsyncComputed<Partial<Record<Keys, MetricData>> | null | undefined> | Partial<Record<Keys, MetricData>>;
    children: React.ReactChild | React.ReactChild[];
}
export interface ResourceMetricsValue {
    object: KubeObject;
    tab: MetricsTab;
    metrics: Partial<Record<string, MetricData>> | null | undefined;
}
export declare const ResourceMetricsContext: React.Context<ResourceMetricsValue | null>;
export declare const ResourceMetrics: (<Keys extends string>({ object, tabs, children, className, metrics, }: ResourceMetricsProps<Keys>) => React.JSX.Element) & {
    displayName: string;
};
