/** * Prompt Loader - Handles reading prompt files from disk with compression support */ export interface LoadFileResult { success: boolean; content: string; error: string | null; } export interface EnvironmentInfo { isGitRepository: boolean; isSandboxed: boolean; hasIdeCompanion: boolean; } export interface FileWatcher { stop(): void; } export type FileChangeCallback = (eventType: string, relativePath: string) => void; /** * PromptLoader handles file I/O operations for prompt configuration files */ export declare class PromptLoader { private baseDir; private static readonly MAX_FILE_SIZE; constructor(baseDir: string); /** * Load a single file with optional compression */ loadFile(filePath: string, shouldCompress: boolean): Promise; /** * Check if content contains invalid UTF-8 sequences */ private containsInvalidUtf8; /** * Compress content according to prompt configuration rules */ compressContent(content: string): string; /** * Load multiple files and return a map of path to content */ loadAllFiles(baseDir: string, fileList: string[], shouldCompress: boolean): Promise>; /** * Detect environment characteristics */ detectEnvironment(workingDirectory: string): EnvironmentInfo; /** * Watch files for changes */ watchFiles(baseDir: string, callback: FileChangeCallback): FileWatcher | null; }