import { Operation } from "@myycontext/core";
import { OperationContext, PruningStrategy, CompressionOptions } from "@myycontext/core/src/types/operation-context";
/**
 * Context diff: Shows what was included vs excluded
 */
export interface ContextDiff {
    included: string[];
    excluded: string[];
    pruned: string[];
    compressed: string[];
    totalSizeKB: number;
    budgetKB: number;
    budgetUtilization: number;
}
/**
 * ContextOptimizer Service
 * Provides minimal, targeted context for operations
 */
export declare class ContextOptimizer {
    private baseDir;
    private importCache;
    private dependentCache;
    constructor(baseDir?: string);
    /**
     * Get optimized context for an operation
     */
    getContext(op: Operation, strategy?: PruningStrategy): Promise<OperationContext>;
    /**
     * Get context diff report
     */
    getContextDiff(op: Operation, strategy?: PruningStrategy): Promise<ContextDiff>;
    /**
     * Compress file content
     */
    compressContent(content: string, filePath: string, options?: CompressionOptions): string;
    /**
     * Clear caches
     */
    clearCaches(): void;
    /**
     * Get requirement for operation (with param-specific overrides)
     */
    private getRequirementForOperation;
    /**
     * Gather files based on requirement and strategy
     */
    private gatherFiles;
    /**
     * Build file context
     */
    private buildFileContext;
    /**
     * Get all possible files (for diff calculation)
     */
    private getAllPossibleFiles;
    /**
     * Prune files to fit budget
     */
    private pruneToFitBudget;
    /**
     * Glob files
     */
    private globFiles;
    /**
     * Extract imports from file
     */
    private extractImports;
    /**
     * Extract exports from file
     */
    private extractExports;
    /**
     * Find dependents (files that import this file)
     */
    private findDependents;
    /**
     * Find test files for a source file
     */
    private findTestFiles;
    /**
     * Gather imports recursively
     */
    private gatherImports;
    /**
     * Gather dependents
     */
    private gatherDependents;
    /**
     * Check if file is excluded
     */
    private isExcluded;
    /**
     * Get compression options for strategy
     */
    private getCompressionOptions;
    /**
     * Build metadata
     */
    private buildMetadata;
}
//# sourceMappingURL=ContextOptimizer.d.ts.map