/**
 * 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<LoadFileResult>;
    /**
     * 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<Map<string, string>>;
    /**
     * Detect environment characteristics
     */
    detectEnvironment(workingDirectory: string): EnvironmentInfo;
    /**
     * Watch files for changes
     */
    watchFiles(baseDir: string, callback: FileChangeCallback): FileWatcher | null;
}
