/**
 * Probe a self-hosted LLM serving endpoint (vLLM / SGLang / OpenAI-compatible)
 * for engine fingerprint, observed throughput, and live queue/KV state.
 *
 * Each probe issues parallel GETs to /version, /v1/models, and /metrics and
 * tolerates individual failures. Results are cached per baseUrl with a 60s
 * TTL on success and a 5-minute TTL on null (so dead/hosted endpoints don't
 * get re-probed on every /status call). Throughput is computed from the
 * delta between successive `vllm:generation_tokens_total` snapshots; the
 * first probe in a process records counters but reports tps=undefined.
 */
export type ServingEngine = "vllm" | "sglang" | "openai-compat" | "unknown";
export type CacheConfigInfo = {
    blockSize?: number;
    numGpuBlocks?: number;
    cacheDtype?: string;
    gpuMemoryUtilization?: number;
    enablePrefixCaching?: boolean;
};
export type ServingInfo = {
    engine: ServingEngine;
    version?: string;
    modelId?: string;
    contextWindow?: number;
    observedTps?: number;
    kvCacheUsagePerc?: number;
    queueDepth?: number;
    numRequestsRunning?: number;
    cacheConfig?: CacheConfigInfo;
    probedAt: number;
    baseUrl: string;
    rootUrl: string;
};
export type ProbeOptions = {
    fetchImpl?: typeof fetch;
    now?: () => number;
    timeoutMs?: number;
    forceRefresh?: boolean;
};
export declare function probeServingEndpoint(baseUrl: string, opts?: ProbeOptions): Promise<ServingInfo | null>;
type ParsedMetrics = {
    promptTokensTotal?: number;
    generationTokensTotal?: number;
    kvCacheUsagePerc?: number;
    queueDepth?: number;
    numRequestsRunning?: number;
    cacheConfig?: CacheConfigInfo;
    foundVllmPrefix: boolean;
    foundSglangPrefix: boolean;
};
export declare function parsePrometheusMetrics(text: string): ParsedMetrics;
export declare function formatEngineLine(info: ServingInfo | null | undefined): string | null;
export declare function _resetServingDiscoveryCache(): void;
export {};
