import { APIResource } from "../../../../core/resource.mjs";
import * as DEXAPI from "../dex.mjs";
import { APIPromise } from "../../../../core/api-promise.mjs";
import { RequestOptions } from "../../../../internal/request-options.mjs";
export declare class BasePercentiles extends APIResource {
    static readonly _key: readonly ['zeroTrust', 'dex', 'httpTests', 'percentiles'];
    /**
     * Get percentiles for an http test for a given time period between 1 hour and 7
     * days.
     *
     * @example
     * ```ts
     * const httpDetailsPercentiles =
     *   await client.zeroTrust.dex.httpTests.percentiles.get(
     *     'f174e90a-fafe-4643-bbbc-4a0ed4fc8415',
     *     {
     *       account_id: '01a7362d577a6c3019a474fd6f485823',
     *       from: '2023-09-20T17:00:00Z',
     *       to: '2023-09-20T17:00:00Z',
     *     },
     *   );
     * ```
     */
    get(testID: string, params: PercentileGetParams, options?: RequestOptions): APIPromise<HTTPDetailsPercentiles>;
}
export declare class Percentiles extends BasePercentiles {
}
export interface HTTPDetailsPercentiles {
    dnsResponseTimeMs?: DEXAPI.Percentiles;
    resourceFetchTimeMs?: DEXAPI.Percentiles;
    serverResponseTimeMs?: DEXAPI.Percentiles;
}
export interface TestStatOverTime {
    slots: Array<TestStatOverTime.Slot>;
    /**
     * average observed in the time period.
     */
    avg?: number | null;
    /**
     * highest observed in the time period.
     */
    max?: number | null;
    /**
     * lowest observed in the time period.
     */
    min?: number | null;
}
export declare namespace TestStatOverTime {
    interface Slot {
        timestamp: string;
        value: number;
    }
}
export interface PercentileGetParams {
    /**
     * Path param: Unique Cloudflare account ID.
     */
    account_id: string;
    /**
     * Query param: Start time for the query in ISO (RFC3339 - ISO 8601) format.
     */
    from: string;
    /**
     * Query param: End time for the query in ISO (RFC3339 - ISO 8601) format.
     */
    to: string;
    /**
     * Query param: Optionally filter result stats to a Cloudflare colo. Cannot be used
     * in combination with deviceId param.
     */
    colo?: string;
    /**
     * Query param: Optionally filter result stats to a specific device(s). Cannot be
     * used in combination with colo param.
     */
    deviceId?: Array<string>;
}
export declare namespace Percentiles {
    export { type HTTPDetailsPercentiles as HTTPDetailsPercentiles, type TestStatOverTime as TestStatOverTime, type PercentileGetParams as PercentileGetParams, };
}
//# sourceMappingURL=percentiles.d.mts.map