import { z } from 'zod';
import type { ObjectId } from 'mongodb';
export declare const CORE_MEMORY_NAMES: readonly ["projectbrief", "productContext", "activeContext", "systemPatterns", "techContext", "progress", "codebaseMap"];
export type CoreMemoryName = typeof CORE_MEMORY_NAMES[number];
export interface MemoryDocument {
    _id?: ObjectId;
    projectId: string;
    memoryName: CoreMemoryName;
    content: string;
    contentVector?: number[];
    metadata: {
        version: number;
        lastModified: Date;
        accessCount: number;
    };
    createdAt: Date;
    updatedAt: Date;
}
export declare const MEMORY_HIERARCHY: {
    readonly projectbrief: {
        readonly dependsOn: readonly [];
        readonly description: "Foundation document that shapes all other files";
    };
    readonly productContext: {
        readonly dependsOn: readonly ["projectbrief"];
        readonly description: "Why this project exists and who needs it";
    };
    readonly systemPatterns: {
        readonly dependsOn: readonly ["projectbrief"];
        readonly description: "System architecture and design patterns";
    };
    readonly techContext: {
        readonly dependsOn: readonly ["projectbrief"];
        readonly description: "Technologies and development setup";
    };
    readonly activeContext: {
        readonly dependsOn: readonly ["productContext", "systemPatterns", "techContext"];
        readonly description: "Current work focus and learnings";
    };
    readonly progress: {
        readonly dependsOn: readonly ["activeContext"];
        readonly description: "What works and what's left to build";
    };
    readonly codebaseMap: {
        readonly dependsOn: readonly ["projectbrief"];
        readonly description: "Directory structure and searchable code embeddings";
    };
};
export declare const InitToolSchema: z.ZodObject<{
    projectPath: z.ZodOptional<z.ZodString>;
    projectName: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const ReadAllToolSchema: z.ZodObject<{
    projectPath: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const ReadToolSchema: z.ZodObject<{
    memoryName: z.ZodEnum<{
        projectbrief: "projectbrief";
        productContext: "productContext";
        activeContext: "activeContext";
        systemPatterns: "systemPatterns";
        techContext: "techContext";
        progress: "progress";
        codebaseMap: "codebaseMap";
    }>;
    projectPath: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const UpdateToolSchema: z.ZodObject<{
    memoryName: z.ZodEnum<{
        projectbrief: "projectbrief";
        productContext: "productContext";
        activeContext: "activeContext";
        systemPatterns: "systemPatterns";
        techContext: "techContext";
        progress: "progress";
        codebaseMap: "codebaseMap";
    }>;
    content: z.ZodString;
    projectPath: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const SearchToolSchema: z.ZodObject<{
    query: z.ZodString;
    projectPath: z.ZodOptional<z.ZodString>;
    limit: z.ZodDefault<z.ZodNumber>;
    codeSearch: z.ZodOptional<z.ZodEnum<{
        similar: "similar";
        implements: "implements";
        uses: "uses";
        pattern: "pattern";
    }>>;
    filePath: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export interface ProjectConfig {
    projectId: string;
    projectPath: string;
    name: string;
    createdAt: Date;
    memoryVersion: string;
}
export declare const CLINE_PRINCIPLE = "I MUST read ALL memory bank files at the start of EVERY task - this is not optional.";
export interface CodeChunk {
    _id?: ObjectId;
    projectId: string;
    codebaseMapId: ObjectId;
    filePath: string;
    lastModified: Date;
    chunk: {
        type: 'function' | 'class' | 'method' | 'module' | 'block';
        name?: string;
        signature?: string;
        content: string;
        context: string;
        startLine: number;
        endLine: number;
    };
    contentVector: number[];
    searchableText: string;
    metadata: {
        complexity?: number;
        dependencies: string[];
        exports: string[];
        patterns: string[];
        size: number;
    };
    createdAt: Date;
    updatedAt: Date;
}
export declare const SyncCodeSchema: z.ZodObject<{
    projectPath: z.ZodOptional<z.ZodString>;
    patterns: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
    minChunkSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    forceRegenerate: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    includeTests: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, z.core.$strip>;
//# sourceMappingURL=memory-v5.d.ts.map