import type { JsonValue } from 'n8n-workflow';
import type { CacheService } from '../../services/cache/cache.service';
type CachedMetricQueryOpts<T extends JsonValue> = {
    cacheService: CacheService;
    cacheKey: string;
    ttlMs: number;
    query: () => Promise<T>;
};
export declare class CachedMetricQuery<T extends JsonValue> {
    private readonly cacheService;
    private readonly cacheKey;
    private readonly ttlMs;
    private readonly query;
    private inFlight;
    constructor({ cacheService, cacheKey, ttlMs, query }: CachedMetricQueryOpts<T>);
    get(): Promise<T>;
    private load;
}
export {};
