import { APIResource } from "../../../../core/resource.mjs";
import * as FleetStatusAPI from "./fleet-status.mjs";
import * as DevicesAPI from "./devices.mjs";
import { BaseDevices, DeviceListParams, DeviceListResponse, DeviceListResponsesV4PagePaginationArray, Devices } from "./devices.mjs";
import { APIPromise } from "../../../../core/api-promise.mjs";
import { RequestOptions } from "../../../../internal/request-options.mjs";
export declare class BaseFleetStatus extends APIResource {
    static readonly _key: readonly ['zeroTrust', 'dex', 'fleetStatus'];
    /**
     * Get details for live (up to 60 minutes) devices using WARP.
     *
     * @example
     * ```ts
     * const response =
     *   await client.zeroTrust.dex.fleetStatus.live({
     *     account_id: '01a7362d577a6c3019a474fd6f485823',
     *     since_minutes: 10,
     *   });
     * ```
     */
    live(params: FleetStatusLiveParams, options?: RequestOptions): APIPromise<FleetStatusLiveResponse>;
    /**
     * Get aggregate details for devices using WARP, up to 7 days.
     *
     * @example
     * ```ts
     * const response =
     *   await client.zeroTrust.dex.fleetStatus.overTime({
     *     account_id: '01a7362d577a6c3019a474fd6f485823',
     *     from: '2023-10-11 00:00:00+00',
     *     to: '2023-10-11 00:00:00+00',
     *   });
     * ```
     */
    overTime(params: FleetStatusOverTimeParams, options?: RequestOptions): APIPromise<FleetStatusOverTimeResponse>;
}
export declare class FleetStatus extends BaseFleetStatus {
    devices: DevicesAPI.Devices;
}
export interface LiveStat {
    /**
     * Number of unique devices
     */
    uniqueDevicesTotal?: number;
    value?: string;
}
export interface FleetStatusLiveResponse {
    deviceStats?: FleetStatusLiveResponse.DeviceStats;
}
export declare namespace FleetStatusLiveResponse {
    interface DeviceStats {
        byColo?: Array<FleetStatusAPI.LiveStat> | null;
        byMode?: Array<FleetStatusAPI.LiveStat> | null;
        byPlatform?: Array<FleetStatusAPI.LiveStat> | null;
        byStatus?: Array<FleetStatusAPI.LiveStat> | null;
        byVersion?: Array<FleetStatusAPI.LiveStat> | null;
        /**
         * Number of unique devices
         */
        uniqueDevicesTotal?: number;
    }
}
export interface FleetStatusOverTimeResponse {
    deviceStats?: FleetStatusOverTimeResponse.DeviceStats;
}
export declare namespace FleetStatusOverTimeResponse {
    interface DeviceStats {
        byMode?: Array<DeviceStats.ByMode>;
        byStatus?: Array<DeviceStats.ByStatus>;
        /**
         * Number of unique devices
         */
        uniqueDevicesTotal?: number;
    }
    namespace DeviceStats {
        interface ByMode {
            timestamp?: string;
            /**
             * Number of unique devices
             */
            uniqueDevicesTotal?: number;
            value?: string;
        }
        interface ByStatus {
            timestamp?: string;
            /**
             * Number of unique devices
             */
            uniqueDevicesTotal?: number;
            value?: string;
        }
    }
}
export interface FleetStatusLiveParams {
    /**
     * Path param: Unique Cloudflare account ID.
     */
    account_id: string;
    /**
     * Query param: Number of minutes before current time.
     */
    since_minutes: number;
}
export interface FleetStatusOverTimeParams {
    /**
     * Path param: Unique Cloudflare account ID.
     */
    account_id: string;
    /**
     * Query param: Start of the time range to query. Timestamp can be provided in ISO
     * 8601 datetime format or milliseconds since epoch.
     */
    from: string;
    /**
     * Query param: End of the time range to query. Timestamp can be provided in ISO
     * 8601 datetime format or milliseconds since epoch.
     */
    to: string;
    /**
     * Query param: Cloudflare colo airport code.
     */
    colo?: string;
    /**
     * Query param: Device-specific ID, given as UUID.
     */
    device_id?: string;
}
export declare namespace FleetStatus {
    export { type LiveStat as LiveStat, type FleetStatusLiveResponse as FleetStatusLiveResponse, type FleetStatusOverTimeResponse as FleetStatusOverTimeResponse, type FleetStatusLiveParams as FleetStatusLiveParams, type FleetStatusOverTimeParams as FleetStatusOverTimeParams, };
    export { Devices as Devices, BaseDevices as BaseDevices, type DeviceListResponse as DeviceListResponse, type DeviceListResponsesV4PagePaginationArray as DeviceListResponsesV4PagePaginationArray, type DeviceListParams as DeviceListParams, };
}
//# sourceMappingURL=fleet-status.d.mts.map