import type { BenchmarkEntry } from './model-benchmarks.js';
import type { CatalogModel } from './model-catalog.js';
import type { ContextWindowProvenance } from './registry-types.js';
import type { CanonicalModel, SyntheticTier } from './synthetic.js';
export interface MinimalModelDefinition {
    id: string;
    provider: string;
    registryKey: string;
    displayName: string;
    description: string;
    capabilities: {
        toolCalling: boolean;
        codeEditing: boolean;
        reasoning: boolean;
        multimodal: boolean;
    };
    contextWindow: number;
    contextWindowProvenance?: ContextWindowProvenance | undefined;
    selectable: boolean;
    tier: 'free' | 'standard' | 'premium' | 'subscription';
    reasoningEffort?: string[] | undefined;
}
export interface SyntheticModelInfo {
    backendCount: number;
    keyedBackendCount: number;
    tier: SyntheticTier;
    bestCompositeScore: number | null;
}
export declare function nameToSlug(name: string): string;
export declare function normalizeModelName(name: string): string;
export declare function buildSyntheticCanonicalModels(models: readonly CatalogModel[]): CanonicalModel[];
export declare function getSyntheticModelInfo(modelId: string, canonicalModels: readonly CanonicalModel[], getBenchmarks: (modelName: string) => BenchmarkEntry | undefined): SyntheticModelInfo | null;
export declare function getSyntheticBackendModelIds(canonicalModels: readonly CanonicalModel[]): Set<string>;
export declare function getSyntheticModelDefinitions(models: readonly CatalogModel[], canonicalModels: readonly CanonicalModel[]): MinimalModelDefinition[];
//# sourceMappingURL=model-catalog-synthetic.d.ts.map