import { ETagCacheService } from './etag-cache.service';
import { ApplicationStateService } from '../../application-state/application-state.service';
export type CacheableEntityType = 'session' | 'session_input' | 'ai_action' | 'execution_log' | 'context_template' | 'system_prompt' | 'custom_snippet' | 'context_snippet' | 'custom_variable' | 'project' | 'tool_hook' | 'mcp_config' | 'sub_agent' | 'application_state' | 'llm_call_log';
export interface InvalidationContext {
    sessionId?: string;
    isActive?: boolean;
    isDefaultChanged?: boolean;
    stateKey?: string;
}
export declare class CacheInvalidationService {
    private readonly etagCacheService;
    private readonly applicationStateService;
    private readonly logger;
    private static instance;
    constructor(etagCacheService: ETagCacheService, applicationStateService: ApplicationStateService);
    static getInstance(): CacheInvalidationService | null;
    invalidateEntity(entityType: CacheableEntityType, context?: InvalidationContext): Promise<void>;
    private getPatternsForEntity;
    private getSessionPatterns;
    private getSessionInputPatterns;
    private getAIActionPatterns;
    private getExecutionLogPatterns;
    private getContextTemplatePatterns;
    private getSystemPromptPatterns;
    private getProjectPatterns;
    private getApplicationStatePatterns;
    private checkIfActiveSession;
    invalidateEntities(entities: Array<{
        type: CacheableEntityType;
        context: InvalidationContext;
    }>): Promise<void>;
}
