interface FsLike { readdir(dir: string, options: { withFileTypes: true; }): Promise; lstat(file: string): Promise; readlink(file: string): Promise; stat(file: string): Promise; rm(file: string, options: { force: true; }): Promise; unlink?(file: string): Promise; } interface DirentLike { name: string; isDirectory(): boolean; isSymbolicLink(): boolean; } interface StatsLike { isSymbolicLink(): boolean; } export interface StalePluginRuntimeSymlink { readonly name: string; readonly path: string; readonly target: string; } export interface PluginRuntimeSymlinkOptions { readonly fs?: FsLike; readonly staleRoots?: readonly string[]; } export declare function collectStalePluginRuntimeSymlinks(packageRoot: string | null | undefined, options?: PluginRuntimeSymlinkOptions): Promise; export declare function noteStalePluginRuntimeSymlinks(packageRoot: string | null | undefined, options?: PluginRuntimeSymlinkOptions & { readonly noteFn?: (message: string, title?: string) => void; readonly shortenPath?: (value: string) => string; }): Promise; export declare function removeStalePluginRuntimeSymlinks(packageRoot: string | null | undefined, options?: PluginRuntimeSymlinkOptions): Promise<{ changes: string[]; warnings: string[]; }>; export {};