import type { Manifest } from "@sap-ux/project-access";
import type { AbapProvider } from "./AbapProvider";
/**
 * Service class for handling operations related to application manifests.
 */
export declare class ManifestManager {
    private provider;
    private manifestCache;
    /**
     * Creates an instance of ManifestManager.
     *
     * @param {AbapProvider} provider - The ABAP provider service.
     */
    constructor(provider: AbapProvider);
    /**
     * Resets the manifest cache.
     */
    resetCache(): void;
    /**
     * Retrieves the cached manifest for a specified application.
     *
     * @param {string} id - The ID of the application whose manifest is needed.
     * @returns {Promise<Manifest | undefined>} The cached manifest or null if not available.
     */
    getManifest(id: string): Promise<Manifest | undefined>;
    /**
     * Retrieves the cached manifest URL for a specified application.
     *
     * @param {string} id - The ID of the application whose manifest URL is needed.
     * @returns {Promise<string | undefined>} The cached URL or an empty string if not available.
     */
    getUrl(id: string): Promise<string | undefined>;
    /**
     * Retrieves and caches the manifest URL and the manifest itself for a specific application.
     * Uses caching to avoid redundant network requests.
     *
     * @param {string} id - The ID of the application for which to load the manifest.
     * @returns {Promise<void>} The manifest URL.
     */
    private loadManifestUrl;
    /**
     * Fetches and stores the application manifest from a URL.
     *
     * @param {string} id - The application ID.
     * @returns {Promise<Manifest>} The fetched manifest.
     */
    private loadManifest;
    /**
     * Determines if the application supports manifest-first approach and manifest url exists.
     *
     * @param {string} id - The application ID.
     * @returns {Promise<boolean>} True if supported, otherwise throws an error.
     */
    isAppSupported(id: string): Promise<boolean>;
}
