/**
 * Interactive LLM Provider for SpecVerse
 * Outputs structured prompts for copy-pasting into web interfaces
 */
import { LLMProvider, LLMProviderConfig, LLMCompletionOptions, LLMCompletionResponse, LLMStreamChunk } from './llm-provider.js';
export interface InteractiveConfig extends LLMProviderConfig {
    interface?: 'chatgpt' | 'claude' | 'gemini' | 'generic';
    outputFile?: string;
    waitForInput?: boolean;
    formatInstructions?: boolean;
}
interface InteractiveSession {
    id: string;
    timestamp: string;
    interface: string;
    prompt: string;
    expectedResponse?: string;
    status: 'pending' | 'completed' | 'failed';
}
export declare class InteractiveProvider extends LLMProvider {
    private sessions;
    protected config: InteractiveConfig;
    constructor(config: InteractiveConfig);
    complete(options: LLMCompletionOptions): Promise<LLMCompletionResponse>;
    stream(options: LLMCompletionOptions): AsyncIterable<LLMStreamChunk>;
    test(): Promise<boolean>;
    getInfo(): {
        name: string;
        version: string;
        models: string[];
        capabilities: string[];
    };
    /**
     * Get active sessions
     */
    getSessions(): InteractiveSession[];
    /**
     * Mark session as completed with response
     */
    completeSession(sessionId: string, response: string): LLMCompletionResponse;
    /**
     * Format prompt for specific interface
     */
    private formatPromptForInterface;
    private formatForChatGPT;
    private formatForClaude;
    private formatForGemini;
    private formatGeneric;
    private addFormatInstructions;
    private outputPrompt;
    private waitForUserResponse;
    private parseUserResponse;
    private createInstructionalResponse;
    private generateSessionId;
    protected validateConfig(): void;
}
/**
 * Factory function to create Interactive provider
 */
export declare function createInteractiveProvider(config: {
    interface?: 'chatgpt' | 'claude' | 'gemini' | 'generic';
    outputFile?: string;
    waitForInput?: boolean;
    formatInstructions?: boolean;
}): InteractiveProvider;
export {};
//# sourceMappingURL=interactive-provider.d.ts.map