import type { AgentState } from "./state";
import type { AgentConfig } from "./agent-config";
import type { FsmCallbacks } from "./fsm";
export interface AgentRunOptions {
    /** The goal to accomplish */
    goal: string;
    /** Override the LLM provider (e.g., "ollama", "gemini", "openai", "github") */
    provider?: string;
    /** Override the model name */
    model?: string;
    /** Maximum ReAct loop iterations (default: from config, fallback: 3) */
    maxIterations?: number;
    /** If true, show verbose reasoning traces */
    verbose?: boolean;
    /** Callbacks for the FSM lifecycle (used by CLI for rendering) */
    callbacks?: FsmCallbacks;
}
export interface AgentResult {
    success: boolean;
    summary: string;
    state: AgentState;
    llmProvider: string;
    totalIterations: number;
    durationMs: number;
}
/**
 * UsoAgent — The public API for the USO AI Agent.
 *
 * Usage:
 * ```typescript
 * const agent = new UsoAgent();
 * const result = await agent.run({ goal: "Deploy my staking program" });
 * ```
 */
export declare class UsoAgent {
    private config;
    constructor(config?: AgentConfig);
    /**
     * Run the agent to accomplish a goal.
     */
    run(options: AgentRunOptions): Promise<AgentResult>;
    /**
     * Diagnose available LLM providers (for `uso doctor`).
     */
    diagnoseLlm(): Promise<Array<{
        name: string;
        provider: string;
        available: boolean;
    }>>;
    /**
     * Build the tool registry with all built-in tools.
     */
    private buildToolRegistry;
}
//# sourceMappingURL=agent.d.ts.map