/**
 * Predicate used by upload tarball builders to skip editor swap files, OS junk,
 * Nori-local download metadata, and dependency/build "bloat" directories
 * (node_modules, .venv, and Rust target dirs) so that those files do not
 * contribute to the registry's content hash.
 */
/**
 * Collect the set of directories that contain a `Cargo.toml` manifest.
 *
 * The returned directory keys are forward-slash joined relative paths (the
 * empty string represents the repository root). A Rust `target/` directory is
 * only treated as build output when its parent directory is present in this
 * set.
 *
 * @param args - The function arguments
 * @param args.relativePaths - All relative file paths in the package
 *
 * @returns Set of directories (relative, forward-slash joined) holding a Cargo.toml
 */
export declare const collectCargoManifestDirs: (args: {
    relativePaths: ReadonlyArray<string>;
}) => Set<string>;
/**
 * Whether a file should be excluded from upload tarballs.
 *
 * @param args - The function arguments
 * @param args.relativePath - The file's path relative to the package root.
 *   Both `/` and `\` separators are accepted.
 * @param args.cargoManifestDirs - Directories known to contain a Cargo.toml,
 *   as produced by {@link collectCargoManifestDirs}. Used to decide whether a
 *   `target/` directory is Rust build output. When omitted, no `target/`
 *   directory is excluded.
 *
 * @returns true if the file should be skipped during tarball construction
 */
export declare const shouldExcludeFromUpload: (args: {
    relativePath: string;
    cargoManifestDirs?: ReadonlySet<string> | null;
}) => boolean;
//# sourceMappingURL=uploadFileFilter.d.ts.map