import { SecretsManager } from '../../config/secrets.js';
import { ServiceRegistry } from '../../config/service-registry.js';
import { SubscriptionManager } from '../../config/subscriptions.js';
export type AuthInspectionFreshness = 'healthy' | 'expiring' | 'expired' | 'pending' | 'available' | 'unconfigured';
export interface ProviderAuthInspection {
    readonly provider: string;
    readonly configured: boolean;
    readonly source?: 'service' | 'builtin' | undefined;
    readonly freshness: AuthInspectionFreshness;
    readonly redirectUri?: string | undefined;
    readonly callbackMode: 'local' | 'manual';
    readonly localCallback?: string | undefined;
    readonly activeSubscription: boolean;
    readonly pendingLogin: boolean;
    readonly overrideAmbientApiKeys: boolean;
    readonly tokenType?: string | undefined;
    readonly expiresAt?: number | undefined;
    readonly issues: readonly string[];
    readonly nextActions: readonly string[];
}
export interface AuthInspectionSnapshot {
    readonly generatedAt: number;
    readonly secretKeyCount: number;
    readonly activeSubscriptions: number;
    readonly pendingSubscriptions: number;
    readonly providers: readonly ProviderAuthInspection[];
}
export interface AuthInspectionDeps {
    readonly serviceRegistry: Pick<ServiceRegistry, 'get' | 'getAll'>;
    readonly subscriptionManager: Pick<SubscriptionManager, 'get' | 'getPending' | 'list' | 'listPending'>;
    readonly secretsManager: Pick<SecretsManager, 'list'>;
}
export declare function inspectProviderAuth(provider: string, deps: AuthInspectionDeps): Promise<ProviderAuthInspection>;
export declare function buildAuthInspectionSnapshot(deps: AuthInspectionDeps): Promise<AuthInspectionSnapshot>;
//# sourceMappingURL=inspection.d.ts.map