import { CloneDirectoryInfo, CloneOptions, DirectoryManager } from "./DirectoryManager"; /** * Directory manager that creates temporary directories in the system * temporary directory. It cleans them up after two hours or on * program exit, if possible. The class only creates a single * instance of itself. * * It uses tmp-promise (built on tmp) to create clean temporary * directories to work with git projects from remotes */ declare class CleaningTmpDirectoryManager implements DirectoryManager { readonly root: string; readonly prefix: string; private readonly reapInterval; private readonly maxAge; private readonly instance; private initialized; constructor(); /** * Create a temporary directory for the provided repository. */ directoryFor(owner: string, repo: string, branch: string, opts: CloneOptions): Promise; /** * Initialize object, creating interval for cleanup and * registering shutdown hook. */ private initialize; private cleanup; /** * Remove temporary directories created by this object that pass * the filter. All operations of this method are wrapped in a * try/catch block to make it safe for use in timers and * intervals, although the return value will be ignored in those * cases. * * @param filter If this returns `true` when passed the basename of the temporary directory, the directory will be deleted * @return 0 if succesful, 1 otherwise */ reap(filter?: (d: string) => boolean): Promise; /** * Filter for reap that performs no filtering, everything gets * deleted. */ noFilter(d: string): boolean; /** * Filter directory on age. The returned function returns true if * the age of its argument, as determined by the stat mtime, is * greater than the old, which defaults to 2 hours. * * @param old Age beyond which `true` will be returned * @param now Time to consider the current time, defaults to `Date.now()` */ ageFilter(old?: number, now?: number): (d: string) => boolean; } /** * Singleton instance of [[CleaningTmpDirectoryManager]]. */ export declare const TmpDirectoryManager: CleaningTmpDirectoryManager; export {}; //# sourceMappingURL=tmpDirectoryManager.d.ts.map