import { type ITelemetryService } from "@cline/shared"; import type { ProviderSettingsManager } from "../services/storage/provider-settings-manager"; import type { ProviderSettings } from "../types/provider-settings"; import type { OAuthCredentials, OAuthLoginCallbacks } from "./types"; export type ProviderOAuthCredentials = OAuthCredentials; export interface ProviderAuthLoginInput { settings?: ProviderSettings; callbacks: OAuthLoginCallbacks; telemetry?: ITelemetryService; } export interface ProviderAuthRefreshInput { settings: ProviderSettings; credentials: ProviderOAuthCredentials; forceRefresh?: boolean; telemetry?: ITelemetryService; } export interface ProviderAuthSaveCredentialsInput { manager: ProviderSettingsManager; settings?: ProviderSettings; credentials: ProviderOAuthCredentials; setLastUsed?: boolean; save?: boolean; } export interface ProviderAuthHandler { providerId: string; storageProviderId: string; getApiKey(settings: ProviderSettings | undefined): string | undefined; login(input: ProviderAuthLoginInput): Promise; refresh(input: ProviderAuthRefreshInput): Promise; saveCredentials(input: ProviderAuthSaveCredentialsInput): ProviderSettings; isConfigured(settings: ProviderSettings | undefined): boolean; normalizeStoredAccessToken?(accessToken: string): string; } export declare function getProviderAuthHandler(providerId: string): ProviderAuthHandler | undefined; export declare function isOAuthProvider(providerId: string): boolean; export declare function getProviderAuthStorageId(providerId: string): string | undefined; export declare function resolveProviderApiKeyFromSettings(manager: ProviderSettingsManager, providerId: string): string | undefined; export declare function loginAndSaveProviderOAuthCredentials(manager: ProviderSettingsManager, providerId: string, input: { callbacks: OAuthLoginCallbacks; telemetry?: ITelemetryService; }): Promise; export declare function getProviderOAuthCredentialsFromSettings(providerId: string, settings: ProviderSettings): ProviderOAuthCredentials | null; export declare function saveProviderOAuthCredentials(input: { manager: ProviderSettingsManager; providerId: string; settings?: ProviderSettings; credentials: ProviderOAuthCredentials; setLastUsed?: boolean; save?: boolean; }): ProviderSettings; export declare function getPersistedProviderApiKey(providerId: string, settings?: ProviderSettings): string | undefined; export declare function formatProviderOAuthApiKey(providerId: string, credentials: Pick): string;