/**
 * Centralized Model Configuration
 * Defines all Claude models and their usage patterns across the codebase
 */
export interface ModelDefinition {
    id: string;
    name: string;
    provider: "anthropic" | "openai" | "google" | "mistral";
    capabilities: {
        reasoning: "high" | "medium" | "low";
        speed: "fast" | "medium" | "slow";
        cost: "high" | "medium" | "low";
        contextWindow: number;
        maxTokens: number;
    };
    useCases: string[];
    deprecated?: boolean;
}
export interface ModelHierarchyConfig {
    primary: string;
    apply: string;
    review: string;
    fallback: string;
}
export declare const CLAUDE_MODELS: Record<string, ModelDefinition>;
export declare const MODEL_ALIASES: Record<string, string>;
export declare const MODEL_HIERARCHIES: Record<string, ModelHierarchyConfig>;
export declare const DEFAULT_MODEL_CONFIG: ModelHierarchyConfig;
/**
 * Resolve a model alias to its actual model ID
 */
export declare function resolveModelAlias(modelIdOrAlias: string): string;
/**
 * Get model hierarchy for a specific use case (with alias resolution)
 */
export declare function getModelHierarchy(useCase?: keyof typeof MODEL_HIERARCHIES): ModelHierarchyConfig;
/**
 * Get model definition by ID (with alias resolution)
 */
export declare function getModelDefinition(modelIdOrAlias: string): ModelDefinition | undefined;
/**
 * Get all available models (excluding deprecated ones by default)
 */
export declare function getAvailableModels(includeDeprecated?: boolean): ModelDefinition[];
/**
 * Get models suitable for a specific use case
 */
export declare function getModelsForUseCase(useCase: string): ModelDefinition[];
/**
 * Validate if a model ID is available and not deprecated (with alias resolution)
 */
export declare function isValidModel(modelIdOrAlias: string, allowDeprecated?: boolean): boolean;
/**
 * Get all available model aliases
 */
export declare function getModelAliases(): Record<string, string>;
/**
 * Check if a string is a model alias
 */
export declare function isModelAlias(modelIdOrAlias: string): boolean;
/**
 * Get the best model for a specific capability
 */
export declare function getBestModelForCapability(capability: keyof ModelDefinition["capabilities"], preferredLevel?: "high" | "medium" | "low"): ModelDefinition | undefined;
/**
 * Create a custom model hierarchy
 */
export declare function createModelHierarchy(config: Partial<ModelHierarchyConfig>): ModelHierarchyConfig;
export declare const BEDROCK_MODEL_MAPPINGS: Record<string, string>;
export declare const BEDROCK_INFERENCE_PROFILES: Record<string, string>;
/**
 * Get the Bedrock model ID for a given Anthropic model
 */
export declare function getBedrockModelId(anthropicModelId: string): string;
/**
 * Get the Bedrock inference profile for a model (if required)
 */
export declare function getBedrockInferenceProfile(anthropicModelId: string): string | undefined;
/**
 * Check if a model requires an inference profile for Bedrock
 */
export declare function requiresInferenceProfile(anthropicModelId: string): boolean;
/**
 * Get Bedrock-compatible model configuration
 */
export declare function getBedrockModelConfig(anthropicModelId: string): {
    modelId: string;
    inferenceProfile?: string;
    requiresProfile: boolean;
};
//# sourceMappingURL=model-config.d.ts.map