/**
 * AI SDK Base Executor Service
 *
 * Abstract base class implementing IAgentExecutor using the Vercel AI SDK.
 * Handles all AI SDK interaction: generateText, streamText, generateObject,
 * response mapping, streaming conversion, error handling, timeout management,
 * and token usage extraction.
 *
 * Concrete subclasses only need to implement createModel() and set agentType.
 * This keeps provider-specific logic minimal (just provider construction).
 *
 * Following Clean Architecture:
 * - This file lives in infrastructure layer
 * - AI SDK imports are confined to this file and its subclasses
 * - Application and domain layers have zero knowledge of the Vercel AI SDK
 */
import type { LanguageModelV3 } from '@ai-sdk/provider';
import type { AgentType, AgentFeature } from '../../../../../domain/generated/output.js';
import type { IAgentExecutor, AgentExecutionOptions, AgentExecutionResult, AgentExecutionStreamEvent } from '../../../../../application/ports/output/agents/agent-executor.interface.js';
/**
 * Abstract base class for AI SDK-based executor services.
 *
 * Implements the IAgentExecutor interface by delegating to the Vercel AI SDK's
 * generateText, streamText, and generateObject functions. Concrete subclasses
 * provide the provider-specific LanguageModel via createModel().
 */
export declare abstract class AiSdkBaseExecutorService implements IAgentExecutor {
    private readonly apiKey;
    private readonly providerDisplayName;
    abstract readonly agentType: AgentType;
    constructor(apiKey: string, providerDisplayName: string);
    /**
     * Create a LanguageModel instance for the given model ID.
     * Subclasses construct the provider-specific model here.
     */
    protected abstract createModel(modelId?: string): LanguageModelV3;
    supportsFeature(feature: AgentFeature): boolean;
    execute(prompt: string, options?: AgentExecutionOptions): Promise<AgentExecutionResult>;
    executeStream(prompt: string, options?: AgentExecutionOptions): AsyncIterable<AgentExecutionStreamEvent>;
    /**
     * Execute with structured output via generateObject.
     * Routes here when options.outputSchema is provided.
     */
    private executeStructured;
    /**
     * Map AI SDK LanguageModelUsage to our AgentExecutionUsage.
     */
    private mapUsage;
    /**
     * Enhance errors with provider context for better diagnostics.
     * Never includes the API key in error messages.
     */
    private enhanceError;
}
//# sourceMappingURL=ai-sdk-base-executor.service.d.ts.map