import { type ExecFileSyncOptions } from 'node:child_process'; import { FileCredentialStore } from './file-credential-store.js'; /** Narrow exec seam so tests drive reconcile without touching the real * Keychain. Mirrors `SecurityExec` in credential-store.ts. */ export type SecurityExec = (file: string, args: readonly string[], options: ExecFileSyncOptions) => Buffer | string; interface ReconcileDeps { exec?: SecurityExec; fileStore?: FileCredentialStore; } /** * Drain Claude Code's Keychain OAuth item(s) into the file vault, then delete * them. Idempotent and best-effort. Returns the number of items absorbed * (0 when nothing was present — the common steady-state after the first run). * * Skipped entirely off-darwin, under the test-mode disable flag, and in * background processes (NO_KEYCHAIN_PROMPT) where a prompt could stall a * lock-holding detached child. */ export declare function reconcileClaudeCodeKeychain(deps?: ReconcileDeps): number; export {};