import type { SecretsManager } from '../../config/secrets.js'; import type { ProviderRegistry } from '../../providers/registry.js'; import type { ServiceRegistry } from '../../config/service-registry.js'; import type { SubscriptionManager } from '../../config/subscriptions.js'; export type ProviderAuthRoute = 'api-key' | 'subscription' | 'service-oauth' | 'unconfigured'; export type ProviderAuthFreshness = 'healthy' | 'expiring' | 'expired' | 'pending' | 'unconfigured'; export interface ProviderUsageWindow { readonly label: string; readonly detail: string; } export interface ProviderRouteRecord { readonly route: Exclude; readonly usable: boolean; readonly freshness: ProviderAuthFreshness; readonly detail: string; readonly issues: readonly string[]; } /** * One recommended repair action. `description` states what and why; * `command` (when present) is the machine-executable form, a surface runs * it directly instead of asking the user to retype a sentence. */ export interface ProviderRecommendedAction { readonly description: string; readonly command?: { readonly name: string; readonly args: readonly string[]; } | undefined; } export interface ProviderAccountRecord { readonly providerId: string; readonly active: boolean; readonly modelCount: number; readonly configured: boolean; readonly oauthReady: boolean; readonly pendingLogin: boolean; readonly availableRoutes: readonly ProviderAuthRoute[]; readonly preferredRoute: ProviderAuthRoute; readonly activeRoute: ProviderAuthRoute; readonly activeRouteReason: string; readonly authFreshness: ProviderAuthFreshness; readonly fallbackRoute?: ProviderAuthRoute | undefined; readonly fallbackRisk?: string | undefined; readonly expiresAt?: number | undefined; readonly tokenType?: string | undefined; readonly notes: readonly string[]; readonly usageWindows: readonly ProviderUsageWindow[]; readonly issues: readonly string[]; readonly recommendedActions: readonly ProviderRecommendedAction[]; readonly routeRecords: readonly ProviderRouteRecord[]; } export interface ProviderAccountSnapshot { readonly capturedAt: number; readonly providers: readonly ProviderAccountRecord[]; readonly configuredCount: number; readonly issueCount: number; } export interface ProviderAccountSnapshotDeps { readonly providerRegistry: Pick; readonly serviceRegistry: Pick; readonly subscriptionManager: Pick; readonly secretsManager: Pick; } export declare function buildProviderAccountSnapshot(deps: ProviderAccountSnapshotDeps): Promise; //# sourceMappingURL=registry.d.ts.map