import { type EmbeddingInput } from "./embedding-inputs.js"; import { type MemoryMultimodalModality, type MemoryMultimodalSettings } from "./multimodal.js"; export { hashText } from "./hash.js"; export type MemoryFileEntry = { path: string; absPath: string; mtimeMs: number; size: number; hash: string; dataHash?: string; kind?: "markdown" | "multimodal"; contentText?: string; modality?: MemoryMultimodalModality; mimeType?: string; }; export type MemoryChunk = { startLine: number; endLine: number; text: string; hash: string; embeddingInput?: EmbeddingInput; }; export type MultimodalMemoryChunk = { chunk: MemoryChunk; structuredInputBytes: number; }; export declare function ensureDir(dir: string): string; export declare function normalizeRelPath(value: string): string; export declare function normalizeExtraMemoryPaths(workspaceDir: string, extraPaths?: string[]): string[]; export declare function isMemoryPath(relPath: string): boolean; export declare function listMemoryFiles(workspaceDir: string, extraPaths?: string[], multimodal?: MemoryMultimodalSettings): Promise; export declare function buildFileEntry(absPath: string, workspaceDir: string, multimodal?: MemoryMultimodalSettings): Promise; export declare function buildMultimodalChunkForIndexing(entry: Pick): Promise; export declare function chunkMarkdown(content: string, chunking: { tokens: number; overlap: number; }): MemoryChunk[]; /** * Remap chunk startLine/endLine from content-relative positions to original * source file positions using a lineMap. Each entry in lineMap gives the * 1-indexed source line for the corresponding 0-indexed content line. * * This is used for session JSONL files where buildSessionEntry() flattens * messages into a plain-text string before chunking. Without remapping the * stored line numbers would reference positions in the flattened text rather * than the original JSONL file. */ export declare function remapChunkLines(chunks: MemoryChunk[], lineMap: number[] | undefined): void; export declare function parseEmbedding(raw: string): number[]; export declare function cosineSimilarity(a: number[], b: number[]): number; export declare function runWithConcurrency(tasks: Array<() => Promise>, limit: number): Promise;