/**
 * Storage abstraction for MCP-I identity
 * Supports both file-based and in-memory storage for different runtime environments
 */
import { PersistedIdentity } from './types';
export interface StorageProvider {
    load(): Promise<PersistedIdentity | null>;
    save(identity: PersistedIdentity): Promise<void>;
    exists(): Promise<boolean>;
}
/**
 * File-based storage for traditional Node.js environments
 */
export declare class FileStorage implements StorageProvider {
    private filePath;
    constructor(customPath?: string);
    load(): Promise<PersistedIdentity | null>;
    save(identity: PersistedIdentity): Promise<void>;
    exists(): Promise<boolean>;
}
/**
 * In-memory storage for Lambda/Edge runtime environments
 */
export declare class MemoryStorage implements StorageProvider {
    private static instances;
    private key;
    constructor(key?: string);
    load(): Promise<PersistedIdentity | null>;
    save(identity: PersistedIdentity): Promise<void>;
    exists(): Promise<boolean>;
    /**
     * Clear all stored identities (useful for testing)
     */
    static clear(): void;
}
/**
 * Environment variable storage loader
 * This works with both file and memory storage as a fallback
 */
export declare class EnvironmentStorage {
    static load(): PersistedIdentity | null;
}
/**
 * Combined storage that tries multiple providers in order
 */
export declare class CombinedStorage implements StorageProvider {
    private providers;
    private primaryProvider;
    constructor(providers: StorageProvider[]);
    load(): Promise<PersistedIdentity | null>;
    save(identity: PersistedIdentity): Promise<void>;
    exists(): Promise<boolean>;
}
/**
 * Storage factory based on runtime detection
 */
export declare class StorageFactory {
    static create(options?: {
        storage?: 'file' | 'memory' | 'auto';
        customPath?: string;
        memoryKey?: string;
        encryptionPassword?: string;
    }): StorageProvider;
}
//# sourceMappingURL=storage.d.ts.map