/**
 * Heuristic GPU type + count inference for self-hosted serving endpoints.
 *
 * Two signals: the baseUrl hostname (often encodes "a100", "h100", etc.) and
 * the model id (encodes parameter count + quantization, e.g. "qwen36-27b-fp8").
 * Output is a confidence-tagged guess so downstream code (and the user) can
 * decide whether to trust the inference or override it.
 *
 * Bytes-per-parameter table:
 *   fp32        → 4
 *   fp16/bf16   → 2 (default when unspecified)
 *   fp8/int8/q8 → 1
 *   int4/q4/fp4 → 0.5
 *
 * GPU count formula:
 *   model_bytes = params × bytes_per_param
 *   target_util = 0.6 (40% headroom for KV cache, activations, scheduler)
 *   count       = max(1, ceil(model_bytes / (vram × target_util)))
 */
import { type GpuType } from "./rates.js";
export type GpuConfidence = "high" | "medium" | "low";
export type GpuInference = {
    gpuType?: GpuType;
    gpuCount: number;
    confidence: GpuConfidence;
    paramsB?: number;
    bytesPerParam?: number;
    reasoning: string[];
};
export declare function inferGpuFromUrl(baseUrl: string): {
    gpuType?: GpuType;
    confidence: GpuConfidence;
    match?: string;
};
export declare function parseModelSize(modelId: string): {
    paramsB?: number;
    bytesPerParam?: number;
};
export declare function inferGpuCount(args: {
    paramsB?: number;
    bytesPerParam?: number;
    vramGb: number;
    targetUtilization?: number;
}): number;
export declare function inferGpu(args: {
    baseUrl?: string;
    modelId?: string;
    override?: {
        gpuType?: string;
        gpuCount?: number;
    };
}): GpuInference;
