import { DocumentGenerationParams, DocumentGenerationResult } from '../types/documentation-types.js';
/**
 * Service for generating documentation using AI providers via Vercel AI SDK
 *
 * This service implements document generation using the Vercel AI SDK to abstract
 * communication with different AI providers (Anthropic and OpenAI). It supports
 * both Claude (3.5 Sonnet, 3 Opus) and GPT (GPT-4o, GPT-4 Turbo) models.
 *
 * The Vercel AI SDK provides a unified interface for interacting with these models,
 * making it easy to switch between providers without changing the implementation logic.
 */
export declare class AIService {
    private apiToken;
    private provider;
    /**
     * Creates an instance of AIService
     * @param apiToken - API token for the AI service (Anthropic or OpenAI)
     * @param provider - AI provider to use ('anthropic' or 'openai')
     */
    constructor(apiToken: string, provider?: 'anthropic' | 'openai');
    /**
     * Generates documentation based on the provided parameters
     *
     * This method orchestrates the document generation process by:
     * 1. Determining which document types to generate based on the input
     * 2. Creating appropriate prompts for each document type
     * 3. Calling the AI provider to generate the content
     * 4. Packaging the generated content with metadata
     *
     * @param params - Parameters for document generation
     * @returns Promise resolving to the generation result
     * @throws {AIServiceError} When the AI service returns an error
     * @throws {GenerationFailedError} When document generation fails
     */
    generateDocumentation(params: DocumentGenerationParams): Promise<DocumentGenerationResult>;
    /**
     * Generate content using the selected AI provider via Vercel AI SDK
     *
     * This method acts as a router to direct the request to the appropriate
     * provider-specific implementation.
     *
     * @param prompt - Prompt for the AI
     * @param systemPrompt - System prompt to use
     * @returns Promise resolving to the generated content
     * @throws {AIServiceError} When the AI service returns an error
     */
    private generateWithAI;
    /**
     * Generate content using Anthropic Claude via AI SDK
     *
     * Uses the Vercel AI SDK's generateText function with the anthropic provider.
     * This implementation includes Claude's reasoning capabilities for improved
     * document generation quality.
     *
     * @param prompt - Prompt for Claude
     * @param systemPrompt - System prompt to use
     * @returns Promise resolving to the generated content
     * @throws {AIServiceError} When there's an error with the Anthropic API
     */
    private generateWithAnthropic;
    /**
     * Generate content using OpenAI models via AI SDK
     *
     * Uses the Vercel AI SDK's generateText function with the openai provider.
     * This implementation supports GPT-4o and GPT-4 Turbo models.
     *
     * @param prompt - Prompt for OpenAI
     * @param systemPrompt - System prompt to use
     * @returns Promise resolving to the generated content
     * @throws {AIServiceError} When there's an error with the OpenAI API
     */
    private generateWithOpenAI;
    /**
     * Gets the document types to generate based on the requested type
     * @param documentType - Requested document type
     * @returns Array of document types to generate
     */
    private getDocumentTypesToGenerate;
    /**
     * Gets the title for a document
     * @param documentType - Type of document
     * @param projectName - Name of the project
     * @returns Document title
     */
    private getDocumentTitle;
    /**
     * Gets a suggested filename for a document
     * @param documentType - Type of document
     * @param projectName - Name of the project
     * @returns Suggested filename
     */
    private getSuggestedFilename;
}
