import { Tool } from '@anthropic-ai/sdk/resources/messages';
import { ExploreSubagentConfig, ExploreResult, ExploreSession, ExploreEvent } from './types.js';
import '../types-CtkD4o1_.js';
import '../tools/warp_grep/providers/types.js';
import '../tools/utils/resilience.js';

/**
 * Anthropic SDK adapter for Explore subagent
 */

/** Config for Anthropic SDK Explore subagent */
interface AnthropicExploreConfig extends ExploreSubagentConfig {
    /** Anthropic SDK client instance */
    client: AnthropicClient;
    /** Model name (e.g., 'claude-haiku-4-5-20251001') */
    model: string;
}
/** Minimal Anthropic client interface — avoids hard dependency on @anthropic-ai/sdk */
interface AnthropicClient {
    messages: {
        create(params: any): Promise<any>;
    };
}
/**
 * Create an Explore subagent using the Anthropic SDK
 */
declare function createExploreSubagent(config: AnthropicExploreConfig): {
    /** Anthropic Tool definition for use in parent agents */
    tool: Tool & {
        execute: (input: {
            searchRequest: string;
        }) => Promise<ExploreResult>;
        formatResult: (result: ExploreResult) => string;
    };
    /** Run exploration with messaging support */
    run(prompt: string): ExploreSession;
    /** Stream exploration events as an async generator */
    stream(prompt: string): AsyncGenerator<ExploreEvent, ExploreResult, undefined>;
};

export { type AnthropicExploreConfig, createExploreSubagent };
