import { Observable } from 'rxjs';
import { AIAgentRunEntity, AIAgentRunStepEntity, ActionExecutionLogEntity, AIPromptRunEntity } from '@memberjunction/core-entities';
export interface AgentRunData {
    steps: AIAgentRunStepEntity[];
    subRuns: AIAgentRunEntity[];
    actionLogs: ActionExecutionLogEntity[];
    promptRuns: AIPromptRunEntity[];
}
/**
 * Helper class for managing AI Agent Run data per component instance
 * No longer a singleton Angular service - instantiated per component
 */
export declare class AIAgentRunDataHelper {
    private stepsSubject$;
    private subRunsSubject$;
    private actionLogsSubject$;
    private promptRunsSubject$;
    private loadingSubject$;
    private errorSubject$;
    steps$: Observable<AIAgentRunStepEntity[]>;
    subRuns$: Observable<AIAgentRunEntity[]>;
    actionLogs$: Observable<ActionExecutionLogEntity[]>;
    promptRuns$: Observable<AIPromptRunEntity[]>;
    loading$: Observable<boolean>;
    error$: Observable<string | null>;
    private readonly MAX_CACHE_SIZE;
    private readonly CACHE_TTL_MS;
    private subAgentDataCache;
    private cacheAccessOrder;
    private currentAgentRunId;
    constructor();
    /**
     * Load all data for an agent run
     */
    loadAgentRunData(agentRunId: string, forceReload?: boolean): Promise<void>;
    private loadStepsAndSubRuns;
    /**
     * Load sub-agent data (for expanding sub-agent nodes)
     */
    loadSubAgentData(subAgentRunId: string): Promise<{
        steps: AIAgentRunStepEntity[];
        promptRuns: AIPromptRunEntity[];
    }>;
    /**
     * Clear all data
     */
    clearData(): void;
    /**
     * Clear just the cache for the current agent run
     */
    clearCurrentRunCache(): void;
    /**
     * Clear entire cache
     */
    private clearCache;
    /**
     * Update cache access order for LRU eviction
     */
    private updateCacheAccessOrder;
    /**
     * Remove a cache entry
     */
    private removeCacheEntry;
    /**
     * Get cache statistics for monitoring
     */
    getCacheStats(): {
        size: number;
        maxSize: number;
        ttlMs: number;
        accessOrder: string[];
    };
    /**
     * Get current data snapshot
     */
    getCurrentData(): AgentRunData;
}
//# sourceMappingURL=ai-agent-run-data.service.d.ts.map