import { type MetricsServer } from '../api/metrics-server.js';
import { NamespaceName } from '../../../types/namespace/namespace-name.js';
import { type Context } from '../../../types/index.js';
import { type SoloLogger } from '../../../core/logging/solo-logger.js';
import { AggregatedMetrics } from '../model/aggregated-metrics.js';
import { type K8Factory } from '../../../integration/kube/k8-factory.js';
export declare class MetricsServerImpl implements MetricsServer {
    private readonly logger?;
    private readonly k8Factory?;
    private readonly ignorePodMetrics?;
    protected readonly installationDirectory?: string;
    constructor(logger?: SoloLogger, k8Factory?: K8Factory, ignorePodMetrics?: string[], installationDirectory?: string);
    getMetrics(snapshotName: string, namespaceLookup?: NamespaceName, labelSelector?: string, contexts?: Context[], events?: string[]): Promise<AggregatedMetrics>;
    private getClusterMetrics;
    private createAggregatedMetrics;
    private createClusterMetrics;
    logMetrics(snapshotName: string, metricsLogFile: string, namespace?: NamespaceName, labelSelector?: string, contexts?: Context[], events?: string[]): Promise<void>;
    private getNetworkNodeRuntime;
    private getNetworkTransactions;
}
