import { MultiMediaMessage } from '@/ai/baml_client';
import { Observation, ObservationRetentionOptions, ObservationRole, ObservationSource } from './observation';
import { MultiMediaJson } from './serde';
export interface SerializedAgentMemory {
    instructions?: string;
    observations: {
        source: ObservationSource;
        role: ObservationRole;
        timestamp: number;
        data: MultiMediaJson;
        options?: ObservationRetentionOptions;
    }[];
}
export interface AgentMemoryOptions {
    instructions?: string | null;
    promptCaching?: boolean;
    thoughtLimit?: number;
}
export declare class AgentMemory {
    private options;
    private observations;
    private freezeMask?;
    private cacheControlIndices;
    constructor(options?: AgentMemoryOptions);
    get instructions(): string | null;
    render(): Promise<MultiMediaMessage[]>;
    isEmpty(): boolean;
    recordThought(content: string): void;
    recordObservation(obs: Observation): void;
    getLastThoughtMessage(): string | null;
    toJSON(): Promise<SerializedAgentMemory>;
    loadJSON(data: SerializedAgentMemory): Promise<void>;
}
