import type { NormalizedManifest } from '@vltpkg/types'; import type { LoadedConfig } from './config/index.ts'; export type PackTarballResult = { name: string; version: string; filename: string; tarballName: string; tarballData: Buffer; unpackedSize: number; files: string[]; integrity?: string; shasum?: string; /** The manifest used for packing (may differ from input when publishConfig.directory is set). */ resolvedManifest: NormalizedManifest; }; /** * Build the tar filter function for packing. * * Follows npm's precedence rules: * 1. `files` field in package.json → allowlist (ignore files are not read) * 2. `.npmignore` → denylist (`.gitignore` is NOT read) * 3. `.gitignore` → fallback denylist when no `.npmignore` exists * * Regardless of mode, always-excluded files (lockfiles, .git, node_modules, * .npmrc, vlt.json, etc.) are excluded and always-included files (package.json, * README, LICENSE, etc.) are included. */ export declare const buildPackFilter: (manifest: NormalizedManifest, packDir: string) => ((path: string) => boolean); /** * Create a tarball from a package directory * @param {NormalizedManifest} manifest - The manifest of the package to pack * @param {string} dir - The directory containing the package to pack * @param {LoadedConfig} [config] - The loaded configuration (for workspace/catalog resolution) * @returns {Promise} The manifest, filename, and tarball data (unless dry run) */ export declare const packTarball: (manifest: NormalizedManifest, dir: string, config: LoadedConfig) => Promise;