import { MajkChat, Provider, ResolvedModel } from '@majkapp/majk-chat-core';
import { RequestContext } from '@majkapp/majk-chat-core';
export declare const MODEL_ALIASES: Record<string, string>;
/**
 * Resolve a model name or alias to the full model identifier using ModelResolverService
 *
 * This is the primary model resolution API. It uses the MajkChat instance to access
 * the ModelResolverService, which queries provider APIs for available models and
 * intelligently selects the best match using structured metadata.
 *
 * Handles:
 * - Tier names: "sonnet", "opus", "haiku", "pro", "mini"
 * - Aliases: "gpt4", "gpt5"
 * - Partial IDs: "claude-4", "gpt-5.2"
 * - Full IDs: "claude-sonnet-4-5-20250929"
 *
 * Examples:
 * - resolveModel(chat, 'sonnet') -> 'claude-sonnet-4-5-20250929' (latest sonnet from API)
 * - resolveModel(chat, 'opus') -> 'claude-opus-4-6' (latest opus)
 * - resolveModel(chat, 'gpt5-pro') -> 'gpt-5.2-pro'
 *
 * @param chat - MajkChat instance with access to ModelResolverService
 * @param modelInput - Model name, tier, alias, or ID
 * @param provider - Optional provider hint
 * @param context - Optional request context for API calls
 * @returns Resolved model ID
 */
export declare function resolveModel(chat: MajkChat, modelInput: string, provider?: Provider, context?: RequestContext): Promise<string>;
/**
 * Resolve a model and return full resolution details including metadata
 *
 * Same as resolveModel but returns the full ResolvedModel object with metadata.
 *
 * @param chat - MajkChat instance
 * @param modelInput - Model name, tier, alias, or ID
 * @param provider - Optional provider hint
 * @param context - Optional request context
 * @returns ResolvedModel with ID, provider, and metadata
 */
export declare function resolveModelWithMetadata(chat: MajkChat, modelInput: string, provider?: Provider, context?: RequestContext): Promise<ResolvedModel>;
/**
 * Get the appropriate default model for a provider
 *
 * Uses ModelResolverService to find the highest version model for a provider/tier.
 *
 * @param chat - MajkChat instance
 * @param provider - Provider name (anthropic, openai, etc.)
 * @param tierFilter - Optional tier to filter by (sonnet, opus, haiku, pro, mini, etc.)
 * @param context - Optional request context
 * @returns The best model ID for the provider
 *
 * Examples:
 * - getDefaultModel(chat, 'anthropic') -> 'claude-opus-4-6' (highest overall)
 * - getDefaultModel(chat, 'anthropic', 'sonnet') -> 'claude-sonnet-4-5-20250929'
 * - getDefaultModel(chat, 'openai', 'pro') -> 'gpt-5.2-pro'
 */
export declare function getDefaultModel(chat: MajkChat, provider: Provider, tierFilter?: string, context?: RequestContext): Promise<string>;
/**
 * Legacy sync model resolution using static fallbacks only
 *
 * This is kept for backwards compatibility but does NOT use dynamic model discovery.
 * New code should use the async resolveModel() instead.
 *
 * @deprecated Use async resolveModel(chat, input, provider, context) instead
 */
export declare function resolveModelSync(modelInput: string): string;
/**
 * Legacy sync default model getter using static fallbacks only
 *
 * This is kept for backwards compatibility but does NOT use dynamic model discovery.
 * New code should use the async getDefaultModel() instead.
 *
 * @deprecated Use async getDefaultModel(chat, provider, tier, context) instead
 */
export declare function getDefaultModelSync(provider: string, tierFilter?: string): string;
//# sourceMappingURL=models.d.ts.map