/**
 * Secure Storage — CC secureStorage parity.
 *
 * Platform-aware credential persistence abstraction:
 *   - Interface: get/set/delete with typed data
 *   - Implementation: file-based JSON with 0o600 permissions (CC plainTextStorage parity)
 *   - macOS Keychain / Windows Credential Manager can be added as plugins
 *
 * Storage layout:
 *   ~/.qlogicagent/.credentials.json  — API keys, OAuth tokens
 *
 * Reference: claude-code-haha/src/utils/secureStorage/
 */
export interface SecureStorageData {
    /** Primary API key (user-set) */
    apiKey?: string;
    /** OAuth tokens (if using OAuth flow) */
    oauth?: {
        accessToken: string;
        refreshToken: string;
        expiresAt: number;
    };
    /** Arbitrary key-value pairs for extensibility */
    [key: string]: unknown;
}
/**
 * CC SecureStorage interface parity.
 *
 * Implementations may use OS keychain, encrypted file, or plain-text file.
 * Callers should not assume any specific storage backend.
 */
export interface SecureStorage {
    readonly name: string;
    get(): Promise<SecureStorageData | null>;
    set(data: SecureStorageData): Promise<{
        success: boolean;
        warning?: string;
    }>;
    delete(): Promise<boolean>;
}
/**
 * File-based secure storage with restrictive permissions.
 *
 * On Unix: file created with 0o600 (owner-only read/write).
 * On Windows: ACLs are not set (relies on user profile permissions).
 *
 * This matches CC's plainTextStorage.ts behavior — it's the default
 * on Linux/Windows, and the fallback on macOS.
 */
export declare class FileSecureStorage implements SecureStorage {
    readonly name = "file";
    get(): Promise<SecureStorageData | null>;
    set(data: SecureStorageData): Promise<{
        success: boolean;
        warning?: string;
    }>;
    delete(): Promise<boolean>;
}
/**
 * Get the platform-appropriate secure storage instance.
 *
 * Currently returns FileSecureStorage on all platforms.
 * macOS Keychain integration can be added by checking platform
 * and returning a KeychainSecureStorage wrapper.
 */
export declare function getSecureStorage(): SecureStorage;
/**
 * Save an API key to secure storage.
 */
export declare function saveApiKey(apiKey: string): Promise<{
    success: boolean;
    warning?: string;
}>;
/**
 * Load the stored API key (returns null if none saved).
 */
export declare function loadApiKey(): Promise<string | null>;
/**
 * Delete the stored API key.
 */
export declare function deleteApiKey(): Promise<boolean>;
