import type { DriverOpts, StringRecord } from '@appium/types';
import type { Readable } from 'node:stream';
import type { XCUITestDriverConstraints } from '../../desired-caps';
type SafariPreferencesOpts = Pick<DriverOpts<XCUITestDriverConstraints>, 'safariGlobalPreferences'>;
export declare const SAFARI_BUNDLE_ID = "com.apple.mobilesafari";
export interface UnzipInfo {
    rootDir: string;
    archiveSize: number;
}
/**
 * Unzips a ZIP archive on the local file system.
 *
 * @param archivePath Full path to a .zip archive
 * @returns Temporary folder root where the archive has been extracted
 */
export declare function unzipFile(archivePath: string): Promise<UnzipInfo>;
/**
 * Unzips a ZIP archive from a stream.
 * Uses bdstar tool for this purpose.
 * This allows to optimize the time needed to prepare the app under test
 * to MAX(download, unzip) instead of SUM(download, unzip)
 */
export declare function unzipStream(zipStream: Readable): Promise<UnzipInfo>;
/**
 * Builds Safari preferences object based on the given session capabilities
 */
export declare function buildSafariPreferences(opts: SafariPreferencesOpts & StringRecord): StringRecord;
/**
 * Looks for items with given extensions in the given folder.
 *
 * @param appPath Full path to an app bundle
 * @param appExtensions List of matching item extensions
 * @returns List of relative paths to matched items
 */
export declare function findApps(appPath: string, appExtensions: string[]): Promise<string[]>;
export {};
//# sourceMappingURL=app.d.ts.map