import { APIResource } from "../../../../core/resource.js";
import * as BytimesAPI from "./bytimes.js";
import { BaseBytimes, ByTime, BytimeGetParams, Bytimes } from "./bytimes.js";
import { APIPromise } from "../../../../core/api-promise.js";
import { RequestOptions } from "../../../../internal/request-options.js";
export declare class BaseReports extends APIResource {
    static readonly _key: readonly ['dns', 'analytics', 'reports'];
    /**
     * Retrieves a list of summarised aggregate metrics over a given time period.
     *
     * See
     * [Analytics API properties](https://developers.cloudflare.com/dns/reference/analytics-api-properties/)
     * for detailed information about the available query parameters.
     *
     * @deprecated This endpoint is deprecated. See [the API deprecation notice](https://developers.cloudflare.com/fundamentals/api/reference/deprecations/#2025-12-09).
     */
    get(params: ReportGetParams, options?: RequestOptions): APIPromise<Report>;
}
export declare class Reports extends BaseReports {
    bytimes: BytimesAPI.Bytimes;
}
export interface Report {
    /**
     * Array with one row per combination of dimension values.
     */
    data: Array<Report.Data>;
    /**
     * Number of seconds between current time and last processed event, in another
     * words how many seconds of data could be missing.
     */
    data_lag: number;
    /**
     * Maximum results for each metric (object mapping metric names to values).
     * Currently always an empty object.
     */
    max: unknown;
    /**
     * Minimum results for each metric (object mapping metric names to values).
     * Currently always an empty object.
     */
    min: unknown;
    query: Report.Query;
    /**
     * Total number of rows in the result.
     */
    rows: number;
    /**
     * Total results for metrics across all data (object mapping metric names to
     * values).
     */
    totals: unknown;
}
export declare namespace Report {
    interface Data {
        /**
         * Array of dimension values, representing the combination of dimension values
         * corresponding to this row.
         */
        dimensions: Array<string>;
        /**
         * Array with one item per requested metric. Each item is a single value.
         */
        metrics: Array<number>;
    }
    interface Query {
        /**
         * Array of dimension names.
         */
        dimensions: Array<string>;
        /**
         * Limit number of returned metrics.
         */
        limit: number;
        /**
         * Array of metric names.
         */
        metrics: Array<string>;
        /**
         * Start date and time of requesting data period in ISO 8601 format.
         */
        since: string;
        /**
         * End date and time of requesting data period in ISO 8601 format.
         */
        until: string;
        /**
         * Segmentation filter in 'attribute operator value' format.
         */
        filters?: string;
        /**
         * Array of dimensions to sort by, where each dimension may be prefixed by -
         * (descending) or + (ascending).
         */
        sort?: Array<string>;
    }
}
export interface ReportGetParams {
    /**
     * Path param: Identifier.
     */
    zone_id: string;
    /**
     * Query param: A comma-separated list of dimensions to group results by.
     */
    dimensions?: string;
    /**
     * Query param: Segmentation filter in 'attribute operator value' format.
     */
    filters?: string;
    /**
     * Query param: Limit number of returned metrics.
     */
    limit?: number;
    /**
     * Query param: A comma-separated list of metrics to query.
     */
    metrics?: string;
    /**
     * Query param: Start date and time of requesting data period in ISO 8601 format.
     */
    since?: string;
    /**
     * Query param: A comma-separated list of dimensions to sort by, where each
     * dimension may be prefixed by - (descending) or + (ascending).
     */
    sort?: string;
    /**
     * Query param: End date and time of requesting data period in ISO 8601 format.
     */
    until?: string;
}
export declare namespace Reports {
    export { type Report as Report, type ReportGetParams as ReportGetParams };
    export { Bytimes as Bytimes, BaseBytimes as BaseBytimes, type ByTime as ByTime, type BytimeGetParams as BytimeGetParams, };
}
//# sourceMappingURL=reports.d.ts.map