import type { EffectiveConfig, ProfileCandidate } from "./types.js"; /** Options for recommended-profile resolution. */ export interface RecommendedOptions { providerAvailable: (provider: string) => boolean; } /** * Compute the ordered list of profile names to probe for a command. * * Rules: * - Start from `config.profileOrder` if non-empty, else `["default"]`. * - If `config.recommendedModels` is true and the `nan` provider is available, * append `"nan"` (unless it is already present in the order). * - Returns a fresh array so callers may mutate without side effects. */ export declare function effectiveProfileOrder(config: EffectiveConfig, opts: RecommendedOptions): string[]; /** * Resolve a profile chain for one command. * * Iterates the ordered profile names from `effectiveProfileOrder`. For each name: * - `nan` → uses `config.profiles.nan` if the user overrode it, else * the built-in `RECOMMENDED_PROFILES.nan`. * - `default` → the implicit profile made from `config.default` and * `config.commands` (top-level, already-merged). * - Any other name → `config.profiles[name]` (user-defined profile). * * Skip names with no profile definition. * For each candidate, compute the route file from the command's explicit * command route or the profile's default route. Skip if neither is defined. * * Built-in nan profile (`RECOMMENDED_PROFILES.nan`, never user-overridden) * always reports `declared = { model: true, thinking: true }`. * * Returns candidates in order, each with its route and per-key declaration * status. */ export declare function resolveProfileChain(config: EffectiveConfig, command: string, opts: RecommendedOptions): ProfileCandidate[];