/**
 * Anthropic Claude Provider
 *
 * Implements LLMProvider interface for Anthropic's Claude models.
 * Uses @anthropic-ai/sdk for API calls.
 */
import type { LLMProvider, AnalyzeOptions, AnalyzeResult, StructuredOptions } from '../types.js';
import { Logger } from '../../../utils/logger.js';
/**
 * Anthropic provider configuration
 */
export interface AnthropicProviderConfig {
    apiKey: string;
    model?: string;
    maxTokens?: number;
    temperature?: number;
    baseUrl?: string;
    logger?: Logger;
}
/**
 * Anthropic Claude provider implementation
 */
export declare class AnthropicProvider implements LLMProvider {
    readonly name: "anthropic";
    readonly defaultModel: string;
    private apiKey;
    private maxTokens;
    private temperature;
    private baseUrl;
    private logger;
    private client;
    constructor(config: AnthropicProviderConfig);
    /**
     * Get or create SDK client (lazy initialization)
     */
    private getClient;
    /**
     * Analyze text with Claude
     */
    analyze(prompt: string, options?: AnalyzeOptions): Promise<AnalyzeResult>;
    /**
     * Analyze with structured JSON output
     */
    analyzeStructured<T>(prompt: string, options: StructuredOptions<T>): Promise<{
        data: T;
        usage: AnalyzeResult['usage'];
        estimatedCost: number;
    }>;
    /**
     * Estimate cost for a request
     */
    estimateCost(inputTokens: number, outputTokens: number, model?: string): number;
    /**
     * Check if provider is available
     */
    isAvailable(): Promise<boolean>;
    /**
     * Get provider status
     */
    getStatus(): Promise<{
        available: boolean;
        latencyMs?: number;
        error?: string;
    }>;
}
//# sourceMappingURL=anthropic-provider.d.ts.map