import type { AppiumLogger, StringRecord } from '@appium/types';
export declare class AppInfosCache {
    private readonly log;
    constructor(log: AppiumLogger);
    /**
     *
     * @param bundlePath Full path to the .ipa or .app bundle
     * @param propertyName
     * @returns
     */
    extractManifestProperty(bundlePath: string, propertyName: string): Promise<any>;
    /**
     *
     * @param bundlePath Full path to the .ipa or .app bundle
     * @returns
     */
    extractBundleId(bundlePath: string): Promise<string>;
    /**
     *
     * @param bundlePath Full path to the .ipa or .app bundle
     * @returns
     */
    extractBundleVersion(bundlePath: string): Promise<string>;
    /**
     *
     * @param bundlePath Full path to the .ipa or .app bundle
     * @returns
     */
    extractAppPlatforms(bundlePath: string): Promise<string[]>;
    /**
     *
     * @param bundlePath Full path to the .ipa or .app bundle
     * @returns
     */
    extractExecutableName(bundlePath: string): Promise<string>;
    /**
     *
     * @param bundlePath Full path to the .ipa or .app bundle
     * @returns The payload of the manifest plist
     * @throws If the given app is not a valid bundle
     */
    put(bundlePath: string): Promise<StringRecord>;
    /**
     * @param ipaPath Fill path to the .ipa bundle
     * @returns The payload of the manifest plist
     */
    private _putIpa;
    /**
     * @param appPath Fill path to the .app bundle
     * @returns The payload of the manifest plist
     */
    private _putApp;
    /**
     * @param plistPath Full path to the plist
     * @param bundlePath Full path to .ipa or .app bundle
     * @returns The payload of the plist file
     */
    private _readPlist;
}
//# sourceMappingURL=app-infos-cache.d.ts.map