import type { UmbApiResponse } from '../../core/resources/index.js';
interface UmbInFlightRequestCacheEntryModel<ResponseModelType> {
    key: string;
    requestPromise: Promise<RequestResolvedType<ResponseModelType>>;
    timestamp: string;
}
type RequestResolvedType<ResponseModelType> = UmbApiResponse<{
    data?: ResponseModelType;
}>;
/**
 * A cache for inflight requests to the Management Api. Use this class to cache requests and avoid duplicate calls.
 * @class UmbManagementApiInflightRequestCache
 * @template ResponseModelType
 */
export declare class UmbManagementApiInFlightRequestCache<ResponseModelType> {
    #private;
    /**
     * Checks if an entry exists in the cache
     * @param {string} key - The ID of the entry to check
     * @returns {boolean} - True if the entry exists, false otherwise
     * @memberof UmbManagementApiInflightRequestCache
     */
    has(key: string): boolean;
    /**
     * Adds an entry to the cache
     * @param {string} key - A unique key representing the promise
     * @param {Promise<UmbApiResponse<RequestResolvedType<ResponseModelType>>>} promise - The promise to cache
     * @memberof UmbManagementApiInflightRequestCache
     */
    set(key: string, promise: Promise<RequestResolvedType<ResponseModelType>>): void;
    /**
     * Retrieves an entry from the cache
     * @param {string} key - The ID of the entry to retrieve
     * @returns {Promise<RequestResolvedType<ResponseModelType>> | undefined} - The cached promise or undefined if not found
     * @memberof UmbManagementApiInflightRequestCache
     */
    get(key: string): UmbInFlightRequestCacheEntryModel<ResponseModelType> | undefined;
    /**
     * Deletes an entry from the cache
     * @param {string} key - The ID of the entry to delete
     * @memberof UmbManagementApiInflightRequestCache
     */
    delete(key: string): void;
    /**
     * Clears all entries from the cache
     * @memberof UmbManagementApiInflightRequestCache
     */
    clear(): void;
}
export {};
