import type { ModelDefinition } from "./types/index.js";
/**
 * Interface for the YAML models configuration structure
 */
interface ModelsYamlConfig {
    defaultModel?: string;
    models: ModelDefinition[];
    requirementKeywords: Record<string, string[]>;
    capabilityWeights: Record<string, number>;
    budgetAdjustments: Record<"low" | "medium" | "high", {
        bonus: string[];
        penalty: string[];
    }>;
    budgetBonus: number;
    budgetPenalty: number;
}
export declare function loadModelsFromYaml(): ModelsYamlConfig;
/**
 * Gets the list of model definitions from the YAML configuration.
 *
 * @returns Array of model definitions
 */
export declare function getModels(): ModelDefinition[];
/**
 * Gets the requirement keywords from the YAML configuration.
 *
 * @returns Record mapping capability names to keyword arrays
 */
export declare function getRequirementKeywords(): Record<string, string[]>;
/**
 * Gets the capability weights from the YAML configuration.
 *
 * @returns Record mapping capability names to weight values
 */
export declare function getCapabilityWeights(): Record<string, number>;
/**
 * Gets the budget adjustments from the YAML configuration.
 *
 * @returns Record mapping budget levels to bonus/penalty arrays
 */
export declare function getBudgetAdjustments(): Record<"low" | "medium" | "high", {
    bonus: string[];
    penalty: string[];
}>;
/**
 * Gets the budget bonus value from the YAML configuration.
 *
 * @returns Budget bonus value
 */
export declare function getBudgetBonus(): number;
/**
 * Gets the budget penalty value from the YAML configuration.
 *
 * @returns Budget penalty value
 */
export declare function getBudgetPenalty(): number;
/**
 * Converts a model display name to a lowercase slug format.
 * Examples: "GPT-5-Codex" -> "gpt-5-codex", "Claude Opus 4.1" -> "claude-opus-4.1"
 *
 * @param displayName - The display name of the model
 * @returns Slugified lowercase model name
 */
export declare function slugifyModelName(displayName: string): string;
/**
 * Gets the default model name from the YAML configuration.
 * The default model is specified in models.yaml under the `defaultModel` key.
 *
 * @returns Default model name (display format, e.g., "GPT-5-Codex")
 * @throws Error if no default model is configured in YAML
 */
export declare function getDefaultModel(): string;
/**
 * Gets the default model slug from the YAML configuration.
 * Returns a lowercase slug format suitable for use with ProviderEnum.
 *
 * @returns Default model slug (lowercase format, e.g., "gpt-5-codex")
 * @throws Error if no default model is configured in YAML
 */
export declare function getDefaultModelSlug(): string;
export {};
//# sourceMappingURL=model-loader.d.ts.map