/**
 * `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 `SetupOutcome` 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.<id>`
 * 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 SetupOutcome } 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<SetupOutcome>;
declare function runUnsetKey(args: {
    provider: string;
    profileId: string;
    options: MutationOptions;
}): Promise<SetupOutcome>;
export { listProviders, planSetKey, maskKey, runSetKey, runUnsetKey };
export { listAllProfiles };
