/**
 * Isolated Memory
 *
 * Provides memory isolation for agents with scoped access
 * to memories based on agent ID.
 */
import type { MemoryEntry, MemoryType, MemorySearchOptions } from '../../memory/enhanced-memory.js';
/**
 * Memory scope
 */
export type MemoryScope = 'agent' | 'shared' | 'global';
/**
 * Scoped memory entry
 */
export interface ScopedMemoryEntry extends MemoryEntry {
    /** Agent ID (for agent-scoped memories) */
    agentId?: string;
    /** Memory scope */
    scope: MemoryScope;
}
/**
 * Isolated memory configuration
 */
export interface IsolatedMemoryConfig {
    /** Agent ID */
    agentId: string;
    /** Whether to include shared memories */
    includeShared: boolean;
    /** Whether to include global memories */
    includeGlobal: boolean;
    /** Maximum memories to return per query */
    maxResults: number;
}
/**
 * Default isolated memory configuration
 */
export declare const DEFAULT_ISOLATED_MEMORY_CONFIG: Omit<IsolatedMemoryConfig, 'agentId'>;
/**
 * Provides isolated memory access for an agent
 */
export declare class IsolatedMemory {
    private agentId;
    private config;
    constructor(agentId: string, config?: Partial<IsolatedMemoryConfig>);
    /**
     * Store a memory scoped to this agent
     */
    store(options: {
        type: MemoryType;
        content: string;
        summary?: string;
        importance?: number;
        tags?: string[];
        metadata?: Record<string, unknown>;
        scope?: MemoryScope;
    }): Promise<ScopedMemoryEntry>;
    /**
     * Recall memories with agent scoping
     */
    recall(options?: Partial<MemorySearchOptions>): Promise<ScopedMemoryEntry[]>;
    /**
     * Check if agent has access to a memory
     */
    private hasAccess;
    /**
     * Annotate memory with scope info
     */
    private annotateWithScope;
    /**
     * Forget a memory (only if owned by this agent)
     */
    forget(memoryId: string): Promise<boolean>;
    /**
     * Get memory statistics for this agent
     */
    getStats(): Promise<{
        agentMemories: number;
        sharedMemories: number;
        globalMemories: number;
        total: number;
    }>;
    /**
     * Share a memory with other agents
     */
    shareMemory(memoryId: string): Promise<boolean>;
    /**
     * Get agent ID
     */
    getAgentId(): string;
    /**
     * Update configuration
     */
    updateConfig(config: Partial<IsolatedMemoryConfig>): void;
}
/**
 * Get or create IsolatedMemory for an agent
 */
export declare function getIsolatedMemory(agentId: string, config?: Partial<IsolatedMemoryConfig>): IsolatedMemory;
/**
 * Reset IsolatedMemory instance for an agent
 */
export declare function resetIsolatedMemory(agentId: string): void;
/**
 * Reset all IsolatedMemory instances
 */
export declare function resetAllIsolatedMemory(): void;
