/**
 * Model Resolver
 * Resolves agent names and roles to concrete model identifiers using tier system
 *
 * @implements @.aiwg/architecture/ADR-015-enhanced-model-selection.md
 * @architecture @.aiwg/architecture/enhanced-model-selection-design.md
 */
import type { ModelTier, ModelRole, Provider, ResolvedModel, ModelResolverOptions, ModelInfo, TierInfo } from './types.js';
/**
 * Resolves models for agents using tier system
 */
export declare class ModelResolver {
    private config;
    private readonly loader;
    private readonly options;
    constructor(options?: ModelResolverOptions, projectPath?: string);
    /**
     * Resolve model for an agent
     *
     * @param agentName - Name of the agent
     * @param agentRole - Role hint from agent frontmatter (legacy 'model' field)
     * @param agentTier - Tier from agent frontmatter (new 'model-tier' field)
     * @returns Resolved model information
     */
    resolve(agentName: string, agentRole?: ModelRole, agentTier?: ModelTier): Promise<ResolvedModel>;
    /**
     * Determine effective tier and role for an agent
     */
    private determineEffectiveTierAndRole;
    /**
     * Determine role for agent
     */
    private determineRole;
    /**
     * Apply minimum tier constraint if respectMinimums is true
     */
    private applyMinimumTier;
    /**
     * Return the higher of two tiers
     */
    private maxTier;
    /**
     * Resolve tier + role to concrete model ID
     */
    private resolveModelId;
    /**
     * Get model info by ID or alias
     */
    getModelInfo(modelIdOrAlias: string): Promise<ModelInfo | null>;
    /**
     * List all available models for provider
     */
    listModels(provider?: Provider): Promise<ModelInfo[]>;
    /**
     * List available tiers
     */
    listTiers(): Promise<TierInfo[]>;
    /**
     * Get configuration (cached)
     */
    private getConfig;
    /**
     * Clear cache (useful for testing)
     */
    clearCache(): void;
}
//# sourceMappingURL=resolver.d.ts.map