import { EventEmitter } from 'eventemitter3';
import { CognitivePreferences } from '@neuroadapt/core';
import { AIAdapter, AIResponse, AIStreamChunk, PredictableAIConfig, PredictableAIEvents, UndoState, AICompletionOptions } from '../types/index.js';

export declare class PredictableAI extends EventEmitter<PredictableAIEvents> {
    private adapter;
    private config;
    private undoHistory;
    private currentStep;
    private cache;
    constructor(adapter: AIAdapter, config?: Partial<PredictableAIConfig>);
    complete(prompt: string, options?: AICompletionOptions): Promise<AIResponse>;
    stream(prompt: string, options?: AICompletionOptions): AsyncIterable<AIStreamChunk>;
    updateConfig(newConfig: Partial<PredictableAIConfig>): void;
    updateFromCognitivePreferences(preferences: CognitivePreferences): void;
    undo(): UndoState | null;
    redo(): UndoState | null;
    canUndo(): boolean;
    canRedo(): boolean;
    getUndoHistory(): UndoState[];
    clearUndoHistory(): void;
    clearCache(): void;
    getConfig(): PredictableAIConfig;
    private prepareMessages;
    private createSystemPrompt;
    private enhanceOptions;
    private addToUndoHistory;
    private getCacheKey;
    private applyPacing;
    private mergeDefaultConfig;
}
//# sourceMappingURL=predictable-ai.d.ts.map