/**
 * Agent SDK
 *
 * Programmatic API for embedding Code Buddy as an agent in other applications.
 */
export interface AgentSDKConfig {
    model?: string;
    tools?: string[];
    maxTurns?: number;
    systemPrompt?: string;
}
export interface AgentSDKResult {
    success: boolean;
    output: string;
    toolCalls: number;
    cost: number;
}
export interface SDKStreamEvent {
    type: 'text' | 'tool_use' | 'tool_result' | 'done';
    data: unknown;
}
export interface SDKToolDefinition {
    name: string;
    description: string;
    parameters: Record<string, unknown>;
    execute: (input: Record<string, unknown>) => Promise<string>;
}
export declare class AgentSDK {
    private config;
    private customTools;
    constructor(config?: AgentSDKConfig);
    /**
     * Run agent loop with a prompt (returns final result)
     */
    run(prompt: string): Promise<AgentSDKResult>;
    /**
     * Run agent loop with streaming events
     */
    runStreaming(prompt: string): AsyncGenerator<SDKStreamEvent>;
    /**
     * Register a custom tool
     */
    addTool(definition: SDKToolDefinition): void;
    /**
     * Remove a custom tool
     */
    removeTool(name: string): boolean;
    /**
     * List all available tools (built-in + custom)
     */
    getTools(): string[];
    /**
     * Update system prompt
     */
    setSystemPrompt(prompt: string): void;
    /**
     * Get current configuration
     */
    getConfig(): AgentSDKConfig;
}
export declare function createAgent(config?: AgentSDKConfig): AgentSDK;
