import type { ADB } from '../adb';
import type { UninstallOptions, ShellExecOptions, CachingOptions, InstallOptions, InstallOrUpgradeOptions, InstallOrUpgradeResult, ApkStrings, AppInfo, InstallState, StringRecord } from './types';
export declare const REMOTE_CACHE_ROOT = "/data/local/tmp/appium_cache";
/**
 * Uninstall the given package from the device under test.
 *
 * @param pkg - The name of the package to be uninstalled.
 * @param options - The set of uninstall options.
 * @returns True if the package was found on the device and
 *                   successfully uninstalled.
 */
export declare function uninstallApk(this: ADB, pkg: string, options?: UninstallOptions): Promise<boolean>;
/**
 * Install the package after it was pushed to the device under test.
 *
 * @param apkPathOnDevice - The full path to the package on the device file system.
 * @param opts - Additional exec options.
 * @throws If there was a failure during application install.
 */
export declare function installFromDevicePath(this: ADB, apkPathOnDevice: string, opts?: ShellExecOptions): Promise<void>;
/**
 * Caches the given APK at a remote location to speed up further APK deployments.
 *
 * @param apkPath - Full path to the apk on the local FS
 * @param options - Caching options
 * @returns Full path to the cached apk on the remote file system
 * @throws if there was a failure while caching the app
 */
export declare function cacheApk(this: ADB, apkPath: string, options?: CachingOptions): Promise<string>;
/**
 * Install the package from the local file system.
 *
 * @param appPath - The full path to the local package.
 * @param options - The set of installation options.
 * @throws If an unexpected error happens during install.
 */
export declare function install(this: ADB, appPath: string, options?: InstallOptions): Promise<void>;
/**
 * Retrieves the current installation state of the particular application
 *
 * @param appPath - Full path to the application
 * @param pkg - Package identifier. If omitted then the script will
 * try to extract it on its own
 * @returns One of `APP_INSTALL_STATE` constants
 */
export declare function getApplicationInstallState(this: ADB, appPath: string, pkg?: string | null): Promise<InstallState>;
/**
 * Install the package from the local file system or upgrade it if an older
 * version of the same package is already installed.
 *
 * @param appPath - The full path to the local package.
 * @param pkg - The name of the installed package. The method will
 * perform faster if it is set.
 * @param options - Set of install options.
 * @throws If an unexpected error happens during install.
 */
export declare function installOrUpgrade(this: ADB, appPath: string, pkg?: string | null, options?: InstallOrUpgradeOptions): Promise<InstallOrUpgradeResult>;
/**
 * Extract string resources from the given package on local file system.
 *
 * @param appPath - The full path to the .apk(s) package.
 * @param language - The name of the language to extract the resources for.
 * The default language is used if this equals to `null`
 * @param outRoot - The name of the destination folder on the local file system to
 * store the extracted file to. If not provided then the `localPath` property in the returned object
 * will be undefined.
 */
export declare function extractStringsFromApk(this: ADB, appPath: string, language?: string | null, outRoot?: string | null): Promise<ApkStrings>;
/**
 * Get the package info from local apk file.
 *
 * @param appPath - The full path to existing .apk(s) package on the local
 *                           file system.
 * @returns The parsed application information.
 */
export declare function getApkInfo(this: ADB, appPath: string): Promise<AppInfo | {}>;
/**
 * Parses apk strings from aapt2 tool output
 *
 * @param rawOutput The actual tool output
 * @param configMarker The config marker. Usually
 * a language abbreviation or an empty string for the default one
 * @returns Strings ids to values mapping. Plural
 * values are represented as arrays. If no config found for the
 * given marker then an empty mapping is returned.
 */
export declare function parseAapt2Strings(rawOutput: string, configMarker: string): StringRecord;
/**
 * Parses apk strings from aapt tool output
 *
 * @param rawOutput The actual tool output
 * @param configMarker The config marker. Usually
 * a language abbreviation or `(default)`
 * @returns Strings ids to values mapping. Plural
 * values are represented as arrays. If no config found for the
 * given marker then an empty mapping is returned.
 */
export declare function parseAaptStrings(rawOutput: string, configMarker: string): StringRecord;
//# sourceMappingURL=apk-utils.d.ts.map