/** * Interface for token storage and retrieval. * The CLI implementation stores tokens in ~/.effigenix/config.json. */ export interface TokenProvider { /** Returns the current access token, or null if not authenticated */ getAccessToken(): Promise; /** Returns the current refresh token, or null if not authenticated */ getRefreshToken(): Promise; /** Persists new tokens after a successful login or refresh */ saveTokens(accessToken: string, refreshToken: string, expiresAt: string): Promise; /** Clears all stored tokens (called on logout or session expiry) */ clearTokens(): Promise; }