/**
 * Vigthoria Project Memory Service
 *
 * Local-first project brain stored inside .vigthoria/memory. It keeps durable,
 * compact facts that can be retrieved for follow-up prompts without replaying
 * full chat history or noisy tool traces.
 */
import { ChatMessage } from './api.js';
export type ProjectMemoryType = 'fact' | 'decision' | 'task' | 'file' | 'preference' | 'validation' | 'issue';
export interface ProjectMemoryItem {
    id: string;
    type: ProjectMemoryType;
    text: string;
    tags: string[];
    source: string;
    createdAt: string;
    updatedAt: string;
    weight: number;
}
export interface ProjectMemoryBrain {
    version: 1;
    workspaceName: string;
    updatedAt: string;
    items: ProjectMemoryItem[];
}
interface RememberOptions {
    source?: string;
    mode?: string;
    model?: string;
    sessionSummary?: string;
}
export declare class ProjectMemoryService {
    private workspacePath;
    private memoryDir;
    private brainPath;
    constructor(workspacePath?: string);
    getMemoryDir(): string;
    loadBrain(): ProjectMemoryBrain;
    saveBrain(brain: ProjectMemoryBrain): void;
    remember(type: ProjectMemoryType, text: string, options?: RememberOptions): void;
    rememberConversation(messages: ChatMessage[], options?: RememberOptions): void;
    buildContextForPrompt(prompt: string): string;
    retrieveRelevantMemory(prompt: string, limit?: number): ProjectMemoryItem[];
    getStatus(): {
        memoryDir: string;
        itemCount: number;
        updatedAt: string;
        typeCounts: Record<string, number>;
    };
    private createItem;
    private inferUserMemoryType;
    private dedupeAndTrim;
    private writeMarkdownViews;
    private headingForType;
}
export {};
