export interface ContextFile {
    path: string;
    relativePath: string;
    content: string;
    mtime: number;
    size: number;
    language?: string;
}
export interface ContextLoaderOptions {
    patterns?: string[];
    excludePatterns?: string[];
    respectGitignore?: boolean;
    maxFileSize?: number;
    maxTotalSize?: number;
    includeHidden?: boolean;
    compressWhitespace?: boolean;
    removeLockFiles?: boolean;
    removeComments?: boolean;
}
export declare class ContextLoader {
    private workingDirectory;
    private options;
    private gitignore;
    private gitignoreLoaded;
    constructor(workingDirectory?: string, options?: ContextLoaderOptions);
    private ensureGitignoreLoaded;
    private loadGitignore;
    private shouldIgnore;
    private matchPattern;
    loadFiles(patterns?: string[]): Promise<ContextFile[]>;
    private isLockFile;
    private compressWhitespace;
    private formatBytes;
    static parsePatternString(patternStr: string): {
        include: string[];
        exclude: string[];
    };
    formatForPrompt(files: ContextFile[]): string;
    getSummary(files: ContextFile[]): string;
}
export declare function getContextLoader(workingDirectory?: string, options?: ContextLoaderOptions): ContextLoader;
export declare function resetContextLoader(): void;
