import type { SecretStore } from "../../../auth-store/dist/index.js"; import type { ApiKeyPrompt, AuthProvider } from "../types.js"; export type PromptForSecret = (prompt: ApiKeyPrompt) => Promise; export interface AuthStrategyContext { secretStore: SecretStore; promptForSecret?: PromptForSecret; readOnly?: boolean; } export interface AuthStrategy { login(provider: AuthProvider, options: TLoginOptions, context: AuthStrategyContext): Promise; logout(provider: AuthProvider, context: AuthStrategyContext): Promise; isLoggedIn(provider: AuthProvider, context: AuthStrategyContext): Promise; resolveCredential(provider: AuthProvider, context: AuthStrategyContext): Promise; }