import type { AgentTool } from "@kenkaiiii/gg-agent";
export declare const MEMORY_SOFT_LIMIT = 60;
export declare const MEMORY_HARD_LIMIT = 90;
export declare const MEMORY_TEXT_LIMIT = 600;
export declare const MEMORY_CATEGORIES: readonly ["identity", "preference", "project", "relationship", "health", "other"];
export type MemoryCategory = (typeof MEMORY_CATEGORIES)[number];
export interface Memory {
    id: string;
    text: string;
    category: MemoryCategory;
    importance: number;
    createdAt: string;
    updatedAt: string;
}
export interface MemorySnapshot {
    memories: Memory[];
    softLimit: number;
    hardLimit: number;
}
export interface MemoryMutationResult {
    memory?: Memory;
    memories: Memory[];
    duplicateOf?: Memory;
    deleted?: boolean;
    forgotten?: number;
}
export interface MemoryStoreOptions {
    filePath?: string;
    onChange?: (snapshot: MemorySnapshot) => void | Promise<void>;
    now?: () => Date;
}
export declare class MemoryStore {
    readonly filePath: string;
    private readonly onChange?;
    private readonly now;
    constructor(options?: MemoryStoreOptions);
    list(): Promise<Memory[]>;
    snapshot(): Promise<MemorySnapshot>;
    remember(content: string, category?: MemoryCategory, importance?: number): Promise<MemoryMutationResult>;
    update(id: string, content: string, category?: MemoryCategory, importance?: number, forgetIds?: string[]): Promise<MemoryMutationResult>;
    forget(id: string): Promise<MemoryMutationResult>;
    renderForPrompt(): string;
    private mutate;
    private normalizeText;
    private normalizeImportance;
    private toSnapshot;
    private parse;
    private readFile;
    private readFileSync;
    private writeFile;
}
export declare function buildMemoryTools(store: MemoryStore): AgentTool[];
//# sourceMappingURL=memory.d.ts.map