/// /// export declare module Benchmark { class Bucket { upperLimit: number; count: number; constructor(up: number, cnt: number); } class BasicStats { max: number; min: number; mean: number; median: number; count: number; constructor(values: number[]); private calcMedian(values); private fmtNumber(n); summary(): string; } class Histogram { private buckets_; private count_; constructor(nbuckets: number, max: number); addValue(num: number): void; addValues(nums: number[]): Histogram; getValues(): Bucket[]; getPoints(): number[][]; } enum Result { RES_SUCCESS = 0, RES_FAILURE = 1, RES_TIMEOUT = 2, } class DataVector { values: Array[]; constructor(); addValue(latency: number, result: Result): void; addValues(latencies: number[], result: Result): void; } class TestResult { requestSize: number; raw: DataVector; histogram: Histogram[]; constructor(size: number, successes: number[], failures: number[], timeouts: number[], nbuckets: number, max: number); } class RequestManager { private concurrency; private histoNumBuckets; private histoMax; private kTimeoutMS; private kMaxTimeouts; private kWatchdogInterval; private latencies_; private sizes_; private request_queue_; private running_requests_; private finished_concurrent_requests_; private result_callback_; private timeout_count_; private request_counter_; private verbosity_; constructor(sizes: number[]); configureDefaults(conc: number, nbuckets: number, max: number, verbosity: number, max_timeouts: number): void; private finishRequest(requestIndex, err, response, body); startRequest(requestIndex: number, sizeIndex: number): void; runATest(requestIndex: number): void; private watchDog(); private initForTestRun(); runTests(numPerSize: number, callback: Function): void; } interface BenchmarkStrategy { configure(requestManager: RequestManager): void; run(): void; } }