import { EventEmitter } from 'events';
import { ILogger, IAIProvider, ExecutionOptions, StreamedResponse } from './types';
import { Middleware } from './types/middleware';
export declare class AIAssistant extends EventEmitter {
    private logger;
    private options;
    private state;
    private history;
    private context;
    private taskExecutor;
    private tools;
    private prompts;
    private provider;
    private providerInitializer;
    private toolAndPromptLoader;
    private middlewares;
    constructor(logger: ILogger, options?: ExecutionOptions & {
        maxHistoryLength?: number;
        initialWorkingDirectory?: string;
        providerName?: string;
        toolsPath?: string;
        promptsPath?: string;
    });
    initialize(): Promise<void>;
    private initializeProvider;
    private initializeToolsAndPrompts;
    processRequest(input: string): Promise<string>;
    processRequestStream(input: string): AsyncIterableIterator<string>;
    processRequestStreamWithDetails(input: string): AsyncIterableIterator<StreamedResponse>;
    updateWorkingDirectory(newWorkingDirectory: string): void;
    getProvider(): IAIProvider;
    addMiddleware(middleware: Middleware): void;
}
