import type { StorageInstance } from '@vlian/utils';
import type { StorageOptions } from '../../types';
import type { EncryptionConfig } from './encryption';
import { MultiLevelCache } from './cache';
/**
 * 增强的存储选项
 */
export interface EnhancedStorageOptions extends StorageOptions {
    /**
     * 加密配置
     */
    encryption?: EncryptionConfig;
    /**
     * 缓存配置
     */
    cache?: {
        enabled?: boolean;
        defaultTTL?: number;
        maxSize?: number;
    };
}
declare class Storage {
    private static instance;
    private _local;
    private _session;
    private _indexedDB;
    private _localCache?;
    private _sessionCache?;
    private cacheEnabled;
    get local(): StorageInstance;
    get session(): StorageInstance;
    get indexedDB(): StorageInstance;
    /**
     * 获取本地存储缓存
     */
    get localCache(): MultiLevelCache | undefined;
    /**
     * 获取会话存储缓存
     */
    get sessionCache(): MultiLevelCache | undefined;
    /**
     * 私有构造函数，防止外部直接实例化
     */
    private constructor();
    /**
   * 获取单例实例
   *
   * @returns Singleton 实例
   */
    static getInstance(): Storage;
    initialize(options?: EnhancedStorageOptions): void;
    /**
     * 清理过期缓存
     */
    cleanupCache(): Promise<void>;
}
export declare const storage: Storage;
export type { EncryptionConfig } from './encryption';
export type { CacheConfig } from './cache';
export { MultiLevelCache } from './cache';
export { EncryptionUtils } from './encryption';
//# sourceMappingURL=index.d.ts.map