import MagicString from 'magic-string';
export type SourceMapInfo = {
    f: string;
    s: string;
};
export declare class CompilerContext {
    inFilepath: string;
    outFilepath: string;
    tmpDir: string;
    debugIntermediateFilesDir: string | undefined;
    sourceMaps: SourceMapInfo[];
    moduleMode: boolean;
    enableStackTraces: boolean;
    excludeSources: boolean;
    compilerPipelineSteps: CompilerPipelineStep[];
    constructor(input: string, tmpDir: string, debugIntermediateFilesDir: string | undefined, moduleMode: boolean, enableStackTraces: boolean, excludeSources: boolean);
    addCompilerPipelineStep(step: CompilerPipelineStep): void;
    applyCompilerPipeline(): Promise<void>;
    magicStringWriter(filename: string, fn: (magicString: MagicString, source: string) => void | Promise<void>): Promise<void>;
    maybeWriteDebugIntermediateFile(outFilename: string): Promise<void>;
    maybeWriteDebugIntermediateSourceMapFile(outFilename: string): Promise<void>;
    maybeWriteDebugIntermediateFiles(outFilename: string): Promise<void>;
}
export type CompilerPipelineStep = {
    outFilename: string;
    fn: (this: CompilerPipelineStep, args: CompilerContext, index: number) => void | PromiseLike<void>;
};
