/** * Where an app under test can come from besides a local .apk/.ipa/.app/.zip: * a download URL (EAS Build, an artifact store, a release page) and .tar.gz * archives, which is what EAS produces for iOS simulator builds. Both are * turned into a local path the rest of the upload pipeline already handles. */ export declare const APP_EXTENSIONS: string[]; export declare function isAppUrl(value: string | undefined): boolean; /** * The app extension of a path, treating `.tar.gz` as one extension (Node's * path.extname would report `.gz`). Lowercase, including the dot. */ export declare function appExtension(filePath: string): string; export declare function isSupportedAppExtension(filePath: string): boolean; /** * Downloads an app from `url` into a fresh temp directory and returns the * local path. The file keeps a recognisable extension so platform detection * and the upload content type work exactly as for a local file. * * Signed URLs (EAS Build, S3, GCS) expire; a 401/403 is reported as such * instead of a generic HTTP failure because that is the common cause. */ export declare function downloadApp(rawUrl: string, options?: { quiet?: boolean; log?: (message: string) => void; }): Promise<{ filePath: string; tmpDir: string; }>; /** * Finds the shallowest `.app` bundle below `dir` without descending into * bundles themselves (they contain no nested apps we want). */ export declare function findAppBundle(dir: string): Promise; /** * Extracts a `.tar.gz` (an EAS Build iOS simulator archive, typically) and * returns the `.app` bundle inside it. Uses the system `tar`, present on * macOS, Linux and Windows 10+ alike, so no extra dependency is needed. */ export declare function extractAppBundle(archivePath: string): Promise<{ appPath: string; tmpDir: string; }>; //# sourceMappingURL=app_source.d.ts.map