import { FetchFn } from './index'; import { Matcher } from '../types'; export interface MetricMetadata { type: string; help: string; } export interface PrometheusClient { labelNames(metricName?: string): Promise; labelValues(labelName: string, metricName?: string, matchers?: Matcher[]): Promise; metricMetadata(): Promise>; series(metricName: string, matchers?: Matcher[], labelName?: string): Promise[]>; metricNames(prefix?: string): Promise; flags(): Promise>; destroy?(): void; } export interface CacheConfig { maxAge?: number; initialMetricList?: string[]; } export interface PrometheusConfig { url?: string; lookbackInterval?: number; httpErrorHandler?: (error: any) => void; fetchFn?: FetchFn; cache?: CacheConfig; httpMethod?: 'POST' | 'GET'; apiPrefix?: string; requestHeaders?: Headers; } export declare class HTTPPrometheusClient implements PrometheusClient { private readonly lookbackInterval; private readonly url; private readonly errorHandler?; private readonly httpMethod; private readonly apiPrefix; private readonly fetchFn; private requestHeaders; private readonly abortControllers; constructor(config: PrometheusConfig); labelNames(metricName?: string): Promise; labelValues(labelName: string, metricName?: string, matchers?: Matcher[]): Promise; metricMetadata(): Promise>; series(metricName: string, matchers?: Matcher[], labelName?: string): Promise[]>; metricNames(): Promise; flags(): Promise>; destroy(): void; private fetchAPI; private buildRequest; private labelsEndpoint; private labelValuesEndpoint; private seriesEndpoint; private metricMetadataEndpoint; private flagsEndpoint; } export declare class CachedPrometheusClient implements PrometheusClient { private readonly cache; private readonly client; constructor(client: PrometheusClient, config?: CacheConfig); labelNames(metricName?: string): Promise; labelValues(labelName: string, metricName?: string): Promise; metricMetadata(): Promise>; series(metricName: string): Promise[]>; metricNames(): Promise; flags(): Promise>; destroy(): void; }