import { ChatMessage, ToolDefinition, AgentConfig, SSEEvent } from './types';
import { IterationBudget } from './iteration-budget';
import { ApiMode } from './utils';
export declare class PureAgent {
    readonly baseUrl: string;
    readonly apiKey: string;
    readonly model: string;
    readonly maxIterations: number;
    maxTokens: number;
    readonly temperature: number;
    readonly workingDir: string;
    readonly contextWindow: number;
    readonly apiMode: ApiMode;
    readonly customHeaders?: Record<string, string>;
    readonly extraBody?: Record<string, any>;
    readonly fallbacks: import('./types').FallbackEntry[];
    private _fallbackIndex;
    readonly refreshTokenCallback?: () => Promise<{
        apiKey: string;
        baseUrl?: string;
    } | null>;
    systemMessage?: string;
    readonly sessionId: string;
    tools: ToolDefinition[];
    validToolNames: Set<string>;
    _cachedSystemPrompt: string | null;
    _interruptRequested: boolean;
    _abortController: AbortController;
    toolApprovalCallback?: AgentConfig['toolApprovalCallback'];
    streamDeltaCallback?: AgentConfig['streamDeltaCallback'];
    statusCallback?: AgentConfig['statusCallback'];
    private _sessionStore;
    private _logger;
    private _closed;
    readonly iterationBudget: IterationBudget;
    private _totalInputTokens;
    private _totalOutputTokens;
    private _turnCount;
    constructor(config: AgentConfig);
    runConversation(userMessage: string | any[], options?: {
        conversationHistory?: ChatMessage[];
        systemMessage?: string;
    }): AsyncGenerator<SSEEvent>;
    interrupt(): void;
    close(): void;
    get hasFallback(): boolean;
    tryActivateFallback(): boolean;
    tryRefreshAuth(): Promise<boolean>;
    resetSessionState(): void;
    getSessionInfo(): Record<string, any>;
    getConversationHistory(): ChatMessage[];
    static fromConversation(sessionId: string, config: AgentConfig): PureAgent;
}
//# sourceMappingURL=pure-agent.d.ts.map