import type { LlmAdapter } from "./llm-types";
import type { AgentConfig } from "./agent-config";
/**
 * LLM Router — Intelligent adapter selection.
 *
 * Priority order:
 *   1. Explicit override (user passed --model flag)
 *   2. Ollama (local, fast, free) — if running
 *   3. GitHub Models — if token present
 *   4. Gemini — if API key present
 *   5. OpenAI — if API key present
 *   6. Fail with clear instructions
 *
 * The router probes each adapter's availability before selecting.
 * This means a developer with zero API keys but Ollama installed
 * gets a fully working agent out of the box.
 */
export declare class LlmRouter {
    private config;
    private adapters;
    private selected;
    constructor(config: AgentConfig);
    /**
     * Build all adapters from config and probe for availability.
     * Returns the selected adapter, or throws if none are available.
     */
    resolve(forceProvider?: string): Promise<LlmAdapter>;
    /**
     * Get the currently selected adapter (after resolve())
     */
    getSelected(): LlmAdapter | null;
    /**
     * Get a summary of all adapter statuses (for diagnostics)
     */
    diagnose(): Promise<Array<{
        name: string;
        provider: string;
        available: boolean;
    }>>;
    /**
     * Build adapter instances from config in priority order
     */
    private buildAdapters;
}
//# sourceMappingURL=llm-router.d.ts.map