import { LineFacts, type PathSpec, type StatFn } from '../../../types.ts';
import type { CommandFnResult, Context } from '../../config.ts';
import { FlagView } from '../../spec/flag_view.ts';
import { type WalkFn } from './archive/walk.ts';
/**
 * Walk the operands and hand what they hold to mirage-rs's zip, which names
 * each member, refuses a name two paths share, deflates them and writes the
 * archive. Info-ZIP's defaults are tar's inverted twice over: a directory
 * operand contributes only itself unless `-r` says to descend, and a symlink
 * is followed unless `-y` says to store the link; both are parameters of the
 * shared scan. Mirrors zip_cmd.py.
 */
export declare function zipGeneric(paths: PathSpec[], ctx: Context, deps: {
    stream: (p: PathSpec) => AsyncIterable<Uint8Array>;
    stat: StatFn;
    walk: WalkFn;
}): Promise<CommandFnResult>;
/**
 * A zip line stores a link operand as given, its planner deciding whether to
 * follow it (`-y`), and reads below a directory under `-r`. Mirrors Python's
 * `facts`.
 */
export declare function facts(fl: FlagView, _operands: readonly (string | PathSpec)[]): LineFacts;
//# sourceMappingURL=zip_cmd.d.ts.map