/**
 * Find every `<cacheRoot>/<marketplace>/<pluginName>/` directory.
 *
 * Returns absolute paths, in `readdir` order. Pure read — no mutations.
 *
 * Quietly returns `[]` for any unsafe input (path-traversal in name, missing
 * cacheRoot, no marketplaces). Callers don't need to pre-validate.
 */
export declare function listOrphanPluginCacheDirs(pluginName: string, cacheRoot: string): string[];
export interface RemovalFailure {
    path: string;
    error: string;
}
export interface RemovalResult {
    removed: string[];
    failed: RemovalFailure[];
}
/**
 * Recursively remove each provided plugin cache directory. Each path is
 * re-validated against cacheRoot before deletion — defense in depth, since
 * the caller may have built the list from a different code path.
 */
export declare function removeOrphanPluginCacheDirs(paths: string[], cacheRoot: string): RemovalResult;
