/** Why a globbed path was not written into the zip (or was). */
export type ZipEntryAction = 'add' | 'skip-filter' | 'skip-symlink' | 'skip-directory';
export interface ZipEntryInfo {
    /** Posix path relative to the zip source directory. */
    relative: string;
    action: ZipEntryAction;
    /** Absolute source path on disk. */
    absolute: string;
}
export interface ZipDirResult {
    /** Number of files written into the archive. */
    added: number;
    /** Number of candidates skipped (filter / symlink / directory). */
    skipped: number;
    /** Absolute path of the written zip file. */
    outputPath: string;
}
interface Options {
    progress?: (val: number) => void;
    filter?: (filename: string, relative: string) => boolean;
    /**
     * Invoked for every globbed path after the filter/stat decision.
     * Used for trace-level packaging diagnostics.
     */
    onEntry?: (info: ZipEntryInfo) => void;
}
export declare function zipDir(dir: string, outdir: string, options?: Options): Promise<ZipDirResult>;
export {};
//# sourceMappingURL=zip.d.ts.map