import { type ByteSource } from '../../../../../io/types.ts';
import { PathSpec } from '../../../../../types.ts';
import type { FlagValue } from '../../../../spec/types.ts';
import type { CrossResult, DispatchFn } from '../types.ts';
import { Files } from '../../../../../workspace/files.ts';
/**
 * Run a tar whose archive, operands and -C destination span mounts.
 *
 * Pure wiring: the shared generic runs on dispatch-relayed calls, so the
 * archive is read from or written to its mount, every extracted path lands
 * on whichever mount owns it, and each -c operand is walked on the mount
 * that owns it. The create scan still stops at a mount nested under an
 * operand, exactly as it does on one mount. `cwd` is the session's working
 * directory, which relative names and an extraction without -C resolve
 * against.
 */
export declare function runTar(scopes: PathSpec[], textArgs: string[], flagKwargs: Record<string, FlagValue>, dispatch: DispatchFn, cwd: string, vfs?: Files, stdin?: ByteSource | null): Promise<CrossResult>;
//# sourceMappingURL=tar.d.ts.map