/// <reference types="node" />
import { EventEmitter } from "events";
import { ICompileMetrics, ICompileOptions, ICompileResult } from "@/types/compiler";
import { ICompileContext, ICompileContextDeps, ICompileContextOptions } from "./interfaces/ICompileContext";
import { IDependencyMap } from "@/types";
export declare class CompileContext extends EventEmitter implements ICompileContext {
    private readonly deps;
    isInitialized: boolean;
    private readonly debug;
    private readonly batchSize;
    private readonly includeMetrics;
    private startTime;
    private currentPhase?;
    readonly options: ICompileOptions;
    readonly stats: {
        startTime: string;
        endTime: string;
        duration: number;
        totalFiles: number;
        processedFiles: number;
        skippedFiles: number;
        totalTokens: number;
    };
    readonly dependencies: IDependencyMap;
    private metrics;
    constructor(deps: ICompileContextDeps, options?: ICompileContextOptions);
    initialize(): Promise<void>;
    cleanup(): void;
    private logDebug;
    private handleError;
    private updateMetrics;
    private resetMetrics;
    private emitProgress;
    private executePhase;
    compile(options: ICompileOptions): Promise<ICompileResult>;
    private processRequiredFiles;
    private loadFileContents;
    getMetrics(): ICompileMetrics;
    private generateOutput;
    private validateOutput;
    private generateMetricsReport;
}
