import { Preferences } from './schemas.js';

/**
 * Abstract storage interface for preferences persistence
 */
export interface PreferenceStorage {
    get(key: string): Promise<Preferences | null>;
    set(key: string, preferences: Preferences): Promise<void>;
    remove(key: string): Promise<void>;
    list(): Promise<string[]>;
    exists(key: string): Promise<boolean>;
}
/**
 * localStorage implementation of PreferenceStorage
 * Provides local-first, privacy-respecting storage
 */
export declare class LocalStoragePreferenceStorage implements PreferenceStorage {
    private readonly prefix;
    constructor(prefix?: string);
    get(key: string): Promise<Preferences | null>;
    set(key: string, preferences: Preferences): Promise<void>;
    remove(key: string): Promise<void>;
    list(): Promise<string[]>;
    exists(key: string): Promise<boolean>;
    private getStorageKey;
    /**
     * Clear all preferences from storage (for testing/reset)
     */
    clear(): Promise<void>;
}
/**
 * In-memory storage implementation for testing
 */
export declare class MemoryPreferenceStorage implements PreferenceStorage {
    private readonly storage;
    get(key: string): Promise<Preferences | null>;
    set(key: string, preferences: Preferences): Promise<void>;
    remove(key: string): Promise<void>;
    list(): Promise<string[]>;
    exists(key: string): Promise<boolean>;
    clear(): Promise<void>;
}
//# sourceMappingURL=storage.d.ts.map