import * as d from '../../declarations';
import { BuildEvents } from '../events';
/**
 * The CompilerCtx is a persistent object that's reused throughout
 * all builds and rebuilds. The data within this object is used
 * for in-memory caching, and can be reset, but the object itself
 * is always the same.
 */
export declare class CompilerContext implements d.CompilerCtx {
    activeBuildId: number;
    activeFilesAdded: string[];
    activeFilesDeleted: string[];
    activeFilesUpdated: string[];
    activeDirsAdded: string[];
    activeDirsDeleted: string[];
    cache: d.Cache;
    cachedStyleMeta: Map<string, d.StyleCompiler>;
    collections: d.CollectionCompilerMeta[];
    compilerOptions: any;
    events: BuildEvents;
    fs: d.InMemoryFileSystem;
    fsWatcher: d.FsWatcher;
    hasFsWatcherEvents: boolean;
    hasLoggedServerUrl: boolean;
    hasSuccessfulBuild: boolean;
    isActivelyBuilding: boolean;
    lastBuildHadError: boolean;
    lastBuildResults: d.BuildResults;
    lastBuildStyles: Map<string, string>;
    lastComponentStyleInput: Map<string, string>;
    lazyModuleRollupCache: any;
    localPrerenderServer: any;
    moduleMap: d.ModuleMap;
    nodeMap: WeakMap<object, any>;
    resolvedCollections: Set<string>;
    rootTsFiles: string[];
    tsService: d.TsService;
    constructor(config: d.Config);
    reset(): void;
}
export declare function getModule(config: d.Config, compilerCtx: d.CompilerCtx, sourceFilePath: string): d.Module;
export declare function resetModule(moduleFile: d.Module): void;
