export interface BenchmarkConfig {
    hardware: HardwareConfig;
    outputDir: string;
    tests: TestEntry[];
}
export interface HardwareConfig {
    device: string;
    os: string;
    ramTotalGB: number;
    vramGB: number;
}
export interface TestEntry {
    benchmarks?: {
        bfcl?: boolean;
        humanevalplus?: boolean;
        mbppplus?: boolean;
    };
    concurrency: number;
    contextLength: number;
    engine: "llama.cpp" | "vllm";
    format: string;
    generate: boolean;
    parallelism: number;
    parameterCount: string;
    quantization: string | null;
    recommended?: string[] | false;
    slug: string;
    source?: ModelSource;
    vllmImage?: string;
}
export interface ModelSource {
    type: "huggingface";
    url: string;
}
export interface RunResult {
    concurrency: number;
    contextLength: number;
    date: string;
    engine: string;
    hardware: HardwareConfig;
    maxTokens: number;
    memory: MemoryResult;
    parallelism: number;
    performance: PerformanceResult;
    quality: QualityResult;
}
export interface PerformanceResult {
    avgLatencyMs: number;
    completionTokens: number;
    failedRequests: number;
    p50LatencyMs: number;
    p95LatencyMs: number;
    p99LatencyMs: number;
    promptTokens: number;
    successRate: number;
    timeToFirstTokenMs: number;
    tokensPerSecond: number;
    totalRequests: number;
}
export interface MemoryResult {
    baselineRamUsedMB: number;
    baselineVramUsedMB: number;
    modelRamMB: number;
    modelVramMB: number;
    peakRamUsedMB: number;
    peakVramUsedMB: number;
    ramTotalMB: number;
    vramTotalMB: number;
}
export interface QualityResult {
    bfcl?: {
        accuracy: number;
        problems: number;
    };
    humanevalplus?: {
        passed: number;
        passRate: number;
        problems: number;
    };
    mbppplus?: {
        passed: number;
        passRate: number;
        problems: number;
    };
}
export interface ModelMetadata {
    author: string;
    baseModel?: string;
    contextLength?: number;
    description?: string;
    license?: string;
    modelType?: string;
    source: ModelSource;
}
export interface ModelOutput {
    metadata?: ModelMetadata;
    model: {
        format: string;
        parameterCount: string;
        quantization: string | null;
    };
    recommended?: string[] | false;
    runs: RunResult[];
    slug: string;
}
export interface MemorySample {
    ramTotalMB: number;
    ramUsedMB: number;
    timestamp: number;
    vramTotalMB: number;
    vramUsedMB: number;
}
export interface MemorySampleResult {
    baseline: MemorySample;
    peak: MemorySample;
    samples: MemorySample[];
}
export interface BenchmarkStats {
    avgLatencyMs: number;
    completionTokens: number;
    failedRequests: number;
    latencies: number[];
    passed: number;
    p50LatencyMs: number;
    p95LatencyMs: number;
    p99LatencyMs: number;
    problems: number;
    promptTokens: number;
    successRate: number;
    timeToFirstTokenMs: number[];
    totalLatencyMs: number;
    totalRequests: number;
}
export interface HumanEvalProblem {
    entryPoint: string;
    id: string;
    prompt: string;
    test: string;
}
export interface MBPPPlusProblem {
    assertions: string;
    entryPoint: string;
    id: string;
    prompt: string;
    solution: string;
}
export interface BFCLFunction {
    description: string;
    name: string;
    parameters: {
        properties: Record<string, Record<string, unknown>>;
        required?: string[];
        type: string;
    };
}
export interface BFCLProblem {
    function: BFCLFunction[];
    id: string;
    question: Array<Array<{
        content: string;
        role: string;
    }>>;
}
export interface BFCLAnswer {
    ground_truth: Array<Record<string, Record<string, unknown>>>;
    id: string;
}
