import { GitProject } from "@atomist/automation-client/lib/project/git/GitProject";
import { ProjectLoader, ProjectLoadingParameters, WithLoadedProject } from "../../spi/project/ProjectLoader";
/**
 * Caching implementation of ProjectLoader
 */
export declare class CachingProjectLoader implements ProjectLoader {
    private readonly delegate;
    private readonly cache;
    private readonly deleteOnExit;
    doWithProject<T>(params: ProjectLoadingParameters, action: WithLoadedProject<T>): Promise<T>;
    /**
     * Save project and run provided WithLoadedProject action on it.
     * @param delegate
     * @param params
     * @param action
     */
    private saveAndRunAction;
    /**
     * Eviction callback to clean up file system resources.
     * @param dir
     * @param reason
     */
    private cleanUp;
    constructor(delegate?: ProjectLoader, maxEntries?: number);
}
/**
 * Delegate to the underlying ProjectLoader to load the project.
 * @param pl
 * @param params
 */
export declare function save(pl: ProjectLoader, params: ProjectLoadingParameters): Promise<GitProject>;
//# sourceMappingURL=CachingProjectLoader.d.ts.map