import * as i0 from "@angular/core";
export declare class IndexedDbHandler {
    private dbName;
    private storeName;
    private cachedTime;
    private dbInitialized;
    constructor(dbName: string, storeName: string, cachedTime: number);
    /**
     * Ensures that the database is fully set up before performing any operations.
     * @returns A promise that resolves when the IndexedDB is initialized.
     */
    whenInitialized(): Promise<IDBDatabase>;
    /**
     * Initializes the IndexedDB and creates the object store if it doesn't exist.
     * @returns A promise that resolves to the IndexedDB instance.
     */
    private initDB;
    /**
     * Saves data to the IndexedDB.
     * @param key The key used to store the data.
     * @param value The data to be saved.
     * @param cacheTime Optional parameter to specify the cache time for the data.
     * @returns A promise that resolves when the data is saved.
     */
    saveData(key: string, value: any, cacheTime?: number | null): Promise<void>;
    /**
     * Retrieves data from the IndexedDB by key.
     * @param key The key of the data to retrieve.
     * @returns A promise that resolves to the data or null if not found or expired.
     */
    getData(key: string): Promise<any>;
    /**
     * Removes data from the IndexedDB by key.
     * @param key The key of the data to remove.
     * @returns A promise that resolves when the data is removed.
     */
    removeData(key: string): Promise<void>;
    /**
     * Updates data in the IndexedDB by key.
     * @param key The key of the data to update.
     * @param value The new data to update.
     * @returns A promise that resolves when the data is updated.
     */
    updateData(key: string, value: any): Promise<void>;
    /**
     * Retrieves all data from the IndexedDB store.
     * Filters out expired data based on the cache time or default expiration time.
     * @returns A promise that resolves to an array of all valid data items.
     */
    getAll(): Promise<any[]>;
    /**
     * Clears all data in the IndexedDB store.
     * @returns A promise that resolves when the store is cleared.
     */
    clearStore(): Promise<void>;
    /**
     * Getter for the cached time value.
     * @returns The current cached time value.
     */
    getCachedTime(): number;
    /**
     * Setter for the cached time value.
     * @param newCachedTime The new cached time value to set.
     */
    setCachedTime(newCachedTime: number): void;
    /**
     * Checks if the data has expired based on the saved time and comparison time.
     * @param savedTime The saved time of the data.
     * @param comparisonTimeInMs The comparison time in milliseconds.
     * @returns A promise that resolves to a boolean indicating if the data is expired.
     */
    private checkIfExpired;
    static ɵfac: i0.ɵɵFactoryDeclaration<IndexedDbHandler, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<IndexedDbHandler>;
}
