/** True when the host OS supports the Keychain backend. Only macOS for now. * Honours `CLAUDE_SWITCH_DISABLE_KEYCHAIN=1` so the test suite (and any * user who explicitly opts out) keeps the JSON-only behaviour. The env * var is read on every call — tests flip it per-suite. */ export declare function keychainAvailable(): boolean; /** Read an API key from the Keychain. Returns null if absent or on * non-macOS. Does NOT throw on missing entries (the common case). */ export declare function readApiKeyFromKeychain(email: string): string | null; /** Write an API key to the Keychain. Throws on macOS errors so the * caller can surface them; no-op on non-macOS so callers can call * unconditionally and only fall through to JSON when this returns false. */ export declare function writeApiKeyToKeychain(email: string, key: string): boolean; /** Delete an API key from the Keychain. Returns true if an entry was * removed, false if it didn't exist. No-op on non-macOS. */ export declare function deleteApiKeyFromKeychain(email: string): boolean;