/** * @license * Copyright 2025 Vybestack LLC * SPDX-License-Identifier: Apache-2.0 */ import { z } from 'zod'; /** * Schema for a single usage detail entry (tool-level breakdown) */ export declare const ZaiUsageDetailSchema: z.ZodObject<{ modelCode: z.ZodString; usage: z.ZodNumber; }, "strip", z.ZodTypeAny, { usage: number; modelCode: string; }, { usage: number; modelCode: string; }>; /** * Schema for a single limit entry from Z.ai quota endpoint * * Limits can be: * - TOKENS_LIMIT: Token-based rolling window (e.g., 5-hour) * - TIME_LIMIT: Time/call-based limit (e.g., monthly MCP usage) */ export declare const ZaiLimitSchema: z.ZodObject<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">>; /** * Schema for Z.ai quota response * Based on https://api.z.ai/api/monitor/usage/quota/limit endpoint */ export declare const ZaiQuotaResponseSchema: z.ZodObject<{ code: z.ZodNumber; msg: z.ZodString; data: z.ZodObject<{ limits: z.ZodArray; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">>, "many">; level: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ limits: z.ZodArray; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">>, "many">; level: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ limits: z.ZodArray; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">>, "many">; level: z.ZodString; }, z.ZodTypeAny, "passthrough">>; success: z.ZodBoolean; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ code: z.ZodNumber; msg: z.ZodString; data: z.ZodObject<{ limits: z.ZodArray; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">>, "many">; level: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ limits: z.ZodArray; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">>, "many">; level: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ limits: z.ZodArray; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">>, "many">; level: z.ZodString; }, z.ZodTypeAny, "passthrough">>; success: z.ZodBoolean; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ code: z.ZodNumber; msg: z.ZodString; data: z.ZodObject<{ limits: z.ZodArray; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">>, "many">; level: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ limits: z.ZodArray; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">>, "many">; level: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ limits: z.ZodArray; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; unit: z.ZodNumber; number: z.ZodNumber; usage: z.ZodOptional; currentValue: z.ZodOptional; remaining: z.ZodOptional; percentage: z.ZodNumber; nextResetTime: z.ZodOptional; usageDetails: z.ZodOptional, "many">>; }, z.ZodTypeAny, "passthrough">>, "many">; level: z.ZodString; }, z.ZodTypeAny, "passthrough">>; success: z.ZodBoolean; }, z.ZodTypeAny, "passthrough">>; /** * Single usage detail entry */ export type ZaiUsageDetail = z.infer; /** * Single limit entry */ export type ZaiLimit = z.infer; /** * Z.ai usage information from quota endpoint */ export type ZaiUsageInfo = z.infer; /** * Fetch usage information from Z.ai quota endpoint * Requires a Z.ai API key (raw key, NOT Bearer token) * * @param apiKey - Z.ai API key * @param baseUrl - Optional base URL to derive endpoint from * @returns Usage info if available, null on error */ export declare function fetchZaiUsage(apiKey: string, baseUrl?: string): Promise; /** * Format all available Z.ai usage information for display */ export declare function formatZaiUsage(usage: ZaiUsageInfo): string[];