/** * `xopc providers` — user-friendly hub for managing LLM provider credentials. * * This command sits on top of the existing auth-profile store (`xopc auth …`), * but presents a setup-style surface — `list / set-key / unset-key / schema` — * with the same `SetupTask` JSON contract used by other M1 setup commands. * Agents (M2 skills) and the WebUI (M3) can consume both shapes uniformly. * * Capability-provider (image / voice) settings live under `cfg.providers.` * and will be wired into this command's flags in a follow-up slice. */ import { type AuthProfileCredential, listAllProfiles } from '../../auth/profiles/index.js'; import { type ProviderMeta } from '../../providers/index.js'; import { type SetupTask } from './setup-shared/index.js'; type KeyStatus = 'configured' | 'env-only' | 'oauth' | 'not-configured'; interface ProviderListEntry { id: string; name: string; category: ProviderMeta['category']; supportsApiKey: boolean; supportsOAuth: boolean; status: KeyStatus; profileCount: number; envVar?: string; } declare function maskKey(value: string | undefined): string | null; declare function listProviders(): ProviderListEntry[]; interface MutationOptions { dryRun: boolean; json: boolean; } declare function planSetKey(args: { provider: string; profileId: string; key: string; }): { existing?: AuthProfileCredential; next: AuthProfileCredential; willChange: boolean; }; declare function runSetKey(args: { provider: string; profileId: string; key: string; options: MutationOptions; }): Promise; declare function runUnsetKey(args: { provider: string; profileId: string; options: MutationOptions; }): Promise; export { listProviders, planSetKey, maskKey, runSetKey, runUnsetKey }; export { listAllProfiles };