import type { Problem } from "../problems.js";
import { DirVerificationResult } from "../utils.js";
export type PathIssue = "missing" | "not-directory" | "unreadable" | "unwritable" | "cross-platform-linking" | "linking-failed";
export type PathProblemCategory = "torrentDir" | "outputDir" | "injectDir" | "linkDirs" | "dataDirs";
export interface PathProblemDescriptor {
    category: PathProblemCategory;
    name: string;
    path: string;
    issue: PathIssue;
    message: string;
    severity: Problem["severity"];
}
export interface DirectoryAssessment {
    descriptor: PathProblemDescriptor | null;
    verification: DirVerificationResult;
}
export declare function buildPathProblem(descriptor: PathProblemDescriptor): Problem;
export declare function diagnoseDirForProblems(path: string, name: string, category: PathProblemCategory, options: {
    read?: boolean;
    write?: boolean;
}): Promise<DirectoryAssessment>;
export declare function collectPathProblems(): Promise<Problem[]>;
