import * as winston from "winston";
import * as express from "express";
import { User } from "@openiap/openflow-api";
import * as client from "prom-client";
export declare class GrafanaProxy {
    static license_public_key: string;
    private static _logger;
    private static app;
    static logRequests: boolean;
    static logQueries: boolean;
    private static requestIdCounter;
    private static requestsPending;
    private static register;
    private static parseJson;
    static configure(logger: winston.Logger, app: express.Express, register: client.Registry): Promise<void>;
    private static setCORSHeaders;
    private static logRequest;
    private static logQuery;
    private static queryError;
    private static queryFinished;
    private static parseQuery;
    private static forIn;
    private static getBucketCount;
    private static getTableResults;
    private static getTimeseriesResults;
    private static doTemplateQuery;
    private static replaceinstring;
    private static runAggregateQuery;
    static authorizationCache: HashTable<CachedUser>;
    private static getUser;
    private static RemoveUser;
    private static AddUser;
    private static GetJWT;
}
export declare class CachedUser {
    user: User;
    _id: string;
    firstsignin: Date;
    constructor(user: User, _id: string);
}
interface HashTable<T> {
    [key: string]: T;
}
export {};
