import type { FileReferenceRegistry } from "./fileReferenceRegistry.js"; /** * Create file access tools bound to a FileReferenceRegistry instance. * * These tools follow the same pattern as the existing directAgentTools * (getCurrentTime, readFile, etc.) in src/lib/agent/directTools.ts. * They use NeuroLink's `tool()` helper from `../utils/tool.js` with Zod * parameter schemas. * * @param registry - The FileReferenceRegistry instance to bind to * @returns Record of tool name to tool definition * * @example * ```typescript * const registry = new FileReferenceRegistry(); * const tools = createFileTools(registry); * // tools.list_attached_files, tools.read_file_section, etc. * ``` */ export declare function createFileTools(registry: FileReferenceRegistry): { list_attached_files: import("ai").Tool, { success: boolean; message: string; fileCount: number; files?: undefined; formatted?: undefined; error?: undefined; } | { success: boolean; fileCount: number; files: { index: number; id: string; filename: string; type: import("../index.js").FileType; size: string; sizeBytes: number; sizeTier: import("../index.js").SizeTier; estimatedTokens: number; status: import("../index.js").FileReferenceStatus; hasPreview: boolean; hasSummary: boolean; totalLines: number | null; }[]; formatted: string; message?: undefined; error?: undefined; } | { success: boolean; error: string; message?: undefined; fileCount?: undefined; files?: undefined; formatted?: undefined; }>; read_file_section: import("ai").Tool<{ file_id: string; start_line: number; token_budget: number; end_line?: number | undefined; }, { success: boolean; error: string; content?: undefined; startLine?: undefined; endLine?: undefined; totalLines?: undefined; truncated?: undefined; estimatedTokens?: undefined; guidance?: undefined; } | { success: boolean; content: string; startLine: number; endLine: number; totalLines: number; truncated: boolean; estimatedTokens: number; guidance: string | undefined; error?: undefined; }>; search_in_file: import("ai").Tool<{ file_id: string; pattern: string; max_matches: number; }, { success: boolean; error: string; pattern?: undefined; totalMatches?: undefined; matchesReturned?: undefined; truncated?: undefined; matches?: undefined; } | { success: boolean; pattern: string; totalMatches: number; matchesReturned: number; truncated: boolean; matches: { lineNumber: number; line: string; context: { before: string[]; after: string[]; } | undefined; }[]; error?: undefined; }>; get_file_preview: import("ai").Tool<{ file_id: string; }, { success: boolean; error: string; filename?: undefined; type?: undefined; size?: undefined; sizeBytes?: undefined; sizeTier?: undefined; mimeType?: undefined; estimatedTokens?: undefined; status?: undefined; totalLines?: undefined; preview?: undefined; summary?: undefined; hasSummary?: undefined; } | { success: boolean; filename: string; type: import("../index.js").FileType; size: string; sizeBytes: number; sizeTier: import("../index.js").SizeTier; mimeType: string; estimatedTokens: number; status: import("../index.js").FileReferenceStatus; totalLines: number | null; preview: string; summary: string | null; hasSummary: boolean; error?: undefined; }>; extract_file_content: import("ai").Tool<{ file_id: string; start_time?: number | undefined; end_time?: number | undefined; frame_count?: number | undefined; pages?: number[] | undefined; page_range?: { start: number; end: number; } | undefined; sheet?: string | undefined; row_range?: { start: number; end: number; } | undefined; columns?: string[] | undefined; entry_path?: string | undefined; format?: "text" | "detailed" | "summary" | undefined; }, { success: false; error: string | undefined; text: string | undefined; metadata: Record | undefined; imageCount: number; _images: Buffer[] | undefined; } | { success: true; text: string | undefined; metadata: Record | undefined; imageCount: number; _images: Buffer[] | undefined; error: string | undefined; }>; };