/// <reference types="node" />
import { Writable } from 'stream';
import { Zipper, ZipperEntry } from '../zipper';
import { IPackagerResourceOptions, Packager } from '../packager';
/**
 * PackagerAir constructor.
 *
 * @param path Output path.
 */
export declare abstract class PackagerAir extends Packager {
    /**
     * Zipper instance.
     */
    protected _zipper: Zipper | null;
    /**
     * Zipper hash entry to be updated.
     */
    protected _zipperEntryHash: ZipperEntry | null;
    constructor(path: string);
    /**
     * ZIP file Ux metadata user ID.
     *
     * @returns User ID.
     */
    protected get _zipUxUid(): number;
    /**
     * ZIP file Ux metadata group ID.
     *
     * @returns Group ID.
     */
    protected get _zipUxGid(): number;
    /**
     * ZIP file metadata create version number.
     *
     * @returns Version number.
     */
    protected get _zipCreateVersion(): number;
    /**
     * ZIP file metadata create host OS.
     *
     * @returns OS ID.
     */
    protected get _zipCreateHostOS(): number;
    /**
     * ZIP file internal attributes.
     *
     * @returns Internal attributes.
     */
    protected get _zipInternalAttributes(): number;
    /**
     * ZIP file external attributes.
     *
     * @param executable Is the entry executable.
     * @returns External attributes.
     */
    protected _zipGetExternalAttributes(executable: boolean): 2179792896 | 2175008768;
    /**
     * Create a Zipper instance.
     *
     * @param writable Writable stream.
     * @returns Zipper instance.
     */
    protected _createZipper(writable: Writable): Zipper;
    /**
     * Get the active Zipper.
     *
     * @returns Zipper instance.
     */
    protected _activeZipper(): Zipper;
    /**
     * Check if resource is compressable file.
     *
     * @param destination Resource destination.
     * @returns Returne true if not a match for the excluded files.
     */
    protected _isResourceCompressible(destination: string): boolean;
    /**
     * Check if resource is hash file.
     *
     * @param destination Resource destination.
     * @returns Returns true if match.
     */
    protected _isResourceHash(destination: string): boolean;
    /**
     * Open implementation.
     *
     * @param applicationData The application descriptor data.
     */
    protected _open(applicationData: Readonly<Buffer>): Promise<void>;
    /**
     * Close implementation.
     */
    protected _close(): Promise<void>;
    /**
     * Write resource with data implementation.
     *
     * @param destination Packaged file relative destination.
     * @param data Resource data.
     * @param options Resource options.
     */
    protected _writeResource(destination: string, data: Readonly<Buffer>, options: Readonly<IPackagerResourceOptions>): Promise<void>;
}
